Comment récupérer le nom de photos dans Excel

frulie Messages postés 2 Statut Membre -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour à tous,

Je cherche à copier dans Excel le nom de plusieurs photos.
Je ne veux pas le contenu mais uniquement le nom des photos pour qu'elles apparaissent sous forme de liste.. Sous MAC on peut simplement copier coller mais sur PC ca n'a pas l'air aussi simple...!

Merci beaucoup!!!

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    En vba

    Faire AltF11 pour ouvrir l'editeur
    Inserer un module et mettre ce code:

    Option Explicit
    'RECUPERATION REPERTOIRES ET NOMS DE FICHIERS DANS UN CLASSEUR
    ' (Exécuter la macro AfficheFichiers())
    Sub AfficheFichiers()
    Dim LeChemin As String
    Dim Lextension As String
    Dim LeTitre As String
    Dim Arret As Boolean
    
      LeTitre = "Répertoires et sous-répertoires"
      Arret = False
      Application.ScreenUpdating = True
       Range("A1").Activate
      Do
        LeChemin = ChoisirDossier
        If Len(LeChemin) = 0 Then
          Arret = True
        Else
          If Mid(LeChemin, Len(LeChemin), 1) <> "" Then
            LeChemin = LeChemin + ""
          End If
          If Len(Dir(LeChemin, vbDirectory)) <> 0 Then
            Lextension = "*.*"
            Call Remplir(LeChemin, Lextension)
            Arret = True
          Else
           MsgBox "Répertoire introuvable...Recommencer ?"
          End If
        End If
      Loop Until Arret
      End Sub
    Private Sub Remplir(RepertParent, ExtFichier)
    ' Remplit la feuille courante avec le contenu du répertoire RepertParent
    ' Les noms de répertoires sont placés dans la colonne active à partir de
    ' la cellule active
    ' Les noms de fichiers correspondants à ExtFichier sont affichés dans la
    ' colonne de droite
    ' 14/02/2000 18:30, Gérard B, mpfe
    
    Dim Compteur As Integer
    Dim NbreRepert As Integer
    Dim LeFichier As String
    Dim LeDossier As String
    Dim ExtLocale As String
    Dim ParentLocal As String
    Dim LeDossierLocal() As String
    
        ExtLocale = ExtFichier
        LeFichier = Dir(RepertParent & ExtFichier)
        If Len(LeFichier) = 0 Then
            ActiveCell.Value = RepertParent
            ActiveCell.Offset(1, 1).Select
        End If
        Do While Len(LeFichier) <> 0
           ' ActiveCell.Value = (RepertParent & LeFichier)
           ' ActiveCell.Offset(1, 0).Select
            ActiveCell.Value = LeFichier
            ActiveCell.Offset(1, 0).Select
            LeFichier = Dir
        Loop
        'Compter le nombre de sous-répertoires
        NbreRepert = 0
        LeDossier = Dir(RepertParent, vbDirectory)
        Do While LeDossier <> ""
            If LeDossier <> "." And LeDossier <> ".." Then
                If (GetAttr(RepertParent & LeDossier) _
                        And vbDirectory) = vbDirectory Then
                    NbreRepert = NbreRepert + 1
                End If
            End If
            LeDossier = Dir
        Loop
        ReDim LeDossierLocal(NbreRepert + 1)
        Compteur = 1
        LeDossierLocal(Compteur) = Dir(RepertParent, vbDirectory)
        Do While LeDossierLocal(Compteur) <> ""
            If LeDossierLocal(Compteur) <> "." _
                        And LeDossierLocal(Compteur) <> ".." Then
                If (GetAttr(RepertParent & LeDossierLocal(Compteur)) _
                            And vbDirectory) = vbDirectory Then
                    Compteur = Compteur + 1
                End If
            End If
            LeDossierLocal(Compteur) = Dir
        Loop
        For Compteur = 1 To UBound(LeDossierLocal()) - 1
            ParentLocal = RepertParent & LeDossierLocal(Compteur) & ""
            Call Remplir(ParentLocal, ExtLocale)
        Next
    End Sub
    
    Function ChoisirDossier()
        Dim objShell, objFolder, chemin As String, SecuriteSlash
                                                
        Set objShell = CreateObject("Shell.Application")
        Set objFolder = objShell.BrowseForFolder(&H0&, "Choisisser un répertoire", &H1&)
        On Error Resume Next
        chemin = objFolder.Items.Item.Path
    
        SecuriteSlash = InStr(objFolder.Title, ":")
    
        If SecuriteSlash > 0 Then
            chemin = Mid(objFolder.Title, SecuriteSlash - 1, 2) & ""
        End If
        ChoisirDossier = chemin
    End Function
    
    


    Ensuite inserer un UserForm, mettre un bouton, double clic sur ce bouton et mettre ce code:

    Private Sub CommandButton1_Click()
    AfficheFichiers
    End Sub
    

    0
    1. frulie Messages postés 2 Statut Membre
       
      Merci beaucoup !!
      Quand je clique sur "executer" je n'arrive à afficher que le nom du dossier qui contient les photos...
      0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Voir classeur ici

    http://cjoint.com/data3/3IrlhbnCzCO.htm
    0