Création de lien hypertexte en boucle sur liste d'onglet

Bonjour,

J'ai adapté une macro qui me permet de récupéré les noms des onglets au fur et à mesure de leur création dans mon classeur.

J'aimerai ajouter la mise en lien depuis la liste que j'obtiens vers la feuille avec un lien hypertexte.

Dans le code ci-dessous, j'ai tenté d'adapter ce que l'enregistreur de macro m'a donné, en remplaçant le nom de la feuille par ws.name, mais j'ai un bug de rédaction. Il y a un problème avec l'apostrophe.

Private Sub Worksheet_Activate()
Dim ws As Worksheet, i As Integer

Application.Calculation = xlCalculationManual

    i = 6
        Sheets("RECAP").Columns("A:B").ClearContents
        Sheets("RECAP").Range("A3").FormulaR1C1 = "N° dde"
        Sheets("RECAP").Range("B3").FormulaR1C1 = "Structure"
            For Each ws In Application.Worksheets
               If ws.Name <> "RECAP" And ws.Name <> "Fiche type" Then
                    Sheets("RECAP").Range("A" & i).FormulaR1C1 = "Ch " & i - 5
                    Sheets("RECAP").Range("B" & i) = ws.Name
                    ActiveSheet.Hyperlinks.Add Anchor:=Range("B" & i).Select, Address:="", SubAddress:="""'""&ws.Name&""'!CHOIX""", TextToDisplay:="lien"
                    i = i + 1
               End If
            Next ws
        Sheets("RECAP").Columns("B:B").EntireColumn.AutoFit

Application.Calculation = xlCalculationAutomaticCalculate

'Calculate

End Sub

'
'    Range("B11").Select
'    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
'        "'col st joseph Le May s ev'!CHOIX", TextToDisplay:= _
'        "col st joseph Le May s ev"

Merci de votre aide.

Cordialement,

Leakim

Re,

Je le sais bien pourtant... un fichier faut mieux que mille mots.

Alors je joints un fichier.

Cordialement,

Leakim

Salut leakim,

Première remarque : pourquoi mettre un select ?

ActiveSheet.Hyperlinks.Add Anchor:=Range("B" & i).Select, Address:="", SubAddress:="""'""&ws.Name&""'!CHOIX""", TextToDisplay:="lien"

Deuxième remarque : à quoi sert le champ CHOIX ? Je ne le vois pas dans ton fichier.

Troisième remarque : pourquoi tant de """""""" ???

Sinon en partant du principe que le champ CHOIX existe dans toutes les feuilles, voici le code corrigé :

ActiveSheet.Hyperlinks.Add Anchor:=Range("B" & i), Address:="", SubAddress:="'" & ws.Name & "'!CHOIX", TextToDisplay:="lien"

Je mettrais même :

ActiveSheet.Hyperlinks.Add Anchor:=Range("B" & i), Address:="", SubAddress:="'" & ws.Name & "'!CHOIX", TextToDisplay:= ws.Name

Avec ça en début de code et ce sera bien :

Application.ScreenUpdating = False

Bonjour,

Merci pour cette correction c'est nickel.

Leakim

a toute fin utile

Private Sub Worksheet_Activate()
Dim ws As Worksheet, i As Integer

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

    i = 6
        Sheets("RECAP").Columns("A:B").ClearContents
        Sheets("RECAP").Range("A3").FormulaR1C1 = "N° dde"
        Sheets("RECAP").Range("A4").FormulaR1C1 = "=COUNTA(R[2]C:R[96]C)"
        Sheets("RECAP").Range("B3").FormulaR1C1 = "Structure"
            For Each ws In Application.Worksheets
               If ws.Name <> "RECAP" And ws.Name <> "Fiche type" Then
                    Sheets("RECAP").Range("A" & i).FormulaR1C1 = "Ch " & i - 5
                    'Sheets("RECAP").Range("B" & i) = ws.Name
                    ActiveSheet.Hyperlinks.Add Anchor:=Range("B" & i), Address:="", SubAddress:= _
                    "'" & ws.Name & "'!A1", TextToDisplay:=ws.Name
                    i = i + 1
               End If
            Next ws

        Sheets("RECAP").Columns("B:C").EntireColumn.AutoFit

Application.Calculation = xlCalculationAutomaticCalculate

Calculate
Application.ScreenUpdating = True

End Sub
Rechercher des sujets similaires à "creation lien hypertexte boucle liste onglet"