création d'hyperliens

Le
Sunburn
Bonjour,

j'ai une feuille dans laquelle j'ai pas mal d'hyperliens (voir ci-joint
selon macro de http://boisgontierjacques.free.fr/)
http://cjoint.com/?bmmWmS251y
Je voudrais, à chaque fois que je vais sur ma feuille GA02, ma liste de
liens se remette dans les bonnes cases.
Je m'explique. j'ai une macro qui efface toutes mes cellules non
verouillées, dont mes liens font partis. et donc je voudrais les remettre
après effacement.

Merci de votre aide.

YANN
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #18368261
Bonjour,

http://boisgontierjacques.free.fr/fichiers/jb-SommaireHyperLien.xls

JB

On 12 jan, 12:08, Sunburn
Bonjour,

j'ai une feuille dans laquelle j'ai pas mal d'hyperliens (voir ci-joint
selon macro dehttp://boisgontierjacques.free.fr/)http://cjoint.com/?bmmWm S251y
Je voudrais, à chaque fois que je vais sur ma feuille GA02, ma liste de
liens se remette dans les bonnes cases.
Je m'explique. j'ai une macro qui efface toutes mes cellules non
verouillées, dont mes liens font partis. et donc je voudrais les remett re
après effacement.

Merci de votre aide.

YANN


FFO
Le #18368361
Salut à toi

Je suppose que les cellules de la colonne C porte les adresses des liens et
celles de la colonne D l'identification des cellules qui doivent avoir ces
liens

Dans cet esprit je te propose ce code à mettre dans le VBA de la feuille
"GA02" :

Private Sub Worksheet_Activate()
For Each c In Worksheets("GA02").Range("D2", "D" &
Sheets("GA02").Range("D65535").End(xlUp).Row)
ActiveSheet.Hyperlinks.Add Anchor:=Range(c), Address:="", SubAddress:= _
"" & Range("C" & c.Row) & "", TextToDisplay:="" & Range("C" & c.Row)
& ""
Next
End Sub

Ce code mets tous les liens des cellules identifiées colonne C aux cellules
identifiées colonne D


Espérant avoir répondu à ton attente
Dis moi !!!!
Sunburn
Le #18368951
Re,
en fait, ma liste de mes liens a été obtenue de cette façon là :
---
Sub ListeLiensClasseur()
On Error Resume Next
Application.DisplayAlerts = False
Sheets("temp").Delete
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "temp"
I = 2
For Each s In ActiveWorkbook.Sheets
For Each H In s.Hyperlinks
ActiveSheet.Cells(I, 1) = H.TextToDisplay
ActiveSheet.Cells(I, 2) = H.Address
ActiveSheet.Cells(I, 3) = H.SubAddress
ActiveSheet.Cells(I, 4) = H.Parent.Address
ActiveSheet.Cells(I, 5) = s.Name
I = I + 1
Next H
Next s
Cells.EntireColumn.AutoFit
End Sub
----
mais je voudrais ne pas utiliser un onglet comme base de ma génration de
liens.
Je cherche plutot quelquechose ou je nomme les cellules dans lesquelles il y
a le lien, avec le lien réel.
genre [onglet GA02 cellule A12] = lien [onglet 10.21]
...
tu vois ce que je veux dire ?
Merci.
YANN

"FFO" a écrit :

Salut à toi

Je suppose que les cellules de la colonne C porte les adresses des liens et
celles de la colonne D l'identification des cellules qui doivent avoir ces
liens

Dans cet esprit je te propose ce code à mettre dans le VBA de la feuille
"GA02" :

Private Sub Worksheet_Activate()
For Each c In Worksheets("GA02").Range("D2", "D" &
Sheets("GA02").Range("D65535").End(xlUp).Row)
ActiveSheet.Hyperlinks.Add Anchor:=Range(c), Address:="", SubAddress:= _
"" & Range("C" & c.Row) & "", TextToDisplay:="" & Range("C" & c.Row)
& ""
Next
End Sub

Ce code mets tous les liens des cellules identifiées colonne C aux cellules
identifiées colonne D


Espérant avoir répondu à ton attente
Dis moi !!!!



FFO
Le #18369211
Rebonjour à toi

Il faut bien une liste quelque part qui donne le paramétrage des liens
A moins que tu puisses fournir une suite logique pour les obtenir
Mon code c'est basé sur les données dans l'onglet "temp"
Si il n'existe pas comment les obtenir ????

merci pour tes précisions
Sunburn
Le #18369281
Rebonjour,
et bien, j'ai 29 liens dans cette feuille GA02.
je pensais qu'on pouvait les énumérer, c'est-a-dire ecrire que :
en [GA02].cellule H80, on a un lien qui a le texte "10.31" et qui pointe
vers l'onglet '10_31'
ensuite en ......., et en fait, 29 lignes comme ça avec chaque lien, car en
effet, il n'y a pas de suite logique.

Sinon, je peux définir les liens sur un onglet, par exemple disons en
"GA02", à partir de [K1], qui seront des cellules verouillées (ça pose pas de
probleme ?)
Merci à toi.
YANN
"FFO" a écrit :

