[VBA] Vérifier le nom d'un dossier

LeGaulois

XLDnaute Nouveau
Bonjour,

J'étais déjà venu pour d'autres petits soucies finalement résolu et je vous en remercie encore!
Je suis donc encore en stage, et je bloque depuis ce matin sur un problème dont je ne comprend pas la raison...

Je souhaite donc vérifier dans le chemin d'un fichier si il y a "old" ou "OLD", si ce mot s'y trouve, on ne copie pas le nom du fichier dans un fichier texte créé pour l'occasion. Sinon on le copie dans le fichier texte.

J'ai donc pondu ce code :
Code:
If InStr(FileItem.Path, IgnorerDossier(1)) = 0 Or _
                    InStr(FileItem.Path, IgnorerDossier(11)) = 0 Then
                    'Teste du filtre
                    If FileItem.Type = Filtre(1) Or FileItem.Type = Filtre(2) Or FileItem.Type = Filtre(3) Then
                        ' On écrit dans le fichier texte, le nom du fichier
                        Txt.WriteLine FileItem.Name
                        ' et le chemin pour y accéder
                        Txt.WriteLine FileItem.ParentFolder
                    End If
                End If

C'est le premier teste que j'ai rajouté. Celui avec le filtre fonctionne très bien.
IgnorerDossier est un tableau de chaine de caractères, et la case 1 contient "old", la case 2 contient "OLD".

Problème quand je lance une recherche dans le fichier texte je retrouve des chemins contenant ces 2 mots, du genre :
"..\Truc\bidule\old\chouette\"

Voilà si vous comprennez pourquoi mon teste ne fonctionne pas... Personnellement je ne trouve pas... Et ça fait presque 3heures que je cherche. J'ai vérifier dans la logique si les OU ne devaient pas être remplacer par des ET, s'il fallait mettre différent ou égale à 0 avec InStr...

Merci de votre aide et de votre attention :)
 

Vorens

XLDnaute Occasionnel
Re : [VBA] Vérifier le nom d'un dossier

Bonjour,

As-tu essayé la fonction DIR qui va tester l'existence d'un fichier

Exemple:

CheminFichier = "S:\patati\patata....

If Dir(CheminFichier) <> "" Then 'Si fichier est différent de rien (c'est qu'il existe)

Dans ton cas If Dir(CheminFichier) = le nom de ton fichier écrit juste ou faut c'est égale then

Importer ou pas
 

LeGaulois

XLDnaute Nouveau
Re : [VBA] Vérifier le nom d'un dossier

Bonjour,

En faite, je liste dans le fichier texte tout les noms et leur adresse qui sont contenues dans une arborescence. Et ça fonctionne.
Sauf qu'aujourd hui, j'ai voulu ajouter l'option du tri des dossiers, en gros les dossiers à ignorer. Et d'après ce que je sais, ce sont ceux qui contiennent des Old ou _old ou Backup. Donc ayant le chemin du fichier, je teste avec la fonction InStr si old, _old ou backup est contenu dans ce lien, s'il l'est je ne copie rien dans le fichier texte, s'ils n'y sont pas je copie le nom et le chemin du fichier.

Bref, j'ai continuer mes essaies, jusqu'à même essayer de voir si en copiant déjà l'adresse du fichier (FileItem.Path) dans une variable String.
Bref j'ai finalement essayer en ne laissant qu'une condition... Et ça fonctionne!

Allez savoir pourquoi...
Pour moi c'était plutôt logique : Si old est contenu dans le chemin ou OLD est contenu dans le chemin alors...

Par contre si vous voyez une façon d'améliorer ce petit bout de code... Je suis preneur lol

Merci Vorens, à très bientôt.
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 316
Membres
102 860
dernier inscrit
fredo67