Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

lien vers page suivante et précédente

maval

XLDnaute Barbatruc
Bonjour

J'ai un code pour me rendre en page d'accueil qui fonctionne très bien j'aimerai lui apporter une modification. Mon code:
Code:
Sub inser_liens_hypertext()
Dim sh As Worksheet
For Each sh In Worksheets
If sh.Name <> "Accueil" Then
    sh.Activate
    sh.Range("A1").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        "Accueil!A1", TextToDisplay:="Retour page d'Accueil"
End If
Next sh
Sheets("Accueil").Activate
End Sub

J'aimerai ajouter à ce code la mention suivant précédent.

je vous remercie d'avance

Max
 

Pièces jointes

  • Lien vers feuil accueil.xlsm
    15.4 KB · Affichages: 11

job75

XLDnaute Barbatruc
Re,

Voyez le fichier joint et cette macro dans ThisWorkbook :
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If TypeName(Sh) <> "Worksheet" Then Exit Sub
Application.ScreenUpdating = False
Sh.[A1:A3].Clear 'RAZ (au cas où l'on modifie l'ordre des feuilles)
If Sh.Name <> "Accueil" Then Sh.Hyperlinks.Add Sh.[A1], "", "Accueil!A1", TextToDisplay:="Accueil"
If Sh.Index > 1 Then Sh.Hyperlinks.Add Sh.[A2], "", Sheets(Sh.Index - 1).Name & "!A1", TextToDisplay:="Précédent"
If Sh.Index < Sheets.Count Then Sh.Hyperlinks.Add Sh.[A3], "", Sheets(Sh.Index + 1).Name & "!A1", TextToDisplay:="Suivant"
Sh.[A1:A3].Sort Sh.[A1], Header:=xlNo 'tri pour supprimer les vides
End Sub
Elle se déclenche quand on active une feuille quelconque.

A+
 

Pièces jointes

  • Liens(1).xlsm
    23.7 KB · Affichages: 13

maval

XLDnaute Barbatruc
Re,

C'est bon j'ai modifier,
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If TypeName(Sh) <> "Worksheet" Then Exit Sub
Application.ScreenUpdating = False
Sh.[E1:G1].Hyperlinks.Delete 'RAZ (au cas où l'on modifie l'ordre des feuilles)
If Sh.Name <> "Accueil" Then Sh.Hyperlinks.Add Sh.[E1], "", "Accueil!E1", TextToDisplay:="Accueil"
If Sh.Index > 1 Then Sh.Hyperlinks.Add Sh.[F1], "", Sheets(Sh.Index - 1).Name & "!E1", TextToDisplay:="Précédent"
If Sh.Index < Sheets.Count Then Sh.Hyperlinks.Add Sh.[G1], "", Sheets(Sh.Index + 1).Name & "!E1", TextToDisplay:="Suivant"
Sh.[E1:G1].Sort Sh.[E1], Header:=xlNo 'tri pour supprimer les vides
End Sub

Je vous remercie Nickel
 

job75

XLDnaute Barbatruc
Re,

Je me disais aussi...

Mais pour le tri à la fin il faut un tri horizontal :
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If TypeName(Sh) <> "Worksheet" Then Exit Sub
Application.ScreenUpdating = False
Sh.[E1:G1].Clear 'RAZ (au cas où l'on modifie l'ordre des feuilles)
If Sh.Name <> "Accueil" Then Sh.Hyperlinks.Add Sh.[E1], "", "Accueil!E1", TextToDisplay:="Accueil"
If Sh.Index > 1 Then Sh.Hyperlinks.Add Sh.[F1], "", Sheets(Sh.Index - 1).Name & "!E1", TextToDisplay:="Précédent"
If Sh.Index < Sheets.Count Then Sh.Hyperlinks.Add Sh.[G1], "", Sheets(Sh.Index + 1).Name & "!E1", TextToDisplay:="Suivant"
Sh.[E1:G1].Sort Sh.[E1], Orientation:=xlByColumns 'facultatif, tri horizontal pour supprimer les vides
End Sub
A+
 

job75

XLDnaute Barbatruc
Il est possible de supprimer le soulignement des liens?
Oui en modifiant le format des cellules mais ce serait dommage...

Par ailleurs je vois au post #5 que vous avez utilisé :
Code:
Sh.[E1:G1].Hyperlinks.Delete 'RAZ (au cas où l'on modifie l'ordre des feuilles)
alors qu'il faut :
Code:
Sh.[E1:G1].Clear 'RAZ (au cas où l'on modifie l'ordre des feuilles)
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…