Savoir si un fichier existe avec VBA

Bonjour tout le monde !

Mon formulaire permet d'écrire l'année que l'on souhaite observer. Mais si cette année n'est pas enregistrée dans mon repertoire de fichier alors ma macro plante.

Pour cela je cherche à créer un Msgbox("Cette année n'est pas enregistrée") quand l'utilisateur indique une "mauvaise" année dans le formulaire.

Mes fichiers sont dans ce repertoire: "D:\Public\Moto1" ensuite il y a des sous-dossiers par année.

Par exemple : D:\Public\Moto1\2017"

En résumé je voudrais que VBA envoie un Msgbox si le sous-dossier de l'année autre que 2017, 2018, 2019 n'est pas créé.

Avez-vous une idée ?

Merci pour votre aide

Bonjour BobbyR

Si j'ai bien compris:

Dim Var As Long
Var = 2017
If Dir("D:\Public\Moto1\" & Var) = "" Then MsgBox "pas là"

Cordialement

J'ai tapé ton code en l'ajustement à ce que je desire :

Private Sub CommandButton1_Click()

Dim annee1 As Long

Dim annee2 As Long

Dim annee3 As Long

annee1 = Text_Année.Value

annee2 = annee1 + 1

annee3 = annee2 + 1

If Dir("D:\Public\Moto\" & annee1) = "" _

Or Dir("D:\Public\Moto\" & annee2) = "" _

Or Dir("D:\Public\Moto\" & annee3) = "" Then

MsgBox "FAUX"

Else

MsgBox "VRAI"

End If

End Sub

Quand je tape 2017 dans le TextBox, annee1 = 2017, annee2= 2018 annee3=2019. Il reconnait bien mes variables.

Mais le MsgBox m'indique "FAUX" alors que mon sous-dossier 2017, 2018 et 2019 existent bels et bien.

Je ne comprends pas

bonjour

Text_Année.Value est un string donc si tu veux faire des calcul mettre une valeur numérique

ex: annee1 = val(Text_Année.Value)

A+

Maurice

Bonjour à tous

J'avais oublié quelque-chose:

If Dir("D:\Public\Moto\" & annee1 & "\") = "" _
Or Dir("D:\Public\Moto\" & annee2 & "\" )= "" _
Or Dir("D:\Public\Moto\" & annee3 & "\" )= "" Then

C'est un dossier donc on fini par \

Cordialement

Bonjour

le plus simple est de créer tes répertoires avant

Sub CreatRepertoire()
Dim Ann(3) As Long
Ann(1) = Year(Now)
Ann(2) = Ann(1) + 1
Ann(3) = Ann(2) + 1
Chemin = ActiveWorkbook.Path & "\"
    For L = 1 To 3
        MonRep = Chemin & Ann(L)
            If Dir(MonRep, vbDirectory) = "" Then
                MkDir (MonRep)
            End If
    Next
End Sub

A+

Maurice

Bonjour Efgé !

ta solution a bien marché ! effectivement il manquait & "\" je vais pouvoir bien advancer !

Merci à toi et merci Maurice !

Rechercher des sujets similaires à "savoir fichier existe vba"