Ne dresser la liste que des Fichiers correspondant à des Images

  • Initiateur de la discussion Initiateur de la discussion YANN-56
  • Date de début Date de début

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 !

YANN-56

XLDnaute Barbatruc
Bonsoir à tous,

Dans un dossier, j'ai des fichiers ".doc", ".xls", "Thumbs.db",
des Fichiers vidéo, et autres raccourci ajouté par PSP... Si ce n'est pire encore!

J'en dresse la liste avec un truc comme le classeur joint.

Mon but est que ne soit répertorié que les Fichiers visualisables en tant que "Photo" ou "Image",
et de ce fait possible à établir en tant que "Picture" dans une "Image" d'un USF.
(J'ai supprimé cette action pour simplifier la lecture)

J'ai cherché par le coté "Like", mais n'ai pas trouvé d'exemples!

Si quelqu'un pouvait m'aider......... Merci beaucoup pour le temps que j'aurai gagné 😕

Yann
 

Pièces jointes

Re : Ne dresser la liste que des Fichiers correspondant à des Images

Bonjour Yann🙂

pas du tout sûr que cela puisse t'aider... mais histoire de ne pas te laisser seul, regarde ceci, en espérant que cela puisse te faire avancer... A vérifier si les types de fichier renvoyés sont bien ceux que tu attends...

Code:
Option Explicit
Sub test()
Dim Fso As Object, fs As FileSearch
Dim i As Byte, t() As Variant, j As Byte
Set Fso = CreateObject("Scripting.FileSystemObject")
Set fs = Application.FileSearch
t = Array(16, 20)
For j = 0 To UBound(t)
    With fs
        .NewSearch
        .SearchSubFolders = True
        .LookIn = "C:\Meeeeeee\MesDocs"
        .FileType = t(j) ' 16 = msoFileTypePhotoDrawFiles
                         ' 20 = msoFileTypeDocumentImagingFiles
        If .Execute > 0 Then
            For i = 1 To .FoundFiles.Count
                Cells(i, j + 1) = Fso.GetFile(.FoundFiles(i))
            Next i
        End If
        
    End With
Next j
End Sub

bon après midi
@+
 
Re : Ne dresser la liste que des Fichiers correspondant à des Images

Bonjour Pierrot 🙂, et à ceux qui seront passés par ici,

Je pensais l'affaire simple, mais au regard de ce que tu viens de me dire; cela ne l'est pas vraiment!

Je vais donc opter pour une solution un peu lourde:

Dresser la liste des Types des Fichiers présents.
Par la suite, l'utilisateur viendra y faire la sélection de ceux qui l'intéresse. (CheckBoxes dans une ListView)

Je rédige ses choix dans une page Excel qui sera enregistrée.

Lors de la prochaine ouverture, après fouille automatique dans cette dernière,
il lui sera proposé d'accepter ou non les nouveaux Type trouvés, et seulement dans ce cas!

Il ne sera pas enquiquiné longtemps ayant fait très vite le tour des Format de Photos dans son ordi!

Merci à toi,

Avec ta pertinence habituelle, tu m'as fait gagner beaucoup de temps à ne pas chercher en vain.

Je te souhaite une bonne fin de journée.

YANN
 
Dernière édition:
Re : Ne dresser la liste que des Fichiers correspondant à des Images

Re,

une autre façon d'approcher le problème, types de fichier à adapter dans l'array :
Code:
Option Explicit
Sub test()
Dim monfichier As String, t() As Variant
monfichier = Dir("C:\MesDocs\Excel\*.*")
t = Array(".xls", ".bmp", ".gif", ".jpg", ".jpeg")
Do While monfichier <> ""
    If Not IsError(Application.Match(Mid(monfichier, InStrRev(monfichier, ".")), t, 0)) Then MsgBox "ok"
    monfichier = Dir
Loop
End Sub
 
Re : Ne dresser la liste que des Fichiers correspondant à des Images

Re Pierrot,

D'assurer le suivi de tes aides est tout à ton honneur.

Non. Je n'ai pas testé le code que tu as proposé dans ton précédent Post.
Il me semblait restrictif quant aux types de Fichier...

Mais il est évident que je vais tester et certainement approuver ta dernière proposition.

Sauf que je ne me souviens plus si
Code:
 "InStrRev(monfichier, "."
Et c.
Trouve bien le dernier "Point" de la chaîne.
(Dans le cas où le mec ait pu nommer son Fichier: "Vacances.Corse.Morani")

Je pense que Oui, car je l'ai déjà utilisé par ailleurs (Mais sans piège comme ci-dessus)

Alors je pourrai adapter ton code avec une liste la plus exhaustive possible des extensions.
(De plus, simple et clair comme j'aime! 🙂)

Merci à toi Pierrot. Tu m'as remis dans le bon sens et enseigné encore beaucoup.

Je te souhaite plein de bonnes choses.

YANN
 
Re : Ne dresser la liste que des Fichiers correspondant à des Images

Re de Re,

Ici je ne comprends pas le "Application.Match"
Code:
  '  If Not IsError(Application.Match(Mid(monfichier, InStrRev(monfichier, ".")), t, 0)) Then MsgBox "ok"
J'ai fait "F1" mais pas d'aide disponible. Peux-tu m'expliquer?

Désolé d'abuser, mais je suis trop tenté...

Yann
 
Re : Ne dresser la liste que des Fichiers correspondant à des Images

Re,

c'est l'utilisation de la fonction de feuille de calcul "EQUIV"... recherche point compris l'extension du fichier dans le tableau "t", si pas trouvé renvoie une erreur, ce qui explique le "not iserror" qui est testé... pour éviter cette erreur... espérant avoir été clair.. pas sûr🙂...

@+
 
Re : Ne dresser la liste que des Fichiers correspondant à des Images

Je n'ai pas vraiment compris, mais ce n'est pas grave! 😎

J'ai bien pigé le principe et vais le bidouiller à ma sauce (Comme d'hab.)

Si j'obtiens un résultat simplissime et efficace; je le ferai suivre ici.

Plus tard, car pour l'instant je vais utiliser ton code qui me satisfait bien.

Encore Merci, et au plaisir. (Surtout pour moi 🙂)

YANN
 
Re : Ne dresser la liste que des Fichiers correspondant à des Images

Re,

cf ci-dessous extrait de l'aide Excel sur la fonction EQUIV :
EQUIV

Voir aussi

Renvoie la position relative d'un élément d'une matrice qui équivaut à une valeur spécifiée dans un ordre donné. Utilisez la fonction EQUIV plutôt qu'une des fonctions RECHERCHE lorsque vous avez besoin de la position d'un élément dans une plage et non de l'élément en tant que tel.

Syntaxe

EQUIV(valeur_cherchée;matrice_recherche;type)

valeur_cherchée est la valeur utilisée pour trouver la valeur souhaitée dans une matrice.

L'argument valeur_cherchée est la valeur dont vous voulez l'équivalent dans l'argument matrice_recherche. Par exemple, lorsque vous cherchez le numéro de téléphone d'une personne dans un annuaire, vous utilisez le nom de la personne comme valeur de recherche alors que la valeur que vous voulez obtenir est son numéro de téléphone.

L'argument valeur_cherchée peut être une valeur (nombre, texte ou valeur logique) ou une référence de cellule à un nombre, à du texte ou à une valeur logique.

matrice_recherche est une plage de cellules adjacentes contenant les valeurs d'équivalence possibles. L'argument matrice_recherche peut être une matrice ou une référence matricielle.

type est le nombre -1, 0 ou 1 qui indique comment Microsoft Excel doit procéder pour comparer l'argument valeur_cherchée aux valeurs de l'argument matrice_recherche.

Si la valeur de l'argument type est 1, la fonction EQUIV trouve la valeur la plus élevée qui est inférieure ou égale à celle de l'argument valeur_cherchée. Les valeurs de l'argument matrice_recherche doivent être placées en ordre croissant : ...-2, -1, 0, 1, 2, ..., A-Z, FAUX, VRAI.

Si la valeur de l'argument type est 0, la fonction EQUIV trouve la première valeur exactement équivalente à celle de l'argument valeur_cherchée. Les valeurs de l'argument matrice_recherche peuvent être placées dans un ordre quelconque.

Si la valeur de l'argument type est -1, la fonction EQUIV trouve la plus petite valeur qui est supérieure ou égale à celle de l'argument valeur_cherchée. Les valeurs de l'argument matrice_recherche doivent être placées en ordre décroissant : VRAI, FAUX, Z-A, ..., 2, 1, 0, -1, -2, ..., et ainsi de suite.

Si l'argument type est omis, la valeur par défaut est 1.

bon courage pour la suite...

@+
 
Re : Ne dresser la liste que des Fichiers correspondant à des Images

Et voici la suite:

N'est-elle pas concluante?

De mon coté, j'aime bien sans douter qu'il y aurait à améliorer.

J'écoute ton avis pour savoir si l'élève a bien compris.

Après, l'on pourra fermer la page, car je ne voudrais pas mobiliser ta compétence et ta gentillesse.

YANN
 

Pièces jointes

- 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

Discussions similaires

I
Réponses
3
Affichages
2 K
IFFIC
I
Retour