Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
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...
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
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD