Lien hypertexte vers un classeur A créé depuis le classeur A dans un classeur B

titymax

XLDnaute Occasionnel
Bonjour à tous,

J'ai 2 classeurs, 1 source et 1 cible. J'utilise la macro ci-après (simplifiée) pour exporter des données depuis le classeur source (Wbk1) vers le classeur cible (Wbk2). Cette macro se trouve donc dans le classeur source.
Je n'arrive pas à trouver le code qui me permette d'ajouter dans la colonne B à la ligne i du classeur cible, le lien hypertexte du fichier source.

Private Sub CommandButton2_Click()
Dim Wbk1 As Workbook, Wbk2 As Workbook, cel As Range, i As String, Chemin As String
Set Wbk1 = ThisWorkbook
Set Wbk2 = Workbooks("Portefeuille.xls")
i = 4
For Each cel In Range("C4", [B1000].End(xlUp))
If Wbk2.Sheets("LISTE").Range("C" & i).Value = Wbk1.Sheets("REF").Range("F2") Then
'Date de la MAJ
Wbk2.Sheets("LISTE ").Range("A" & i) = Now
'Montant de l'article
Wbk2.Sheets("LISTE ").Range("E" & i).Value = Wbk1.Worksheets("REF ").Range("F6").Value
'Lien vers suivi
Wbk2.Sheets("LISTE ").Range("B" & i).Value = "@"
Wbk2.Sheets("LISTE ").Range("B" & i).FormulaLocal = LIEN_HYPERTEXTE("chemin")
End If
i = i + 1
Next
End Sub

Merci d'avance pour l'aide que vous pourrez m'apporter.

A bientôt
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Lien hypertexte vers un classeur A créé depuis le classeur A dans un classeur B

bonsoir,

pour coller un lien il faut pratiquer comme ceci, tel quel avec la virgule !

ActiveSheet.Hyperlinks.Add Cells(Lig, Col), Lien$

Lien$ > c'est simplement le contenu de la cellule source à recopier
Cells(Lig, Col) > évidemment ça peut être Range(...)
ActiveSheet > idem ça peut être sheets(...)

EDIT:
donc selon ton code:

'Lien vers suivi
ceci inutile > Wbk2.Sheets("LISTE ").Range("B" & i).Value = "@"
ceci modifié > Wbk2.Sheets("LISTE ").Range("B" & i).FormulaLocal = LIEN_HYPERTEXTE("chemin")
comme ci-dessous:
Wbk2.Sheets("LISTE ").Hyperlinks.Add Range("B" & i), ici la valeur source

si c'est pour mettre le contenu en lien, il faut d'abord le lire !
Var$ = Wbk2.Sheets("LISTE ").Range("B" & i)
Wbk2.Sheets("LISTE ").Hyperlinks.Add Range("B" & i), Var$
 
Dernière édition:

titymax

XLDnaute Occasionnel
Re : Lien hypertexte vers un classeur A créé depuis le classeur A dans un classeur B

Bonjour Rolan,

Je viens d'essayer ton code et cela ne fonctionne pas. En effet, je ne vois pas comment on peut avoir le lien vers le classeur source, puisque nulle part apparait une référence à ce classeur.
Car ce que je souhaite obtenir, c'est, dans la cellule B&i du classeur cible, le lien hypertexte du chemin où se trouve le classeur source. Autrement dit, une fois ce lien créé, si je clique dessus, ça ouvre le classeur source.

En tous les cas, merci pour ton aide !!

A bientôt
 

Roland_M

XLDnaute Barbatruc
Re : Lien hypertexte vers un classeur A créé depuis le classeur A dans un classeur B

bonjour à tous,

si c'est le chemin et le nom du classeur source soit ici ThisWorkbook alors:

PahtFich$ = ThisWorkbook.Path & "\" & ThisWorkbook.Name
Wbk2.Sheets("LISTE ").Hyperlinks.Add Range("B" & i), PahtFich$

