Tester l'existence d'un fichier dans un sous répertoire VBA Excel

0

Bonjour,

Aguerri sur PC j'ai encore du mal sur Mac

j'ai créé un code VBA qui archive une feuille Excel dans un sous répertoire Archives Devis qui fonctionne parfaitement

chemin = ActiveWorkbook.Path
PathSep = Application.PathSeparator
nom = Format([E5], "0000") & ".xls"
Sheets("Devis").Copy
ActiveWorkbook.SaveAs chemin & PathSep & "Archives Devis" & PathSep & nom, FileFormat:=xlExcel8


je souhaiterais ajouter un contrôle pour tester si le document n'existe pas déjà avant de le créer et là je bloque, j'ai essayé plusieurs code comme

If Dir(chemin & PathSep & "Archives Devis" & PathSep & nom) <> "" Then

mais sans succès, merci à ceux qui pourront éclairer ma lanterne

    Posté le 15 mai 2017, 15:31
    par Coco-31
    Répondre
    0

    Bonjour,

    Normalement cela devrait marcher sous Mac également mais je n'ai pas d'expérience sous Mac :

    chemin = ActiveWorkbook.Path

    PathSep = Application.PathSeparator

    nom = Format([E5], "0000") & ".xls"

    Sheets("Devis").Copy

    On Error GoTo SUITE

    Workbooks.Open Filename:=chemin & PathSep & "Archives Devis" & PathSep & nom, FileFormat:=xlExcel8

    ActiveWorkbook.Close False

    MsgBox "Fichier déjà existant !!"

    Exit Sub

    SUITE:

    On Error GoTo 0

    ActiveWorkbook.SaveAs chemin & PathSep & "Archives Devis" & PathSep & nom, FileFormat:=xlExcel8

    suite de ton programme...

    End Sub

    A tester

    L'idée est de tenter d'ouvrir le fichier en testant si il y a erreur.

    Si erreur : fichier inexistant et le programme peut continuer à se poursuivre normalement au branchement SUIVANT: (attention ne pas oublier les : après SUIVANT- je le précise car on ne les vois pas très bien)

    Si pas erreur : fichier existant donc on ferme le fichier que l'on vient d'ouvrir et on envoie un message pour signaler Fichier déjà existant et on arrête la procédure pour pouvoir corriger.

    En fonction de tes besoins, on peut,  bien évidemment, adapter cette procédure et réagir différemment.

    Merci de me tenir informer

    A+

    Chris

    CHRIS Posté le 20 mai 2017, 17:51
    par CHRIS

    Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
    Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :