recopier un lien hypertext d'un classeur à un autre

pascal21

XLDnaute Barbatruc
bonsoir à tous
j'ai regardé sur "l'excellent" site de Boisgontier mais je n'ai pas trouvé

juste une question avant de faire un fichier joint si besoin est
est-il possible de copier un lien hypertext d'un classeur à un autre
je m'explique:
classeur A colonne C j'ai des liens qui pointent vers des onglets
classeur B colonne C j'ai une formule qui copie la valeur de la colonne C du classeur A
Code:
ex: en c4 ='[classeur A.xls]Tableau de bord'!$C4
mais en C15 j'ai ='[classeur C.xls]Tableau de bord'!$C15
j'aimerais, si c'est possible, un code ou une formule qui recopie automatiquement le lien hypertext
du classeur A colonne C
merci de m'aider
merci
edit: petite précision
les cellules de la colonne C du classeur B peuvent pointer vers d'autres classeurs C ou D ou E
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : recopier un lien hypertext d'un classeur à un autre

Bonsoir Pascal,

Le titre que tu as choisi pour le fil ne semble pas correct.

D'après ce que je comprends il ne s'agit pas d'un lien hypertexte mais d'une référence externe, qui bien sûr crée une liaison avec un autre classeur.

Pour que cette référence soit définie et puisse être utilisée dans tous les cas, il suffit de fermer le fichier source : le chemin d'accès complet apparaît alors.

La formule complète peut être transférée par copier/coller ou récupérée par des codes VBA comme :

Code:
f1 = [C4].Formula

f2 = [C4].FormulaR1C1

A+
 
Dernière édition:

pascal21

XLDnaute Barbatruc
Re : recopier un lien hypertext d'un classeur à un autre

bonjour JOB75
il ne s'agit pas d'un lien hypertexte mais d'une référence externe, qui bien sûr crée une liaison avec un autre classeur.
je me suis peut-être mal expliqué, d'où la manque de réponses malgré 40 consultations
pourtant ça me semblait clair (pour moi)
après que ça s'appelle "référence externe" c'est possible!!!
je prends un exemple
dans le classeur B cellule B5.value = "toto" cette cellule pointe vers l'onglet "toto" grâce au lien hypertexte
dans la classeur A cellule B5 cette formule ='[classeur A.xls]Tableau de bord'!$F4
ça copie bien la valeur de B5 du classeur A
mais pas le lien Hypertexte et c'est ça que j'aimerais avoir automatiquement
car bien sur je peux le faire manuellement mais ça risque d'être un peu long (env. 100 liens)
je vais regarder du coté de la solution que tu propose
à +
 

Pièces jointes

  • Classeur A.xls
    24.5 KB · Affichages: 103
  • Classeur B.xls
    16.5 KB · Affichages: 82
  • Classeur A.xls
    24.5 KB · Affichages: 97
  • Classeur B.xls
    16.5 KB · Affichages: 83
  • Classeur A.xls
    24.5 KB · Affichages: 104
  • Classeur B.xls
    16.5 KB · Affichages: 91
Dernière édition:

pascal21

XLDnaute Barbatruc
Re : recopier un lien hypertext d'un classeur à un autre

re
dans un module
Code:
Sub Macro1()
 With Range("c9")
    .Hyperlinks.Add Anchor:=Selection, Address:=Range("b9").Value, _
        SubAddress:=Range("a9").Value, TextToDisplay:=Range("d9").Value
        End With
end sub
en A9 =toto!a1
j'ai réussi à modifier le code
ça fonctionne
mais sur toute cellule active pas seulement sur C9
maintenant il faudrait que ça fonctionne sur la colonne C ; de C5:C100
que la valeur dans la colonne A soit automatique
en A9 =C9 et que ça rajoute !a1
ça en formule ça doit être possible
 

