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 :
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 !
Partager