création automatique de dossier

cookie57

XLDnaute Nouveau
Bonjour le forum,

je ne sais pas si cette question a déjà été traitée sur ce forum en tout ca je ne l'ai pas trouvé ; est il possibe de créer une macro qui enregistre un fichier dans un dossier non crée et donc comment faire pour créer un dossier :

Avec ce code il me dit que le dossier que je n'ai pas crée (Dossier Excel) n'existe pas; il faudrait un code pour le créer automatiquement. Comment faire ??? merci d'avance

ActiveWorkbook.SaveAs Filename:= _
"C:\Dossier Excel & "patati" & ".xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close
 

Staple1600

XLDnaute Barbatruc
Re : création automatique de dossier

Bonjour

edit: en relisant , je crois que tu parles d'un fichier xls
(ce qui différent d'un dossier )



Il faut utiliser la commande MkDir

MkDir, instruction, exemple
Cet exemple utilise l'instruction MkDir pour créer un répertoire ou un dossier. Si le lecteur n'est pas indiqué, le nouveau répertoire ou dossier est créé sur le lecteur courant.

MkDir "MONREP" ' Crée un nouveau répertoire ou dossier.

Ensuite il faut déterminer si le dossier existe ou pas

voir dans ce cas avec Dir
(il y a un exmple dans l'aide VBA d'Excel)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : création automatique de dossier

Re

Donc reprenons

source: xld forum
Fonction qui vérifie l'existence d'un fichier
Code:
Function FileExiste(Filename as String) as Boolean
FileExiste = Dir(FileName) <> ""
End Function
Ton code actuel:
ActiveWorkbook.SaveAs Filename:= _
"C:\Dossier Excel & "patati" & ".xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close

Modifications 1:
( non testées encore) edit: test ok
Cas de figure: sauvegarder le classeur dans le dossier Dossier Excel
Ici suppose que le dossier Dossier Excel existe
Code:
Dim patati as string
Dim Chemin as String
Chemin="C:\Dossier Excel\"
patati = "NomDuClasseur" & ".xls"
If FileExiste(Chemin & patati) Then
MsgBox "Ce classeur existe déjà" 
'* peut être remplacer par le code en fin de message
Else
ActiveWorkbook.SaveAs (Chemin & patati), xlNormal, , , False, False
End If
End sub

Modifications 2: sauvegarder le classeur sous le nom Dossier Excel_patati.xls
Code:
'ici le fichier sera enregistré dans le répertoire du classeur actif
Dim patati as String
patati = "NomDuClasseur" & ".xls"
If FileExiste(patati) Then
MsgBox "Ce classeur existe déjà" '* peut être remplacer par le code ci-dessous
Else
ActiveWorkbook.SaveAs (patati), xlNormal, , , False, False
End If
End sub


* Code pour améliorer ta MsgBox
Code:
MsgBox "Le classeur " & patati & " existe déjà." & _
Chr(13) & "Veuillez indiquer un autre nom , svp.", vbCritical, "Erreur"
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom