Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Affecter un lien hypertexte auto. (suite)

13 réponses
Avatar
zOrg2net
Bonjour,

Suis très satisfait des réponses que j'ai reçues pour mon dernier post.
L'exigeance aidant, maintenant je voudrai créer automatiquement, comme pour
des pages web, un lien hypertexte, qui renvoi à la page suivante et un autre
à la précédente. J'ai eu beau manipuler le code d'Isabelle (que je colle
ci-dessous pour mémoire), je n'arrive pas à trouver une instruction du type:
Sheets(f.Name)-1 et Sheets(f.Name)+1 .

Code d'Isabelle
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.Range("A30"), Address:="", _
SubAddress:="Sommaire!A1", TextToDisplay:="Sommaire"
End With
End If
Next

Merci de vos réponses et des explications que vous pourrez me donner.

zOrg2net
7OuNet

10 réponses

1 2
Avatar
Elliac
Bonjour,

Sheets(ActiveSheet.Index - 1).Select
Sheets(ActiveSheet.Index +- 1).Select

Camille

"zOrg2net" wrote:

Bonjour,

Suis très satisfait des réponses que j'ai reçues pour mon dernier post.
L'exigeance aidant, maintenant je voudrai créer automatiquement, comme pour
des pages web, un lien hypertexte, qui renvoi à la page suivante et un autre
à la précédente. J'ai eu beau manipuler le code d'Isabelle (que je colle
ci-dessous pour mémoire), je n'arrive pas à trouver une instruction du type:
Sheets(f.Name)-1 et Sheets(f.Name)+1 .

Code d'Isabelle
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.Range("A30"), Address:="", _
SubAddress:="Sommaire!A1", TextToDisplay:="Sommaire"
End With
End If
Next

Merci de vos réponses et des explications que vous pourrez me donner.

zOrg2net
7OuNet


Avatar
JB
On 1 fév, 09:17, zOrg2net wrote:
Bonjour,

Suis très satisfait des réponses que j'ai reçues pour mon dernier p ost.
L'exigeance aidant, maintenant je voudrai créer automatiquement, comme pour
des pages web, un lien hypertexte, qui renvoi à la page suivante et un autre
à la précédente. J'ai eu beau manipuler le code d'Isabelle (que je colle
ci-dessous pour mémoire), je n'arrive pas à trouver une instruction d u type:
Sheets(f.Name)-1 et Sheets(f.Name)+1 .

Code d'Isabelle
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.Range("A30"), Address:="", _
SubAddress:="Sommaire!A1", TextToDisplay:="Sommaire"
End With
End If
Next

Merci de vos réponses et des explications que vous pourrez me donner.

zOrg2net
7OuNet


Bonjour,


=LIEN_HYPERTEXTE("["&classeuractuel()&"]'"&ongletSuivant()&"'!
A1";"Suivant")

Dans un module:

Function ClasseurActuel()
ClasseurActuel = ThisWorkbook.Name
End Function

Function ongletSuivant()
ongletSuivant = Sheets(Sheets(Application.Caller.Parent.Name).Index
+ 1).Name
End Function

http://cjoint.com/?cbkpXNSNiC

JB

Avatar
zOrg2net
Bonjour,

Merci pour votre contribution.
J'ai voulu utiliser une partie de vos réponse dans une procédure, mais je
manipule très mal certain mot clé de VBA comme sheet (et comme l'aide VBA
plante tout le temps sur ma machine???...) Du coup ça bug et je n'arrive pas
à savoir pourquoi.
Je vous colle les essais que j'ai fait:

Sub test1()
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[B31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).Index
- 1).Name, TextToDisplay:="Page précédente"
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).Index
+ 1).Name, TextToDisplay:="Page Suivante"
End With
Else
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).Index
+ 1).Name, TextToDisplay:="Page Suivante"
End With
End If
Next
End Sub

Sub test2()
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[B31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index - 1), TextToDisplay:="Page
précédente"
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index + 1)), TextToDisplay:="Page
Suivante"
End With
Else
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index + 1), TextToDisplay:="Page
Suivante"
End With
End If
Next

Une idée ??

zOrg2net
7OuNet
Avatar
JB
On 1 fév, 11:20, zOrg2net wrote:
Bonjour,

Merci pour votre contribution.
J'ai voulu utiliser une partie de vos réponse dans une procédure, mai s je
manipule très mal certain mot clé de VBA comme sheet (et comme l'aide VBA
plante tout le temps sur ma machine???...) Du coup ça bug et je n'arriv e pas
à savoir pourquoi.
Je vous colle les essais que j'ai fait:

