Lien automatique suivant nom onglet

Bonjour a tous,

Je suis nouveau en VBA et je bloque sur un code, voici ma requête:

Dans mon onglet 2, quand la valeur de le colonne B est = à un nom d'onglet, alors établir un lien hypertexte.

J'ai essayé de cherche dans les forum, mais je n'arrive pas a trouver le code VBA pour une exécution automatique.

Merci pour votre aide !

Bonsoir,

essaie ceci

Sub createhyperlink()
'
Dim wsn(100)
Set ws1 = ActiveSheet
With ws1
 dl = .Range("B" & .Rows.Count).End(xlUp).Row
End With
i = 0
For Each ws In Worksheets
i = i + 1
 wsn(i) = ws.Name
Next

For k = 1 To dl
 For j = 1 To i
  If ws1.Cells(k, 2).Value = wsn(j) Then
    ws1.Cells(k, 2).Hyperlinks.Add Anchor:=ws1.Cells(k, 2), Address:="", SubAddress:= _
        "'" & wsn(j) & "'!A1", TextToDisplay:=wsn(j)
    Exit For
  End If
 Next j
Next k
 Set ws1 = Nothing
End Sub

Salut,

je m'incruste dans cette demande, mais çà va me servir également

J'ai testé çà marche nickel, par contre est-ce que çà marcherait en allant rechercher le nom de l'onglet sur un autre fichier excel ?

Bonsoir,

voici une version de la macro pour faire référence à des onglets dans un autre fichier excel.

Sub createhyperlink()
'
Dim wsn(100)

wbtop = "test.xlsx" :' nom du fichier excel contenant les onglets à référencer

Set ws1 = ActiveSheet
With ws1
 dl = .Range("B" & .Rows.Count).End(xlUp).Row
End With
i = 0
On Error GoTo errh
Set wb = Workbooks(wbtop)
On Error GoTo 0
If wbnotopen Then
Set wb = Workbooks.Open(wbtop)
End If
For Each ws In wb.Worksheets
i = i + 1
 wsn(i) = ws.Name
Next
For k = 1 To dl
 For j = 1 To i
  If ws1.Cells(k, 2).Value = wsn(j) Then
    ws1.Cells(k, 2).Hyperlinks.Add Anchor:=ws1.Cells(k, 2), Address:=wb.Name, SubAddress:= _
        "'" & wsn(j) & "'!A1", TextToDisplay:=wsn(j)
    Exit For
  End If
 Next j
Next k
 Set ws1 = Nothing
 wb.Close
 Set wb = Nothing
 Exit Sub
errh:
wbnotopen = True
Resume Next
End Sub

merci pour ta réponse très rapide, par contre il me demande le chemin du fichier test.

Peux tu me dire ou je renseigne le chemin dans ta macro ?

merci par avance

bonsoir,

nom de fichier sans précision du chemin, excel ira chercher le fichier dans son répertoire par défaut

wbtop = "test.xlsx" :' nom du fichier excel contenant les onglets à référencer

s'il faut le chercher ailleurs, il suffit de faire précéder le nom du fichier par le chemin

wbtop = "c:\documents\test.xlsx" :' nom du fichier excel contenant les onglets à référencer

j'ai compris mon erreur, le fichier de test n'était pas ouvert au lancement de la macro

Merci beaucoup

Merci h2so4 !

C'est exactement ce que je voulais et ca fonctionne nikel !

Bonjour,

J'ai repris le code et c'est super génial.

Cependant je ne parviens par à le modifier pour atteindre l'objectif suivant :

Avoir les liens hypertextes dans l'onglet de mon choix et dans les cellules de de la colonne C

Merci d'avance

remplace B par C et 2 par 3 dans les instructions

dl = .Range("B" & .Rows.Count).End(xlUp).Row

et

 If ws1.Cells(k, 2).Value = wsn(j) Then
    ws1.Cells(k, 2).Hyperlinks.Add Anchor:=ws1.Cells(k, 2), Address:=wb.Name, SubAddress:= _
        "'" & wsn(j) & "'!A1", TextToDisplay:=wsn(j)

puis sélectionne l'oglet de ton choix et lance la macro

Rechercher des sujets similaires à "lien automatique suivant nom onglet"