maintenant, si tu n'as aucune source possible du nom ni du chemin de ce fichier,
je ne peux donc pas le deviner avec ce code et pourquoi chercher à mettre un lien !?
 
Dernière édition:

titymax

XLDnaute Occasionnel
Re : Lien hypertexte vers un classeur A créé depuis le classeur A dans un classeur B

Bonjour Roland,

Avec ce code, rien n'apparait dans la cellule....

Je pense ne pas avoir été clair dans ma demande initiale. Dans mon cas, j'ai plusieurs fichiers source pour lesquels je veux regrouper en un seul fichier synthèse certaines données. Pour cela, dans chacun des fichiers source, il y a une macro (export) qui permet d'exporter ces données vers le fichier synthèse (cible).
Ces données se trouvent dans la feuille REF des fichiers source et doivent être exportées dans la feuille LISTE du fichier cible (synthèse).

Ce que je cherche à faire, c'est depuis cette macro (export), aller écrire dans le fichier synthèse pour chaque fichier source, le lien qui me permette par la suite depuis le fichier synthèse d'aller en un clic dans un fichier source X. Ainsi, dans chaque ligne de mon fichier synthèse (cible), j'aurais les données exportées d'un fichier source et en colonne B j'aurais le lien pour aller dans le fichier source en question.

Dans ma macro de départ, j'allais écrire le symbole "@", puis je voulais y adjoindre le fameux lien vers le fichier source, afin qu'en terme d'affichage n'apparaisse que ce symbole et non le lien tout entier, pour des raisons de place.

Je ne sais pas si cela est plus clair.

Merci tjs pour ton aide.
 

titymax

XLDnaute Occasionnel
Re : Lien hypertexte vers un classeur A créé depuis le classeur A dans un classeur B

Bonjour le forum,

Help, help me, j'ai beau essayé des codes dans tous les sens, rien n'y fait, je n'arrive pas à obtenir de lien....

SVP aidez moi, il ne me reste plus que ça à résoudre pour que mon projet fonctionne à 100%.

A bientôt
 

MJ13

XLDnaute Barbatruc
Re : Lien hypertexte vers un classeur A créé depuis le classeur A dans un classeur B

Bonjour Titymax, Roland

Ok, mais que veux tu qu'on fasse sans fichier :confused:.

Il faut un fichier simple avec le problème posé, sans données confidentielles :).
 

titymax

XLDnaute Occasionnel
Re : Lien hypertexte vers un classeur A créé depuis le classeur A dans un classeur B

Bonjour MJ,

D'accord, je vais mettre deux fichiers exemple, mais cela va me prendre un peu de temps, au moins une bonne heure.

A bientôt...
 

Staple1600

XLDnaute Barbatruc
Re : Lien hypertexte vers un classeur A créé depuis le classeur A dans un classeur B

Bonjour à tous

SVP aidez moi, il ne me reste plus que ça à résoudre pour que mon projet fonctionne à 100%.
Je doute qu'il fonctionne à 100% quand je lis ceci
Dim Wbk1 As Workbook, Wbk2 As Workbook, cel As Range, i As String, Chemin As String
Cela devrait être As Long pour le moins mais surement pas As String :rolleyes:;)

Sinon même constat que MJ13, où est donc passé le fichier exemple ?

PS
: Pour faire deux fichiers exemple simplifiés 17 minutes et 57 secondes devrait suffire ;)
Mais nous sommes en week-end , donc tu peux prendre une heure si tu préfères
(le temp de finir les croissants, ton thé et ton verre de jus d'orange)
 
Dernière édition:

titymax

XLDnaute Occasionnel
Re : Lien hypertexte vers un classeur A créé depuis le classeur A dans un classeur B

Bonjour Staple,

Le "Long" n'y change rien... et si je dis que cela va me prendre du temps c'est pour des raisons multiples mais qui n'ont rien à voir avec le petit déj que j'ai pris il y a maintenant plus de 2 heures...:p

Bref je ne m'étend pas et je retourne (oui car j'ai 2 ordis 1 pro et 1 perso....) réaliser les fichiers exemples.

