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\" &  nosav

tu 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?

Rechercher des sujets similaires à "aide fonction mkdir"