MACRO pour excel 2007 demande d'aide!

Résolu/Fermé
S@geking Messages postés 3 Date d'inscription mardi 21 février 2012 Statut Membre Dernière intervention 5 mars 2012 - 21 févr. 2012 à 20:22
S@geking Messages postés 3 Date d'inscription mardi 21 février 2012 Statut Membre Dernière intervention 5 mars 2012 - 5 mars 2012 à 11:00
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...



A voir également:

4 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
22 févr. 2012 à 13:42
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
S@geking Messages postés 3 Date d'inscription mardi 21 février 2012 Statut Membre Dernière intervention 5 mars 2012
Modifié par S@geking le 23/02/2012 à 18:33
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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
24 févr. 2012 à 08:31
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 706
24 févr. 2012 à 09:13
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
S@geking Messages postés 3 Date d'inscription mardi 21 février 2012 Statut Membre Dernière intervention 5 mars 2012
5 mars 2012 à 11:00
Je vous remercie énormément, c'était pour un projet professionnel que j'ai pu enfin terminer grâce à vous! Encore merci.
0