Bonjour à tous,

Je me remet petit à petit dans le VBA et j'ai une erreur d'execution de type 5 incompréhensible ! je n'arrive pas à debug ... SOS !

L'objectif est de créer un lien hypertexte vers un fichier PDF.

Colonne M - j'ai mon numéro de facture, puis je cherche ce numéro dans le dossier "A_Facture" dans le nom des PDF qui sont nommées "Facture n° XXXX"


Le code posant probleme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Sub LienFact()
 
dernLg = Sheets("ListCom").Range("A65536").End(xlUp).Row
 
chemin = Workbooks(ActiveWorkbook.Name).Path
chemin = chemin & "\A_Facture\"
 
For y = 2 To dernLg
 
    NumFac = Sheets("ListCom").Range("M" & y)
 
    If NumFac <> "" Then
 
        fichier = Dir(chemin & "*" & NumFac & "*") 'recherche du numéro de facture dans le dossier
        If fichier <> "" Then ChemFact = chemin & fichier 'si je le trouve alors je recupere le nom du fichier est implémente mon chemin pour créer le lien
 
 
        MsgBox ChemFact 'visual le chemin
 
 
        Sheets("ListCom").Range("M" & y).Hyperlinks.Add Anchor:=Sheets("ListCom").Range("M" & y), Address:= _
        ChemFact, TextToDisplay:=Sheets("ListCom").Range("M" & y).Value 'l'erreu est sur cette commande
 
    'essai de la fonction avec une autre forme, même erreur !
 
    'With Worksheets(1)
    '.Hyperlinks.Add Anchor:=.Range("M" & y), _
    'Address:=ChemFact, _
    'ScreenTip:=Range("M" & y), _
    'TextToDisplay:=Range("M" & y)
    'End With
 
    End If
 
    NumFac = ""
 
Next y
 
End Sub

Retour de la MsgBox :


Nom : msgbox.png
Affichages : 81
Taille : 8,4 KoNom : msgbox.png
Affichages : 81
Taille : 8,4 Ko


Sachant que l'erreur est sur la ligne

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Sheets("ListCom").Range("M" & y).Hyperlinks.Add Anchor:=Sheets("ListCom").Range("M" & y), Address:= _
        ChemFact, TextToDisplay:=Sheets("ListCom").Range("M" & y).Value 'l'erreu est sur cette commande

Ce que je n'arrive pas a comprendre c'est que j'utilise la même chose dans un autre sub et cela fonctionne sans aucun probleme !

Code fonctionnel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub LienDossCom()
 
dernLg = Sheets("ListCom").Range("A65536").End(xlUp).Row
chemin = Workbooks(ActiveWorkbook.Name).Path
 
For i = 2 To dernLg
 
    NomCom = Sheets("ListCom").Range("E" & i).Value
    CodeInseE = Sheets("ListCom").Range("D" & i).Value
    NomCom = NomCom & "-" & CodeInseE
    ChemRep = chemin & "\" & NomCom
 
    Sheets("ListCom").Range("E" & i).Hyperlinks.Add Anchor:=Sheets("ListCom").Range("E" & i), Address:= _
    ChemRep, TextToDisplay:=Sheets("ListCom").Range("E" & i).Value
 
 
Next i
 
End Sub

Je n'arrive pas à comprendre pourquoi un code fonctionne est pas l'autre, si ce n'est peu etre une déclaration de variable ... ?

Merci par avance !

Bonne journée

EnJoY !