Sub test1()
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[B31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).I ndex
- 1).Name, TextToDisplay:="Page précédente"
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).I ndex
+ 1).Name, TextToDisplay:="Page Suivante"
End With
Else
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).I ndex
+ 1).Name, TextToDisplay:="Page Suivante"
End With
End If
Next
End Sub

Sub test2()
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[B31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index - 1), TextToDisplay: ="Page
précédente"
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index + 1)), TextToDisplay: ="Page
Suivante"
End With
Else
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index + 1), TextToDisplay: ="Page
Suivante"
End With
End If
Next

Une idée ??

zOrg2net
7OuNet


1-Il faut Copier/Coller les 2 fonctions dans un Module:

Function ClasseurActuel()
ClasseurActuel = ThisWorkbook.Name
End Function

Function ongletSuivant()
ongletSuivant = Sheets(Sheets(Application.Caller.Parent.Name).Index
+ 1).Name
End Function

2- Copier/Coller la formule dans une cellule:

=LIEN_HYPERTEXTE("["&classeuractuel()&"]'"&ongletSuivant()&"'!
A1";"Suivant")

Cette formule est copiable dans tous les onglets (sauf le dernier)

JB

Avatar
JB
On 1 fév, 11:20, zOrg2net wrote:
Bonjour,

Merci pour votre contribution.
J'ai voulu utiliser une partie de vos réponse dans une procédure, mai s je
manipule très mal certain mot clé de VBA comme sheet (et comme l'aide VBA
plante tout le temps sur ma machine???...) Du coup ça bug et je n'arriv e pas
à savoir pourquoi.
Je vous colle les essais que j'ai fait:

Sub test1()
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[B31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).I ndex
- 1).Name, TextToDisplay:="Page précédente"
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).I ndex
+ 1).Name, TextToDisplay:="Page Suivante"
End With
Else
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).I ndex
+ 1).Name, TextToDisplay:="Page Suivante"
End With
End If
Next
End Sub

Sub test2()
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[B31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index - 1), TextToDisplay: ="Page
précédente"
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index + 1)), TextToDisplay: ="Page
Suivante"
End With
Else
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index + 1), TextToDisplay: ="Page
Suivante"
End With
End If
Next

Une idée ??

zOrg2net
7OuNet


Pour écrire les formules par Macro:

Sub EcritFormulesTousOnglets()
For s = 2 To Sheets.Count - 1
Sheets(s).[A10].Formula =
"=HYPERLINK(""[""&classeuractuel()&""]'""&ongletsuivant()&""'!
A1"",""Suivant"")"
Next s
End Sub

JB

Avatar
Elliac
Bonjour,

Sub Feuilles()
For cpt = 2 To Sheets.Count
Sheets(cpt).Activate
Range("h1") = "Feuille précédente"
ActiveSheet.Hyperlinks.Add Anchor:=Range("h1"), Address:="",
SubAddress:= _
Sheets(cpt - 1).Name & "!A1", TextToDisplay:="Feuille précédente"
If Sheets(cpt).Index <> Sheets.Count Then
Sheets(cpt).Range("h2").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:= _
Sheets(cpt + 1).Name & "!A1", TextToDisplay:="Feuille suivante"
End If
Next
End Sub

Camille

"zOrg2net" wrote:

Bonjour,

Merci pour votre contribution.
J'ai voulu utiliser une partie de vos réponse dans une procédure, mais je
manipule très mal certain mot clé de VBA comme sheet (et comme l'aide VBA
plante tout le temps sur ma machine???...) Du coup ça bug et je n'arrive pas
à savoir pourquoi.
Je vous colle les essais que j'ai fait:

Sub test1()
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[B31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).Index
- 1).Name, TextToDisplay:="Page précédente"
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).Index
+ 1).Name, TextToDisplay:="Page Suivante"
End With
Else
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).Index
+ 1).Name, TextToDisplay:="Page Suivante"
End With
End If
Next
End Sub

Sub test2()
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[B31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index - 1), TextToDisplay:="Page
précédente"
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index + 1)), TextToDisplay:="Page
Suivante"
End With
Else
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index + 1), TextToDisplay:="Page
Suivante"
End With
End If
Next

Une idée ??

zOrg2net
7OuNet


Avatar
JB
On 1 fév, 12:00, Elliac wrote:
Bonjour,

Sub Feuilles()
For cpt = 2 To Sheets.Count
Sheets(cpt).Activate
Range("h1") = "Feuille précédente"
ActiveSheet.Hyperlinks.Add Anchor:=Range("h1"), Address:="",
SubAddress:= _
Sheets(cpt - 1).Name & "!A1", TextToDisplay:="Feuille précédent e"
If Sheets(cpt).Index <> Sheets.Count Then
Sheets(cpt).Range("h2").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:= _
Sheets(cpt + 1).Name & "!A1", TextToDisplay:="Feuille suivante"
End If
Next
End Sub

Camille



"zOrg2net" wrote:
Bonjour,

Merci pour votre contribution.
J'ai voulu utiliser une partie de vos réponse dans une procédure, m ais je
manipule très mal certain mot clé de VBA comme sheet (et comme l'ai de VBA
plante tout le temps sur ma machine???...) Du coup ça bug et je n'arr ive pas
à savoir pourquoi.
Je vous colle les essais que j'ai fait:

Sub test1()
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[B31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name) .Index
- 1).Name, TextToDisplay:="Page précédente"
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name) .Index
+ 1).Name, TextToDisplay:="Page Suivante"
End With
Else
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name) .Index
+ 1).Name, TextToDisplay:="Page Suivante"
End With
End If
Next
End Sub

Sub test2()
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[B31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index - 1), TextToDisplay: ="Page
précédente"
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index + 1)), TextToDisplay :="Page
Suivante"
End With
Else
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index + 1), TextToDisplay: ="Page
Suivante"
End With
End If
Next

Une idée ??

zOrg2net
7OuNet- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Bonjour,

Ton pgm écrit en dur les noms des onglets.
Si on déplace les onglets ou si on insère des onglets, il y a un pb.

JB


Avatar
JB
On 1 fév, 11:20, zOrg2net wrote:
Bonjour,

Merci pour votre contribution.
J'ai voulu utiliser une partie de vos réponse dans une procédure, mai s je
manipule très mal certain mot clé de VBA comme sheet (et comme l'aide VBA
plante tout le temps sur ma machine???...) Du coup ça bug et je n'arriv e pas
à savoir pourquoi.
Je vous colle les essais que j'ai fait:

Sub test1()
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[B31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).I ndex
- 1).Name, TextToDisplay:="Page précédente"
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).I ndex
+ 1).Name, TextToDisplay:="Page Suivante"
End With
Else
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).I ndex
+ 1).Name, TextToDisplay:="Page Suivante"
End With
End If
Next
End Sub

Sub test2()
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[B31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index - 1), TextToDisplay: ="Page
précédente"
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index + 1)), TextToDisplay: ="Page
Suivante"
End With
Else
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index + 1), TextToDisplay: ="Page
Suivante"
End With
End If
Next

Une idée ??

zOrg2net
7OuNet


Pour copier une formule sur tous les onglets, il n'y a pas besoin de
boucle.Il suffit de :

1-D'écrire la formule sur un onglet
2-De Copier la formule
2-Faire une sélection multiple de tous les onglets avec la touche Maj
avant de coller.

http://cjoint.com/?cbmUheUGUU

