VBA : Lien hypertexte vers fichier avec nom incomplet [Fermé]

Signaler
Messages postés
14
Date d'inscription
mardi 16 février 2016
Statut
Membre
Dernière intervention
8 mars 2016
-
bdadvi94
Messages postés
14
Date d'inscription
mardi 16 février 2016
Statut
Membre
Dernière intervention
8 mars 2016
-
Bonjour à tous !

Je cherche une macro pour générer des liens hypertexte vers des fichiers pdf contenu dans un certain dossier de la manière suivante :

Dans la colonne A de mon tableau, j'ai une liste de références (2 lettres puis 10 chiffres sans espace).
A chaque référence corresponds PEUT-ETRE un fichier pdf nommé de la manière suivante : "Référence - brève description".
Le fichier n'existe pas toujours

Par exemple : "FX0293336745 - Trucmuche - Déc 2015.pdf"

En gros le fichier commence toujours par une référence, mais le "Trucmuche - Déc 2015" varie selon les fichiers, et je ne peux pas associer ce texte à une partie quelconque de mon tableau.

J'aimerais pouvoir associer à chaque référence un lien hypertexte en colonne G vers le fichier correspondant s'il existe. S'il n'existe pas, poursuivre la lecture du tableau et ne rien mettre.

J'ai écrit ceci :
Option Explicit
Sub reportings()
 
    'Compte le nombre de lignes et stocke le dans une variable nommée nblignes
    Dim nblignes As Integer
    nblignes = ActiveSheet.UsedRange.Rows.count
 
    Dim ISIN As String
 
    'Parcours tout le tableau
    Dim i As Integer
    For i = nblignes To 1 Step -1
        ISIN = ActiveSheet.Cells(i, 1).Value
        Cells(i, 7).Select
        ActiveCell.Hyperlinks.Add anchor:=Range("G" & i), Address:="..\..\Gestion%20Privee\Reporting%20OPCVM\ISIN*.pdf" _
        , TextToDisplay:="reporting"
     Next i
 
 
End Sub



Le programme s'exécute en écrivant "reporting" partout, mais le lien ne revovie à rien, même si le fichier existe...

De plus, le code de l'adresse
Address:="..\..\Gestion%20Privee\Reporting%20OPCVM\ISIN*.pdf" _
        , TextToDisplay:="reporting"


n'est pas de moi mais directement inspiré de l'enregistreur de macros.

L'adresse exacte des fichier est : K:\Gestion Privee\Reporting\fichier.pdf

ISIN est le nom de la référence (ce type de référence s'appelle un code ISIN).

Voilà ça fait toute la matinée que je planche sur ce petit problème auquel je n'ai trouvé de réponse nulle part pour l'instant...

Quelqu'un veut bien m'aider siouplaît ? :D


Je vous remercie

8 réponses

Messages postés
6435
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2019
423
Bonjour,

Voir ceci pour constater la présence d'un fichier:

http://excel-malin.com/codes-sources-vba/vba-verifier-si-le-fichier-existe/
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 62867 internautes nous ont dit merci ce mois-ci

Messages postés
14
Date d'inscription
mardi 16 février 2016
Statut
Membre
Dernière intervention
8 mars 2016

Y a-t-il quelqu'un pour m'aider svp ? :)
Messages postés
6435
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2019
423
Et voilà le code à adapter a la feuille et à la colonne des données:

Option Explicit
Dim FL1 As Worksheet, NoCol As Integer
Dim NoLig As Long, Var As Variant
 Private Sub CommandButton1_Click()
For_X_to_Next_Ligne
End Sub
Sub fichier_existe()
Dim MonFichier As String
 MonFichier = Var
 If fichierexiste(MonFichier) = True Then
         ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
        Var, TextToDisplay:= _
        Var
    Else
       ' MsgBox "Le fichier n'existe pas..."
    End If
End Sub
Public Function fichierexiste(MonFichier As String)
   If Len(Dir(MonFichier)) > 0 Then
      fichierexiste = True
    Else
      fichierexiste = False
   End If
End Function
Sub For_X_to_Next_Ligne()
    Set FL1 = Worksheets("Feuil1") 'a adapter Feuille 1
    NoCol = 1 'lecture de la colonne 1 a adapter colonne A
    For NoLig = 1 To Range("A65536").End(xlUp).Row 'a adapter colonne A
        Var = FL1.Cells(NoLig, NoCol)
        FL1.Cells(NoLig, NoCol).Select
        fichier_existe
    Next
    Set FL1 = Nothing
End Sub


bdadvi94
Messages postés
14
Date d'inscription
mardi 16 février 2016
Statut
Membre
Dernière intervention
8 mars 2016

Merci beaucoup, je lis ça, j'essaye de comprendre et je teste tout de suite :)

Merci de ton temps
Messages postés
462
Date d'inscription
jeudi 28 mai 2015
Statut
Membre
Dernière intervention
23 octobre 2019
77
bdadvi94
Messages postés
14
Date d'inscription
mardi 16 février 2016
Statut
Membre
Dernière intervention
8 mars 2016

Oui, je cherche à optimiser mes chances de réponse car je n'ai toujours pas résolu mon problème
bdadvi94
Messages postés
14
Date d'inscription
mardi 16 février 2016
Statut
Membre
Dernière intervention
8 mars 2016

Mais en attendant si tu veux bien m'aider j'en suis ravi !