Microsoft 365 VBA - Lister les photos sélectées dans l'Explorateur Windows

danielco

XLDnaute Accro
Bonjour,

Je cherche une procédure me permettant de lister et de recopier les phots sélectionnées dans l'Explorateur de fichiers.

Merci d'avance.

Daniel
 

patricktoulon

XLDnaute Barbatruc
bonjpur
pour le fun avec getopenfilename puisque l'on decide du titre dela barre on a pas de mal a le retrouver
VB:
Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hwnd As LongPtr, ByVal nCmdShow As Long) As Long

Sub test()
    Dim Mesfichier As Variant
    mesfichiers = selectedlistfile
    For I = 1 To UBound(mesfichiers)
        MsgBox mesfichiers(I)
    Next
End Sub

Function selectedlistfile()
    Application.OnTime Now + 0.00002, "Dialogfullscreen" 'ouverture un !! ou !!! plusieurs !! fichiers en gardant la touche control appuyée
    Dim fichier As Variant, I&, OK As Boolean, t ' variables
    'ouverture du dialog
    fichier = Application.GetOpenFilename("Image JpG (*.jpg;*.jprg), *.jpg;*.jpeg", 1, "CHOISIR UN OU DES FICHIERS", , True)
    If IsArray(fichier) Then ' si multi selection
        MsgBox UBound(fichier)
        selectedlistfile = fichier
    Else 'sinon si il y a qu'une photo
        If fichier = False Then Exit Function ' si click sur annuler ou fermeture par croix
        selectedlistfile = Array(fichier)
    End If
End Function

Sub Dialogfullscreen()
    Dim hwnd As LongPtr
    hwnd = FindWindow(vbNullString, "CHOISIR UN OU DES FICHIERS")
    ShowWindow hwnd, 3
End Sub
demo1.gif
 
Dernière édition:

danielco

XLDnaute Accro
bonjpur
pour le fun avec getopenfilename puisque l'on decide du titre dela barre on a pas de mal a le retrouver
VB:
Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hwnd As LongPtr, ByVal nCmdShow As Long) As Long

Sub test()
    Dim Mesfichier As Variant
    mesfichiers = selectedlistfile
    For I = 1 To UBound(mesfichiers)
        MsgBox mesfichiers(I)
    Next
End Sub

Function selectedlistfile()
    Application.OnTime Now + 0.00002, "Dialogfullscreen" 'ouverture un !! ou !!! plusieurs !! fichiers en gardant la touche control appuyée
    Dim fichier As Variant, I&, OK As Boolean, t ' variables
    'ouverture du dialog
    fichier = Application.GetOpenFilename("Image JpG (*.jpg;*.jprg), *.jpg;*.jpeg", 1, "CHOISIR UN OU DES FICHIERS", , True)
    If IsArray(fichier) Then ' si multi selection
        MsgBox UBound(fichier)
        selectedlistfile = fichier
    Else 'sinon si il y a qu'une photo
        If fichier = False Then Exit Function ' si click sur annuler ou fermeture par croix
        selectedlistfile = Array(fichier)
    End If
End Function

Sub Dialogfullscreen()
    Dim hwnd As LongPtr
    hwnd = FindWindow(vbNullString, "CHOISIR UN OU DES FICHIERS")
    ShowWindow hwnd, 3
End Sub
Regarde la pièce jointe 1207163
Bonjour @patricktoulon ,
Ca fonctionne également.
Daniel
 

crocrocro

XLDnaute Impliqué
Bonjour le fil,
@danielco , si l'utilisation d'Excel ne vous est pas imposée, ce n'est vraiment pas l'outil adéquat pour votre besoin.
Il existe des applications de type visionneuse photos gratuites sur la toile, vous avez peut-être eu lors d'un achat d'appareil photo (Reflex), un CD avec leur visionneuse maison qui permet d'afficher en mosaïque, les photos d'un répertoire, de leur attribuer un classement, de sélectionner les photos d'un classement et ensuite de les copier dans un autre répertoire.
Sinon, l'explorateur est également un bon outil :
- Créez un répertoire temporaire de Sélection (TS) dans lequel vous aurez copié toutes les photos du répertoire source.
- Ouvrez en pleine page le répertoire TS en mode grandes incones et supprimez toutes les photos à ne pas copier.
- Copier - Coller toutes les photos du répertoire TS dans le répertoire de destination
- Supprimer le répertoire TS
 

danielco

XLDnaute Accro
Je suis obligé de me servir d'Excel parce que je renomme les photos. Je copie les photos de plusieurs dossiers dans le même répertoire. le nom des fichiers dans chaque dossier va de 01.JPG à 36.JPG (anciennes pellicules argentiques). D'où télescopage si je fais des copies simples.
Daniel
 

jurassic pork

XLDnaute Occasionnel
Hello,
y a peut être moyen d'adapter le classeur de crocrocro . Au lieu de sélectionner un répertoire et de prendre toutes ses images , on sélectionne les photos qui nous intéressent et on les mets avec le chemin complet et on fait cela pour tous les répertoires qui nous intéressent.
Ami calmant, J.P
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
315 087
Messages
2 116 084
Membres
112 655
dernier inscrit
fannycordi