Pièces jointes

  • Classeur A.xls
    30 KB · Affichages: 92
  • Classeur A.xls
    30 KB · Affichages: 89
  • Classeur A.xls
    30 KB · Affichages: 81
Dernière édition:

job75

XLDnaute Barbatruc
Re : recopier un lien hypertext d'un classeur à un autre

Bonjour Pascal,

Quand on parle de lien hypertexte dans Excel, voici de quoi il s'agit, dans Classeur2.

Edit : vu ton post #4, oui ce code crée un lien hypertexte, là on est d'accord

A+
 

Pièces jointes

  • Classeur1.xls
    20.5 KB · Affichages: 83
  • Classeur1.xls
    20.5 KB · Affichages: 82
  • Classeur1.xls
    20.5 KB · Affichages: 89
  • Classeur2.xls
    13.5 KB · Affichages: 96
  • Classeur2.xls
    13.5 KB · Affichages: 105
  • Classeur2.xls
    13.5 KB · Affichages: 102
Dernière édition:

pascal21

XLDnaute Barbatruc
Re : recopier un lien hypertext d'un classeur à un autre

bonjour Job75
bon on est sur la même longueur d'onde, c'est déjà ça
j'ai réussi à modifier le code
j'ai même la formule pour a9 en utilisant &
maintenant il ne me manque que le fonctionnement sur la colonne C uniquement
je crois que ça s'appelle une boucle
 
Dernière édition:

pascal21

XLDnaute Barbatruc
Re : recopier un lien hypertext d'un classeur à un autre

petit à petit j'avance
je remplace selection dans le code par la cellule où il doit y avoir un lien
maintenant la boucle, là je vais avoir du mal
car les for each, next i ,for i, offset(0,1) etc.... j'ai du mal à imprimer
 

pascal21

XLDnaute Barbatruc
Re : recopier un lien hypertext d'un classeur à un autre

Sub Macro1()
'
' Macro1 Macro
Code:
' Macro enregistrée le 21/12/2009 par pascal
'

    'With Sheets("feuil1")
   Dim i As Integer
   For i = 9 To 100
  If Range("c" & i).Value = "" Then
   Exit Sub
   ActiveSheet.Hyperlinks.Add Anchor:=Range("c" & i), Address:=Range("b" & i).Value, _
        SubAddress:=Range("a" & i).Value, TextToDisplay:=Range("d" & i).Value
    End If
    Next i
    'End With
    
End Sub
pouvez-vous m'expliquer ce qui ne va pas dans ce code
ça ne se lance pas du tout
pour rappel C est la colonne qui doit contenir le lien hypertext mais si une cellule C est vide alors la macro ne doit pas fonctionne sur cette ligne
merci
 

pascal21

XLDnaute Barbatruc
Re : recopier un lien hypertext d'un classeur à un autre

Code:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 21/12/2009 par pascal
'

    With Sheets("feuil1")
   Dim i As Integer
   For i = 9 To 20 'pour les lignes 9 à 20
  If Range("c" & i).Value = "" Then 'si cellule C &i  vide alors pas de macro sur cette ligne
Range("c1").Value = Range("b1").Value ' [COLOR="YellowGreen"]exit sub semblait ne pas fonctionner alors j'ai mis ça[/COLOR]
   Else
   .Hyperlinks.Add Anchor:=Range("c" & i), Address:=Range("b" & i).Value, _
        SubAddress:=Range("a" & i).Value, TextToDisplay:=Range("d" & i).Value
    
    End If
  Next i
    End With
    
End Sub
j'ai mis les commentaires, si ça peut servir à quelqu'un de débutant comme moi
voir avec le classeur A joint plus haut pour la concordance des cellules
bon bin ça y est j'ai trouvé et ça fonctionne
comme quoi avec un peu de ténacité on peut arriver à quelque chose
ça ne recopie pas, au sens propre du terme, le lien hypertext du classeur B
mais ça en crée un de façon automatique
je ne suis pas peu fière d'y être arrivé
bonne journée
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260