Présence de repertoires et de fichiers

Résolu
Mistral_13200 Messages postés 649 Statut Membre -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonsoir à tous,

Je souhaiterais vérifier la présence de certains répertoires et de fichiers avant de lancer une macro afin d’interdire ma macro si les conditions ne sont pas remplies.

Les répertoires sont les suivants
C:\Repertoir_1
C:\Repertoir_2
C:\Repertoir_3
C:\Repertoir_4

Les fichiers sont :
C:\Repertoir_X\Repertoir_Y\Fichier_1.xls
C:\Repertoir_X\Repertoir_Y\Fichier_2.xls

Si les conditions ne sont pas remplies ; soit un message d'alerte soit une variable qui servirait à interdire le lancement de la macro ou les deux.

Je suis sous Windows 7 et Office 2010.
D’avance merci pour votre aide.
Cordialement.
Mistral

4 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Tu peux faire cela avec une fonction très simple à mettre dans un module.
    Public Function exist(chemin, Optional typ = 0) As Boolean
       exist = IIf(Dir(chemin, IIf(typ = 0, 0, vbDirectory)) = "", False, True)
    End Function
    

    Ensuite tu testes tes répertoires et fichiers :
        If Not exist("C:\Repertoir_1", 1) Then ' message d'alerte répertoire absent
        If Not exist("C:\Repertoir_X\Repertoir_Y\Fichier_1.xls") Then ' message d'alerte fichier absent
    0
  2. Mistral_13200 Messages postés 649 Statut Membre 4
     
    Bonjour GB,

    Merci pour ta réponse et cela semble fonctionner correctement.
    Je teste bien la présence de 6 répertoires et 4 fichiers avec pour chacun d'eux un message d'erreur spécifique.

    Mais je voudrais que si l'un ou l'autre des répertoires ou fichiers est introuvable, afficher le message d'erreur correspondant et sortir de la vérification après OK sur la Msgbox.

    Cordialement
    Mistral
    0
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonsoir Mistral_13200,

      C'est très simple :
       If Not exist("C:\Repertoir_X\Repertoir_Y\Fichier_1.xls") Then
          Msgbox  "message d'alerte fichier absent"
          exit sub
      End If
      0
  3. Mistral_13200 Messages postés 649 Statut Membre 4
     
    Bonjour GB,

    J'avais essayé cette solution mais ça ne marche pas.
    J'obtiens une erreur de compilation et une fin d'instruction est attendue.

    Cordialement
    Mistral
    0
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonjour Mistral_13200,
      C'est que tu as une erreur d'écriture car le code fonctionne : je viens de réessayer.
      Il faut le mettre sur 4 lignes comme ci-dessus et pas de parenthèse dans Msgbox ou bien sur une seule ligne ainsi :
       If Not exist("C:\Repertoir_X\Repertoir_Y\Fichier_1.xls") Then MsgBox "message d'alerte fichier absent": Exit Sub
      
      0
  4. Mistral_13200 Messages postés 649 Statut Membre 4
     
    Re,

    C'est bon ça marche!
    J'ai des gros doigts car j'avais frappé un ";" au lieu de ":" et je ne l'ai pas vu.
    Encore merci à toi.
    Cordialement
    Mistral
    0
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Les 2 touches se côtoient et visuellement c'est proche : tu ai pardonné ;-)
      Bien cordialement.
      0