Présence de repertoires et de fichiers

Résolu/Fermé
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 - 3 déc. 2016 à 19:53
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 5 déc. 2016 à 18:19
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
A voir également:

4 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 701
3 déc. 2016 à 21:44
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
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 4
4 déc. 2016 à 11:57
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 701
4 déc. 2016 à 19:09
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
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 4
5 déc. 2016 à 07:19
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 701
5 déc. 2016 à 08:43
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
Mistral_13200 Messages postés 634 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 21 mars 2024 4
5 déc. 2016 à 10:56
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 701
5 déc. 2016 à 18:19
Les 2 touches se côtoient et visuellement c'est proche : tu ai pardonné ;-)
Bien cordialement.
0