Bonjour à tous,
j'aimerais affecter à une cellule une formule contenant un lien hypertexte (voir mon post http://www.developpez.net/forums/sho...d.php?t=430040 sur les liens dans un classeur partagé).
Ma macro: ouvre une boîte de dialogue, je sélectionne un fichier Word et j'aimerais insérer dans mon fichier EXCEL le nom du fichier + l'hyperlien pointant vers lui.
Je me heurte à une erreur d'exécution 1004, que j'aimerais esquiver de la manière suivante:
récupérer dans une variable String la formule contenant mon lien (de la forme =Lien_Hypertexte ("chemin";"nom du lien").
J'arrive bien à affecter cette valeur à mon String, mais dès que je veux recopier ça dans une cellule j'ai à nouveau l'erreur 1004! (je travaille sur un classeur non partagé pour le moment).
J'aimerais bien savoir d'ou vient cette erreur?
Voici mon code:
Si je mets un msgbox de test "Msgbox Lien" juste après l'affectation de valeur à ma variable Lien j'ai le bon texte qui s'affiche (texte correspondant à la formule que je dois affecter à ma cellule).Hors si je rentre la formule en manuel ça marche très bien, mais par macro j'ai l'erreur 1004 à ce niveau
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 InsererDemande() 'nécessite d'activer la référence Microsoft Word xx.x Object Library Dim WordApp As Word.Application Dim WordDoc As Word.Document Dim Fichier As Variant Dim Pos, DerniereLigne As Integer Dim NomFichier, chemin, nomFichierSansExtension, Lien As String 'affichage boite de dialogue pour choisir un document Word Fichier = Application.GetOpenFilename("Text Files (*.doc*), *.doc*") If Fichier = False Then Exit Sub 'le document Word est supposé fermé avant le lancement de la macro Set WordApp = CreateObject("Word.Application") WordApp.Visible = False 'pour que word reste masqué pendant l'opération Set WordDoc = WordApp.Documents.Open(Fichier) 'ouverture du fichier Word WordDoc.Unprotect NomFichier = WordDoc Pos = InStr(1, NomFichier, ".", 1) nomFichierSansExtension = Left(NomFichier, Pos - 1) chemin = WordDoc.Path & "\" & WordDoc 'Identification de la première ligne vide pour y recopier les données DerniereLigne = Range("A65535").End(xlUp).Row + 1 Lien = "=LIEN_HYPERTEXTE(" + "'" + "'" + WordDoc.Path + "\" + WordDoc + "'" Cells(DerniereLigne, 1) = "=LIEN_HYPERTEXTE(" + "'" + "'" + WordDoc.Path + "\" + WordDoc + "'" + "'" + ";" + "'" + "'" + nomFichierSansExtension + "'" + "'" + ")" WordDoc.Close False 'ferme le document Word sans sauvegarde WordApp.Quit 'ferme l'application Word End Sub(comme je l'ai dit la valeur de ma variable Lien est après test par msgbox EXACTEMENT celle qu'il faut;quand je recopie le texte qu'elle m'affiche à la main ma cellule l'accepte et mon lien fonctionne,mais jamais par macro juste en manuel).
Code : Sélectionner tout - Visualiser dans une fenêtre à part Cells(DerniereLigne, 1)=Lien
Merci de votre attention et de vos remarques,
M
Partager