Condition sur nom de fichier VBA

Salut,

Je connais pas trop le VBA et je bloque sur un truc:

J'ai dans une macro ce morceau de code:

    For Each fich In folder.Files
          If fich Like "*.xls" And Not fich Like "*.xlsm" Then

En gros je recherche tous les fichiers Excel excepté les .xlsm.

Maintenant je voudrais ajouter la condition que le fichier ne se termine pas par "old.xls", j'ai donc essayé la solution suivante:

    For Each fich In folder.Files
          If fich Like "*.xls" And Not fich Like ".xlsm" And Not InStr(UCase(fich), "*OLD.XLS") Then

Mais ca ne marche pas, le fichier "old" remonte toujours.

Des idées ?

Merci.

Bonjour

je pense qu'il faut faire un test au niveau inférieur pour cela... car même si ton fichier est old.xls il est forcement *.xls

donc faire un truc du genre :

For Each fich In folder.Files
          If fich Like "*.xls" And Not fich Like "*.xlsm" Then
                if Not Lcase(fich) Like "*old.xls" then 

Edit

plutôt que de mettre en majuscule l'extension du fichier... je préfère mettre le nom du fichier en minuscule et travaillé que sur les minuscule.... ce n'est pas naturel d'avoir une extension de fichier en majuscule

Fred

Rapide et efficace, je viens d'essayer ca marche bien

C'est une macro qu'on m'a fait mais je sais pas pourquoi il a utilisé les "InStr(UCase(fich)", je bosse toujours en minuscule aussi.

Finalement je vais même utiliser uniquement "fich Like" c'est suffisant.

Merci !

N'oublie pas de clôturer le post....

par précaution je te suggère de laissé le Lcase.... car cela m'est déjà arrivé que des utilisateurs me renomme le fichiers en majuscule y compris les extensions.....

maintenant si il n'y a que toi comme utilisateur... c'est une autre histoire...

Bonne continuation

Fred

Rechercher des sujets similaires à "condition nom fichier vba"