Rebonjour à toi

Il faut bien une liste quelque part qui donne le paramétrage des liens
A moins que tu puisses fournir une suite logique pour les obtenir
Mon code c'est basé sur les données dans l'onglet "temp"
Si il n'existe pas comment les obtenir ????

merci pour tes précisions



FFO
Le #18369541
Rebonjours à toi

Quand tu dis les énumérer qu'entends tu par là ??? (où et comment)
Sinon à l'instar du fichier "temp" que tu nous as fourni si tu listes les
données dans un Onglet où bon te semble mon code fonctionnera il faut juste
l'adapter à la plage que tu utiliseras :

Private Sub Worksheet_Activate()
For Each c In Worksheets("GA02").Range("D2", "D" &
Sheets("GA02").Range("D65535").End(xlUp).Row)
ActiveSheet.Hyperlinks.Add Anchor:=Range(c), Address:="", SubAddress:= _
"" & Range("C" & c.Row) & "", TextToDisplay:="" & Range("C" & c.Row)
& ""
Next
End Sub

Ici Onglet "GA02" colonne C les adresses des liens colonne D les cellules
portant les liens

Tiens moi informé
Sunburn
Le #18369671
D'ac,
ça me conviens pas mal, sauf les noms des liens.
je voudrais comme nom "10.31", "10.71", ....
quoi rajouter ??
Merci.
Yann

"FFO" a écrit :

Rebonjours à toi

Quand tu dis les énumérer qu'entends tu par là ??? (où et comment)
Sinon à l'instar du fichier "temp" que tu nous as fourni si tu listes les
données dans un Onglet où bon te semble mon code fonctionnera il faut juste
l'adapter à la plage que tu utiliseras :

Private Sub Worksheet_Activate()
For Each c In Worksheets("GA02").Range("D2", "D" &
Sheets("GA02").Range("D65535").End(xlUp).Row)
ActiveSheet.Hyperlinks.Add Anchor:=Range(c), Address:="", SubAddress:= _
"" & Range("C" & c.Row) & "", TextToDisplay:="" & Range("C" & c.Row)
& ""
Next
End Sub

Ici Onglet "GA02" colonne C les adresses des liens colonne D les cellules
portant les liens

Tiens moi informé



Sunburn
Le #18369661
rebonjour,
de plus, il me met "référence non valide", mais il m'affiche l'onglet voulu.
pourquoi ce message.

Voici tout mon code.
merci.
YANN
----
'pour forcer les liens de GA02
Private Sub Worksheet_Activate()
For Each C In Worksheets("GA02").Range("L1", "L" & _
Sheets("GA02").Range("L65535").End(xlUp).Row)
ActiveSheet.Hyperlinks.Add Anchor:=Range(C), Address:="", SubAddress:= _
"" & Range("K" & C.Row) & "", TextToDisplay:="" & Range("K" & C.Row) & ""
Next
End Sub

'pour faire marcher les liens hypertexte, même si l'onglet n'est pas visible
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
ActiveWorkbook.Unprotect 'deproteger le classeur
Dim H As Hyperlink
For Each H In Worksheets("GA02").Hyperlinks
If H.Range.Address = Target.Range.Address Then
X = Left(H.SubAddress, Application.Find("!", H.SubAddress) - 1)
y = Right(H.SubAddress, Len(H.SubAddress) - Application.Find("!",
H.SubAddress))
X = Application.Substitute(X, "'", "")
Sheets(X).Visible = True
'Application.GoTo Sheets(x).Range(y)
Sheets(X).Activate
Exit Sub
End If
Next
ActiveWorkbook.Protect Structure:=True ', Windows:=True 'protection du
classeur
End Sub
-----
FFO
Le #18370261
Rebonjour à toi
quels sont les paramètres de celui dont la référence est non valide (nom de
l'onglet de destination) ????

Merci pour la précision

Pour les noms des liens si tu les souhaites différents des liens proprement
dit il faut rajouter une cellule supplémendaire dans une colonne dans
laquelle tu mets les noms pour chaque lien et tu enrichis cette partie du
code :

TextToDisplay:=""

ainsi

TextToDisplay:= Range("E" & C.Row)

pour la colonne E

Donnes moi des nouvelles !!!!
Sunburn
Le #18370361
impec, j'ai modifié textodisplay, car les noms voulus ne sont pas ceux des
onglets.
merci beaucoup.
YANN

"FFO" a écrit :

Rebonjour à toi
quels sont les paramètres de celui dont la référence est non valide (nom de
l'onglet de destination) ????

Merci pour la précision

Pour les noms des liens si tu les souhaites différents des liens proprement
dit il faut rajouter une cellule supplémendaire dans une colonne dans
laquelle tu mets les noms pour chaque lien et tu enrichis cette partie du
code :

TextToDisplay:=""

ainsi

TextToDisplay:= Range("E" & C.Row)

pour la colonne E

Donnes moi des nouvelles !!!!




Publicité
Poster une réponse
Anonyme