MACRO pour excel 2007 demande d'aide!

Résolu
S@geking Messages postés 3 Statut Membre -  
S@geking Messages postés 3 Statut Membre -
Bonjour, voilà mon problème, je souhaite utilisé une macro ou moyen^^ sur excel 2007, qui me permettrai de mettre en lien hypertexte à la suite tous les fichiers pdf contenu dans un dossier portant le nom du pdf. Car j'ai un nombre important de pdf nommé avec le même préfixe et un numéro comme "ROB 1260" "ROB 1261" etc... je voudrais en gros qu'avec une macro je puisse tous les mettre en liens hypertexte dans une fiche excel, dans l'ordre de leur numéro et portant le même nom que le fichier PDF auquel chaque lien est relié.
Une telle macro est-elle possible, si oui, comment l'appliquer?
Merci d'avance de vos réponses, s'il vous manque des infos pour pouvoir me répondre je vais suivre le sujet un bout de temps car j'en ai vraiment besoin merci à tous.

S@geking...

4 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Silkyroad a fait cette macro, je l'ai adaptée pour toi.
    Essaye d'abord avec le classeur de démo ci dessous, puis adapte la à ton projet...

    !!! Pour l'adaptation : en gras dans le code à ne pas oublier.!!!
    Option Explicit
    
    Sub TestListeFichiers()
    Dim Dossier As String
        
    'Définit le répertoire pour débuter la recherche de fichiers.
    '(Attention à ne pas indiquer un répertoire qu contient trop de sous-dossiers ou de
    'fichiers, sinon le temps de traitement va être très long).
    'Dossier = "C:\Documents and Settings\mimi\dossier"
    
    'supprime toutes les données des colonnes A à E
        'pour annuler cette fonctionnalité, il suffit de mettre une apostrophe en début de ligne
    Columns("A:E").Delete
    [A1] = "Nom du fichier"
    [B1] = "Date création"
    [C1] = "Dernier accès le"
    [D1] = "Dernière modif"
    [E1] = "Chemin d'accès (répertoire)"
    
    Application.FileDialog(msoFileDialogFolderPicker).Show
    Dossier = Application.FileDialog(msoFileDialogFolderPicker).InitialFileName
    'Appelle la procédure de recherche des fichiers
    ListeFichiers Dossier
    'Ajuste la largeur des colonnes A:E en fonction du contenu des cellules.
    Columns("A:E").AutoFit
    MsgBox "Terminé"
    End Sub
    
    
    Sub ListeFichiers(Repertoire As String)
        '
        'Nécessite d'activer la référence "Microsoft Scripting RunTime"
            'Dans l'éditeur de macros (Alt+F11):
            'Menu Outils
            'Références
            'Cochez la ligne "Microsoft Scripting RunTime".
            'Cluquez sur le bouton OK pour valider.    
    Dim Fso As Scripting.FileSystemObject
    Dim SourceFolder As Scripting.Folder
    Dim SubFolder As Scripting.Folder
    Dim FileItem As Scripting.File
    Dim i As Long
        
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set SourceFolder = Fso.GetFolder(Repertoire)
        
    'Récupère le numéro de la dernière ligne vide dans la colonne A.
    i = Range("A" & Rows.Count).End(xlUp).Row + 1
    'Boucle sur tous les fichiers du répertoire
    For Each FileItem In SourceFolder.Files
        'Si l'extension est pdf
        If Right(FileItem.Name, 3) = "pdf" Then
            'Inscrit le nom du fichier dans la cellule
            Cells(i, 1) = FileItem.Name
            'Ajoute un lien hypertexte vers le fichier
            ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), _
                Address:=FileItem.ParentFolder & "\" & FileItem.Name
            'Indique la date de création
            Cells(i, 2) = FileItem.DateCreated
            'Indique la date de dernier acces
            Cells(i, 3) = FileItem.DateLastAccessed
            'Indique la date de dernière modification
            Cells(i, 4) = FileItem.DateLastModified
            'Nom du répertoire
            Cells(i, 5) = FileItem.ParentFolder
            i = i + 1
        End If
    Next FileItem
    
    '--- Appel récursif pour lister les fichier dans les sous-répertoire ---.
    For Each SubFolder In SourceFolder.SubFolders
        ListeFichiers SubFolder.Path
    Next SubFolder
    End Sub


    La démo ci jointe.....
    0
  2. S@geking Messages postés 3 Statut Membre
     
    je te remercie mais n'étant pas un mac sous excel, je voudrai savoir à quel moment je dois mettre l'adresse du dossier ou se trouve mes fichiers qui sont exclusivement des pdf, mettre entre parenthèse les mots a modifié pendant la macro et ce que je dois mettre a ce moment la je te remercie déjà grandement pour le code que tu m'a filé c'est juste que je suis un plow pour excel et ce type d'écriture, sachant que le nom du dossiers est ROB MPC merci
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Bonjour,
      1- tu ouvres un nouveau classeur excel,
      2- tu tapes ALT+F11,
      2 bis !!!!! Ne pas oublier !!!
      Menu Outils
      Références
      Cochez la ligne "Microsoft Scripting RunTime".

      3- Insertion/Modules,
      4- Dans ce module copie/colle tout le code ci dessus,
      5- ferme la fenêtre visual basic editor,
      6- tapes ALT+F8, sélectionnes "TestListeFichiers"
      7- une fenêtre de choix de répertoire va s'ouvrir, parcours les répertoires de ton ordi pour sélectionner le bon...
      Et voilà! Il n'y a rien à adapter, sauf la référence indiquée ci dessus
      0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour S@geking, pijaku,

    Pour te faciliter la vie, je t'ai fait un classeur qui te fait la liste des PDF du répertoire dans lequel tu le sauvegardes :

    https://www.cjoint.com/?BByjhDKNWKx

    Tu télécharges le classeur et tu l'enregistres dans le répertoire concerné. Ensuite chaque fois que tu l'ouvres tu as ta liste de PDF triée.
    0
  4. S@geking Messages postés 3 Statut Membre
     
    Je vous remercie énormément, c'était pour un projet professionnel que j'ai pu enfin terminer grâce à vous! Encore merci.
    0