Merci.
 

Staple1600

XLDnaute Barbatruc
Re : Lien hypertexte vers un classeur A créé depuis le classeur A dans un classeur B

Re


Précisions
Pourquoi "dimmer" As Long ?
Parce que i représente un numéro de ligne.
extrait de l'aide VBA
Propriété Cells
Pour renvoyer une seule cellule, spécifiez Cells(row, column), row étant l'index de ligne et column l'index de colonne. L'exemple suivant montre comment affecter la valeur 24 à la cellule A1.

Worksheets(1).Cells(1, 1).Value = 24
 
Dernière édition:

titymax

XLDnaute Occasionnel
Re : Lien hypertexte vers un classeur A créé depuis le classeur A dans un classeur B

Re à tous,

Voici les 2 fichiers pour illustrer mon exemple, mais aussi incroyable que cela puisse paraitre je n'arrive même plus dans ces exemples à faire fonctionner le reste... :mad: je rage comme c'est pas permis !!!

Merci pour votre aide plus que précieuse...
 

Pièces jointes

  • FICHE PILOU.xls
    43.5 KB · Affichages: 32
  • SYNTHESE.xls
    33 KB · Affichages: 39
  • SYNTHESE.xls
    33 KB · Affichages: 36
  • SYNTHESE.xls
    33 KB · Affichages: 39

Staple1600

XLDnaute Barbatruc
Re : Lien hypertexte vers un classeur A créé depuis le classeur A dans un classeur B

Re


Ceci fonctionne avec ton fichier exemple
Code:
Private Sub CommandButton2_Click()
Dim Wbk1 As Workbook, Wbk2 As Workbook, i As Long
Dim p As Range, f As Worksheet, xl&
PathFich$ = ThisWorkbook.Path & "\" & ThisWorkbook.Name
Set Wbk1 = ThisWorkbook
Set Wbk2 = Workbooks("SYNTHESE.xls")
Set f = Wbk2.Sheets("Feuil1")
Set p = f.Range(f.Cells(1, 1), f.Cells(Rows.Count, 1).End(xlUp))

For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
xl = Application.Match(Cells(i, 1), p, 0)
If Not IsError(xl) Then
    f.Hyperlinks.Add f.Cells(xl, "B"), PathFich$
    f.Cells(xl, "C").Value = Cells(i, "B").Value
    f.Cells(xl, "D").Value = Cells(i, "C").Value
    f.Cells(xl, "E").Value = Cells(i, "D").Value
    f.Cells(xl, "F").Value = Cells(i, "E").Value
End If
Next
End Sub
 

titymax

XLDnaute Occasionnel
Re : Lien hypertexte vers un classeur A créé depuis le classeur A dans un classeur B

Merci Bcp bcp Staple, je dois partir, je regarderai ce que ça donne car je dois partir.

Je ne manquerai pas de dire si cela fonctionne et si je peux le transposer sans problème à mon projet.

Bon WE et à bientôt...
 

titymax

XLDnaute Occasionnel
Re : Lien hypertexte vers un classeur A créé depuis le classeur A dans un classeur B

Bonjour à tous,

Un grand grand merci à toi STAPLE, cela répond parfaitement à ce que je voulais, il ne me reste plus qu'à le transposer dans mon projet en espérant que tout se passe bien.
Par contre, pourrais tu me dire pour quelle raison tu as totalement changé le code, est ce que cela veut dire, que je n'avais aucune chance que ça fonctionne avec le code tel que je le proposais ?

Je remercie (comme aux César) également MJ et Roland pour avoir consacré du temps à me répondre.

Vive le forum !!!

A bientôt...
 

Discussions similaires

Statistiques des forums

Discussions
312 858
Messages
2 092 876
Membres
105 547
dernier inscrit
Phil Moi