=LIEN_HYPERTEXTE("["&classeuractuel()&"]'"&ongletSuivant()&"'!
A1";"Suivant")

=LIEN_HYPERTEXTE("["&classeuractuel()&"]'"&ongletPrécédent()&"'!
A1";"Précédent")

Dans un module:

Function ClasseurActuel()
ClasseurActuel = ThisWorkbook.Name
End Function

Function ongletSuivant()
ongletSuivant = Sheets(Sheets(Application.Caller.Parent.Name).Index
+ 1).Name
End Function

Function ongletPrécédent()
ongletPrécédent =
Sheets(Sheets(Application.Caller.Parent.Name).Index - 1).Name
End Function

Les onglets peuvent ensuite être DEPLCES, RENOMMES.

JB

Avatar
zOrg2net
Merci à tous, j'ai utilisé la macro de JB avec ses fonctions et ça...
fonctionne très bien. J'ai rajouté deux ligne pour mettre Page Suivante sur
la page du sommaire et pas Précédente sur toutes les autres feuille. Et comme
les 3 dernières pages sont protégées, j'ai ajouté: For s = 2 To Sheets.Count
- 1 - 3 et y'a pas de problème. Par contre, pour l'esthétisme Sheets.Count -
1 - 3 ça le fait pas trop. Mais zon ne peu pas tout tavoir !!

A bientôt
zOrg2net
7OuNet





Bonjour,

Sub Feuilles()
For cpt = 2 To Sheets.Count
Sheets(cpt).Activate
Range("h1") = "Feuille précédente"
ActiveSheet.Hyperlinks.Add Anchor:=Range("h1"), Address:="",
SubAddress:= _
Sheets(cpt - 1).Name & "!A1", TextToDisplay:="Feuille précédente"
If Sheets(cpt).Index <> Sheets.Count Then
Sheets(cpt).Range("h2").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="",
SubAddress:= _
Sheets(cpt + 1).Name & "!A1", TextToDisplay:="Feuille suivante"
End If
Next
End Sub

Camille

"zOrg2net" wrote:

Bonjour,

Merci pour votre contribution.
J'ai voulu utiliser une partie de vos réponse dans une procédure, mais je
manipule très mal certain mot clé de VBA comme sheet (et comme l'aide VBA
plante tout le temps sur ma machine???...) Du coup ça bug et je n'arrive pas
à savoir pourquoi.
Je vous colle les essais que j'ai fait:

Sub test1()
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[B31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).Index
- 1).Name, TextToDisplay:="Page précédente"
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).Index
+ 1).Name, TextToDisplay:="Page Suivante"
End With
Else
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).Index
+ 1).Name, TextToDisplay:="Page Suivante"
End With
End If
Next
End Sub

Sub test2()
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[B31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index - 1), TextToDisplay:="Page
précédente"
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index + 1)), TextToDisplay:="Page
Suivante"
End With
Else
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index + 1), TextToDisplay:="Page
Suivante"
End With
End If
Next

Une idée ??

zOrg2net
7OuNet




Avatar
zOrg2net
Je préfère utiliser un module agrémenté de tes fonctions, cela me permet de
recréer les liens à chaque nouvelles feuilles, car comme je l'ai précisé, le
nombre de feuilles de ce classeur suit une course exponentielle que j'ai du
mal à maitriser.

@ plus et merci encore

zOrg2net
7OuNet

On 1 fév, 11:20, zOrg2net wrote:
Bonjour,

Merci pour votre contribution.
J'ai voulu utiliser une partie de vos réponse dans une procédure, mais je
manipule très mal certain mot clé de VBA comme sheet (et comme l'aide VBA
plante tout le temps sur ma machine???...) Du coup ça bug et je n'arrive pas
à savoir pourquoi.
Je vous colle les essais que j'ai fait:

Sub test1()
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[B31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).Index
- 1).Name, TextToDisplay:="Page précédente"
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).Index
+ 1).Name, TextToDisplay:="Page Suivante"
End With
Else
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(Sheets(Application.Caller.Parent.Name).Index
+ 1).Name, TextToDisplay:="Page Suivante"
End With
End If
Next
End Sub

Sub test2()
For Each f In Worksheets
If f.Name <> "Sommaire" Then
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[B31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index - 1), TextToDisplay:="Page
précédente"
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index + 1)), TextToDisplay:="Page
Suivante"
End With
Else
With Sheets(f.Name)
.Hyperlinks.Add Anchor:=.[C31], Address:="", _
SubAddress:=Sheets(ActiveSheet.Index + 1), TextToDisplay:="Page
Suivante"
End With
End If
Next

Une idée ??

zOrg2net
7OuNet


Pour copier une formule sur tous les onglets, il n'y a pas besoin de
boucle.Il suffit de :

1-D'écrire la formule sur un onglet
2-De Copier la formule
2-Faire une sélection multiple de tous les onglets avec la touche Maj
avant de coller.

http://cjoint.com/?cbmUheUGUU

=LIEN_HYPERTEXTE("["&classeuractuel()&"]'"&ongletSuivant()&"'!
A1";"Suivant")

=LIEN_HYPERTEXTE("["&classeuractuel()&"]'"&ongletPrécédent()&"'!
A1";"Précédent")

Dans un module:

Function ClasseurActuel()
ClasseurActuel = ThisWorkbook.Name
End Function

Function ongletSuivant()
ongletSuivant = Sheets(Sheets(Application.Caller.Parent.Name).Index
+ 1).Name
End Function

Function ongletPrécédent()
ongletPrécédent > Sheets(Sheets(Application.Caller.Parent.Name).Index - 1).Name
End Function

Les onglets peuvent ensuite être DEPLCES, RENOMMES.

JB














1 2