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:
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
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
Cells(DerniereLigne, 1)=Lien
(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).
Merci de votre attention et de vos remarques,
M