Bonjour,
Je suis en train de préparer une petite macro qui :
- scanne un dossier
- affiche en colonne 1 le nom du sous dossier de niveau 1
- affiche en colonne 2 le nom du sous dossier de niveau 2
- affiche en colonne 3 le nom de chaque fichier contenu dans le sous dossier de niveau 2 (1 fichier par ligne, chaque ligne étant composée comme décrit ci-dessus)
- affiche en colonne 4 la racine du nom de fichier
- affiche en colonnes 5 et 6 respectivement la partie droite et la partie gauche du nom du sous dossier de niveau 2
Tout ça je sais faire, il n'y a pas de soucis.
Cette même macro doit vérifier les extensions des fichiers avant leur insertion dans le tableau et supprimer du dossier tout fichier qui n'a pas une extension jpg ou jpeg. C'est sur cette partie en particulier que je butte.
Voici les deux codes que j'ai testés:
1. je décompose chaque nom de fichier par rapport au point (.) afin d'en extraire l'extension et la comparer avec les chaines "jpg" et "jpeg"
2. j'utilise la méthode getExtensionName (de l'objet Scripting.FileSystemObject) pour obtenir l'extension des fichiers et la comparer avec les chaines "jpg" et "jpeg"
dans les deux cas le résultat est le même, tous les fichiers sont supprimés (alors que l'instruction seule renvoit bien la bonne extension). Voici le code pour les deux méthodes :
varFichier représente chaque fichier du sous-dossier courant (avec une boucle for each in)
Méthode 1 :
If (LCase(Right(varFichier.Name, 3)) <> "jpg") Or (LCase(Right(varFichier.Name, 4)) <> "jpeg") Then varFichier.Delete
Méthode 2 :
If (GetFileExtension(varFichier) <> "jpg") Or (GetFileExtension(varFichier) <> "jpeg") Then varFichier.Delete
Les instructions:
Cells(rg, 7) = GetFileExtension(varFichier)
et
1 2
| Cells(rg, 8) = LCase(Right(varFichier.Name, 3))
Cells(rg, 9) = LCase(Right(varFichier.Name, 4) |
renvoient pourtant les bonnes extensions dans les cases respectives.
L'erreur se situe dans la comparaison entre ces résultats et les chaines de caractères "jpg" et "jpeg" qui renvoie toujours VRAI.
Merci par avance de votre aide.
Cdlt
- crissc -
Partager