[VB] Sauvegarder sur un nom deja existant

Sauvegarder sur un nom deja existant [VB] - Programmation

Marsh Posté le 22-08-2001 à 15:32:05    

avec une boite de dialogue de windows classique si on ve sauvegarder sur un nom existant  il mais un message du style Ce fichier existe deja  Reecrire ?   oui   non
 
Moi avec ma methode il me demande rien et il ecrase cache le fichier portant le meme nom
 
Quelque pe me dire pourquoi?  Merci
 
Voici mon code :  
 
 
  Set pro = ThisWorkbook.Sheets("1" )
  OpenSave = Application.GetSaveAsFilename(InitialFilename:=SaveCompany + " - " + SaveName + " - " + SaveDate + "." + "xls", filefilter:="Excel projects (*.xls), *.xls", Title:="Save the project as..." )
  If OpenSave <> False Then
    ThisWorkbook.SaveAs Filename:=OpenSave
  End If


---------------
Une ptite aide en VB et jVBien
Reply

Marsh Posté le 22-08-2001 à 15:32:05   

Reply

Marsh Posté le 22-08-2001 à 16:34:19    

D'après la doc VBA d'excel, la fonction ne fait que renvoyer le nom prévu par l'utilisateur, voire false si abandon.
 
Il faudrait sans doute ajouter après le test une recherche de fichier avec le nom absolu OpenSave voir s'il existe déja. Ca doit exister (? suis pas utilisateur, sais pas). A une époque, en prog, on faisait open "nomfich" en lecture. Si erreur, fich existe pas, sinon, il existe.

Reply

Marsh Posté le 22-08-2001 à 16:57:21    

Merci Carbon_14   mais il me semble qu il y a un truc tt fait  
le message qui apparait est un message multilangue de Windows
 
Mais je sais pas comment l activer   :??:


---------------
Une ptite aide en VB et jVBien
Reply

Marsh Posté le 22-08-2001 à 17:03:25    

peut etre quand affichant la boite de dialogue saveas dans ta macro ?         :
application.dialogs(xldialogsaveas).show

Reply

Marsh Posté le 23-08-2001 à 09:07:26    

J'ai regardé hier en vitesse pour GetSaveAsFilename, ai pas trouvé en VBA Word, mais si en VBA EXCEL (étonnant que cela soit différent, pas évident à apprendre ce VBA là si y en plusieurs)...
 
Il ne semble pas y avoir d'options dans ce style. Quand on gère cela en C, on a une option pour l'ouverture de la boîte de dialogue "sauver fichier"  :) pour prévenir si le fichier existe déja.
 
Et dans le SaveAs, y a pas un "truc" a ajouter pour tester ? Ou un autre Save plus sophistiqué (complet). Manque de temps, je peux pas trop fouiller le VBA. :(

Reply

Marsh Posté le 23-08-2001 à 09:40:39    

Je vais essayer de voir  
Merci


---------------
Une ptite aide en VB et jVBien
Reply

Marsh Posté le 23-08-2001 à 10:57:18    

nur a écrit a écrit :

peut etre quand affichant la boite de dialogue saveas dans ta macro ?         :
application.dialogs(xldialogsaveas).show  




 
 
Oui mais si j ouvre cette boite de dialogue j'ai pas le nom du document en memoire  
Avec ma methode  ds OpenSave  j'ai le nom du document mais avec  application.dialogs(xldialogsaveas).show   je vois pas comment recuperer le nom  :??:


---------------
Une ptite aide en VB et jVBien
Reply

Marsh Posté le 23-08-2001 à 11:01:58    

je crois qu'on peut faire comme ça :
 
' ton fichier s'appelle toto.xls
set fs=createobject("scripting.filesystemobject" )
if fs.fileexists("toto.xls" )then 's'ils sont pas dans le m   dossier il faut taper le chemin complet
reponse=msgbox("Fichier existe deja Ecraser ?",4)
if reponse =vbyes then
'la tu sauve en ecrasant
else
autrenom=inputbox("tapez un autre nom" )
'la tu sauve sous "autrenom"
endif
else
'la comme le fichier n'existe pas tu peut sauver
endif

Reply

Marsh Posté le 23-08-2001 à 11:05:42    

Le nom qu'a choisit l'utilisateur, c'est la variable OpenSave.
Si abandon, elle équivaut à FALSE, sinon, ça doit être le nom, path compris (D:\Mes fichiers\Ma compta\Fichier.xls). Sauf erreur.

Reply

Marsh Posté le 23-08-2001 à 11:15:56    

PArfait  
Merci Merci
 
il me reste plus qu mettre tt ca en multilangue  et ce sera bon
 
 :jap:  :jap:  :jap:  :jap:  :jap:  :jap:  :jap:


---------------
Une ptite aide en VB et jVBien
Reply

Marsh Posté le 23-08-2001 à 11:15:56   

Reply

Marsh Posté le 23-08-2001 à 11:19:18    

navarro a écrit a écrit :

PArfait  
Merci Merci
 
il me reste plus qu mettre tt ca en multilangue  et ce sera bon
 
 :jap:  :jap:  :jap:  :jap:  :jap:  :jap:  :jap:  




 
 
est ce que ça colle avec fileexists ?

Reply

Marsh Posté le 23-08-2001 à 11:22:45    

bein  oui ca marche a la perfection  
Merci


---------------
Une ptite aide en VB et jVBien
Reply

Marsh Posté le 04-12-2008 à 11:08:07    

pti up de 7 ans :o je suis interrésser par la commande fileexists de nur
 
 
 'On créer l'objet Excel
    Set xlApp = CreateObject("Excel.Application" )
    'On défini le nombre d'onglets
    xlApp.SheetsInNewWorkbook = 1
    'On ajoute un classeur
    Set xlBook = xlApp.Workbooks.Add
    'On rend le classeur visible
    xlApp.Visible = True
    'On créer l'objet onglet dans le nouveau classeur créé
    Index = 1
    Set xlsheets = xlBook.Worksheets(1)
    'On affecte un nom aux l'onglets
    xlsheets.Name = NumArticle
    'on libère l'objet onglet pour pouvoir en créer un nouveau ... etc
    On Error Resume Next ' Permet de ne pas planter si le dossier existe deja
    Lecteur = Mid(NomDossier, 1, 2)
    ChDrive Lecteur
    'On donne un nom au classeur
    MkDir NomDossier
    If xlApp.fileexists(NomDoc & ".xls" ) Then
    'rien
    Else
    xlBook.SaveAs NomDossier & NomDoc & ".xls"
    On Error GoTo 0 ' On rend le control d'erreur à VBA
    xlApp.Quit
 
je l'ai essayer une première fois cela fonctionner
puis j'ais effacer mon répertoire! et lorque je relance ma macro il trouve tjr le fichier existant!
si quelqu'un pouvais m'aider merci


Message édité par diidy le 04-12-2008 à 11:17:58
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed