Aide fonction MkDir
Bonjour tout le monde
Je débute actuellement sur VBA et il se trouve que j'ai un petit problème avec une fonction. Je résume:
J'ai créé un document sur Excel et je souhaiterais l'enregistrer dans un dossier dans "mes document" si cela n'est pas déjà fait. Pour cela j'utilise la fonction MkDir. Tout se passe bien la première fois, le fichier s'enregistre bien ou je souhaite. Le problème intervient ensuite si je relance la macro car le fichier existe déjà. J'aimerais donc savoir quel code utiliser pour lui dire "si le fichier n'existe pas alors crée le, sinon ne fait rien"
Merci beaucoup pour votre aide
[u]
Voila le code que j'utilise :[/u]
Sub enregistrerpdfexcel()
Application.ScreenUpdating = False
Sheets("reference").Select
Dim nosav As String
'numéro du SAV
Dim nomclient As String
Dim nompdf As String
Dim Chemin As String
Dim copieexcel As String
nosav = Range("A3").Value
nomclient = Range("B3").Value
nompdf = nosav & " - " & nomclient
Chemin = "C:\Users\o.laabi\Documents\VBATEST\nosav"
copieexcel = "C:\Users\o.laabi\Documents\VBATEST\" & nosav & "\ " & nompdf & ".xlsx"
If Dir(Chemin) = "" Then
MkDir "C:\Users\o.laabi\Documents\VBATEST\" & nosav
End If
Worksheets("intervention").Range("A1:CE134").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\Users\o.laabi\Documents\VBATEST\" & nosav & "\ " & nompdf & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Sheets("intervention").Select
Sheets("intervention").Copy
ActiveWorkbook.SaveAs Filename:="C:\Users\o.laabi\Documents\VBATEST\" & nosav & "\ " & nompdf & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook, _
CreateBackup:=False
ActiveWorkbook.Close False
Sheets("reference").Select
Application.ScreenUpdating = True
MsgBox ("Vos fichiers (PDF et Excel) sont maintenant disponibles dans vos documents")
End Sub
Bonsoir,
tu devrais revoir ton utilisation de nosav .. sachant que lorsque dans ton code tu place nosav entre guillemet tu utilise le texte nosav et lorsque tu le sort des guillemets tu utilise le contenu de ta variable nosav...
ainsi :
nosav="AutreChose"
Chemin1 = "C:\Users\o.laabi\Documents\VBATEST\" & "nosav"
Chemin2 = "C:\Users\o.laabi\Documents\VBATEST\" & nosavtu auras :
- Chemin1 => C:\Users\o.laabi\Documents\VBATEST\nosav
- Chemin2 => C:\Users\o.laabi\Documents\VBATEST\AutreChose
as toi de vérifier ton code et le l'utilisation du texte nosav ...
Bonsoir Pierre,
Merci pour ta réponse. Je t'avoue que je n'ai pas très bien compris ce que tu voulais dire. La variable nosav change à chaque fois et je voudrais qu'il me crée un fichier ayant pour nom cette variable à chaque fois que celle-ci change.
Je pense que le problème vient effectivement de cette variable nosav mais je n'ai pas très bien compris la solution que tu m'as apportée.
Peux-tu essayer de me la détailler un peu plus?
Merci pour ton aide
ben relis mon message
dans ton code tu as cette ligne :
Chemin = "C:\Users\o.laabi\Documents\VBATEST\nosav"et la variable nosav n' y apparaît pas , il y as juste le texte nosav ... est-ce normal ?
Cela voudrais dire que je devrais mettre :
Chemin = "C:\Users\o.laabi\Documents\VBATEST\" & nosav
C'est bien cela?