Bonjour Frédéric, et les autres ;-)
J'ai un classeur avec des tas d'onglets (situation évoquée par un autre
ici hier ou avant hier). Pour faciliter la compréhension je mets des
noms d'onglets assez descriptifs. Du coup on n'en voit que quelques uns
en bas de la page et pour se déplacer c'est casse pieds. La solution
avec des liens hypertextes ou avec un userform ne me convient pas
vraiment : le userform prend de la place sur la feuille et à la longue
c'est fastidieux de le voir s'afficher même quand on ne veut pas. Les
liens hypertexte sur une page d'accueil obligent à revenir sur cette
page. Bof... Je préfère largement la solution d'un menu reprenant la
liste des onglets.
Sur l'excellent Site "Aux choses du temps..." :-), comme prévu, je
trouve mon bonheur : MenuFeuilleChipPerson.bas
Mais pas tout à fait :
si tout fonctionne correctement à l'ouverture, à la fermeture, c'est le
menu fichier qui disparait chez moi tandis que le menu feuilles reste à
l'écran.
Par ailleurs, j'aimerais quelques modifs :
Je ne voudrais pas que les feuilles de tous les classeurs ouverts se
trouvent listées dans ce menu mais seulement celles du classeur dans
lequel est enregistrée la macro.
Et puis quand il y a beaucoup de feuilles, la liste apparait avec en bas
"plus de feuilles". Est-il possible de modifier ceci pour soit indiqué
au départ le nombre de feuilles à afficher ou les afficher toutes ?
merci d'avance !
Bonjour Frédéric, et les autres ;-)
J'ai un classeur avec des tas d'onglets (situation évoquée par un autre
ici hier ou avant hier). Pour faciliter la compréhension je mets des
noms d'onglets assez descriptifs. Du coup on n'en voit que quelques uns
en bas de la page et pour se déplacer c'est casse pieds. La solution
avec des liens hypertextes ou avec un userform ne me convient pas
vraiment : le userform prend de la place sur la feuille et à la longue
c'est fastidieux de le voir s'afficher même quand on ne veut pas. Les
liens hypertexte sur une page d'accueil obligent à revenir sur cette
page. Bof... Je préfère largement la solution d'un menu reprenant la
liste des onglets.
Sur l'excellent Site "Aux choses du temps..." :-), comme prévu, je
trouve mon bonheur : MenuFeuilleChipPerson.bas
Mais pas tout à fait :
si tout fonctionne correctement à l'ouverture, à la fermeture, c'est le
menu fichier qui disparait chez moi tandis que le menu feuilles reste à
l'écran.
Par ailleurs, j'aimerais quelques modifs :
Je ne voudrais pas que les feuilles de tous les classeurs ouverts se
trouvent listées dans ce menu mais seulement celles du classeur dans
lequel est enregistrée la macro.
Et puis quand il y a beaucoup de feuilles, la liste apparait avec en bas
"plus de feuilles". Est-il possible de modifier ceci pour soit indiqué
au départ le nombre de feuilles à afficher ou les afficher toutes ?
merci d'avance !
Bonjour Frédéric, et les autres ;-)
J'ai un classeur avec des tas d'onglets (situation évoquée par un autre
ici hier ou avant hier). Pour faciliter la compréhension je mets des
noms d'onglets assez descriptifs. Du coup on n'en voit que quelques uns
en bas de la page et pour se déplacer c'est casse pieds. La solution
avec des liens hypertextes ou avec un userform ne me convient pas
vraiment : le userform prend de la place sur la feuille et à la longue
c'est fastidieux de le voir s'afficher même quand on ne veut pas. Les
liens hypertexte sur une page d'accueil obligent à revenir sur cette
page. Bof... Je préfère largement la solution d'un menu reprenant la
liste des onglets.
Sur l'excellent Site "Aux choses du temps..." :-), comme prévu, je
trouve mon bonheur : MenuFeuilleChipPerson.bas
Mais pas tout à fait :
si tout fonctionne correctement à l'ouverture, à la fermeture, c'est le
menu fichier qui disparait chez moi tandis que le menu feuilles reste à
l'écran.
Par ailleurs, j'aimerais quelques modifs :
Je ne voudrais pas que les feuilles de tous les classeurs ouverts se
trouvent listées dans ce menu mais seulement celles du classeur dans
lequel est enregistrée la macro.
Et puis quand il y a beaucoup de feuilles, la liste apparait avec en bas
"plus de feuilles". Est-il possible de modifier ceci pour soit indiqué
au départ le nombre de feuilles à afficher ou les afficher toutes ?
merci d'avance !
Bonjour vous tous,
Misange,
Une petite suggestion
Et si tu mettais un classer exemple que l'on pourrait
récupérer
sur le meilleur site de référence sur Excel ??
Bonne journée
--
Gaspareau
Règle anti spam
Pour réponse personnelle enlever un d au
début de mon adresse courriel
"Misange" a écrit dans le message de
news:Bonjour Frédéric, et les autres ;-)
J'ai un classeur avec des tas d'onglets (situation évoquée
par un autreici hier ou avant hier). Pour faciliter la compréhension
je mets desnoms d'onglets assez descriptifs. Du coup on n'en voit que
quelques unsen bas de la page et pour se déplacer c'est casse pieds.
La solutionavec des liens hypertextes ou avec un userform ne me
convient pasvraiment : le userform prend de la place sur la feuille et
à la longuec'est fastidieux de le voir s'afficher même quand on ne
veut pas. Lesliens hypertexte sur une page d'accueil obligent à revenir
sur cettepage. Bof... Je préfère largement la solution d'un menu
reprenant laliste des onglets.
Sur l'excellent Site "Aux choses du temps..." :-), comme
prévu, jetrouve mon bonheur : MenuFeuilleChipPerson.bas
Mais pas tout à fait :
si tout fonctionne correctement à l'ouverture, à la
fermeture, c'est lemenu fichier qui disparait chez moi tandis que le menu
feuilles reste àl'écran.
Par ailleurs, j'aimerais quelques modifs :
Je ne voudrais pas que les feuilles de tous les classeurs
ouverts setrouvent listées dans ce menu mais seulement celles du
classeur danslequel est enregistrée la macro.
Et puis quand il y a beaucoup de feuilles, la liste
apparait avec en bas"plus de feuilles". Est-il possible de modifier ceci pour
soit indiquéau départ le nombre de feuilles à afficher ou les afficher
toutes ?merci d'avance !
--
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
Bonjour vous tous,
Misange,
Une petite suggestion
Et si tu mettais un classer exemple que l'on pourrait
récupérer
sur le meilleur site de référence sur Excel ??
Bonne journée
--
Gaspareau
Règle anti spam
Pour réponse personnelle enlever un d au
début de mon adresse courriel
"Misange" <misange@devinezou.net> a écrit dans le message de
news:ucVdDV4oDHA.372@TK2MSFTNGP11.phx.gbl...
Bonjour Frédéric, et les autres ;-)
J'ai un classeur avec des tas d'onglets (situation évoquée
par un autre
ici hier ou avant hier). Pour faciliter la compréhension
je mets des
noms d'onglets assez descriptifs. Du coup on n'en voit que
quelques uns
en bas de la page et pour se déplacer c'est casse pieds.
La solution
avec des liens hypertextes ou avec un userform ne me
convient pas
vraiment : le userform prend de la place sur la feuille et
à la longue
c'est fastidieux de le voir s'afficher même quand on ne
veut pas. Les
liens hypertexte sur une page d'accueil obligent à revenir
sur cette
page. Bof... Je préfère largement la solution d'un menu
reprenant la
liste des onglets.
Sur l'excellent Site "Aux choses du temps..." :-), comme
prévu, je
trouve mon bonheur : MenuFeuilleChipPerson.bas
Mais pas tout à fait :
si tout fonctionne correctement à l'ouverture, à la
fermeture, c'est le
menu fichier qui disparait chez moi tandis que le menu
feuilles reste à
l'écran.
Par ailleurs, j'aimerais quelques modifs :
Je ne voudrais pas que les feuilles de tous les classeurs
ouverts se
trouvent listées dans ce menu mais seulement celles du
classeur dans
lequel est enregistrée la macro.
Et puis quand il y a beaucoup de feuilles, la liste
apparait avec en bas
"plus de feuilles". Est-il possible de modifier ceci pour
soit indiqué
au départ le nombre de feuilles à afficher ou les afficher
toutes ?
merci d'avance !
--
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
Bonjour vous tous,
Misange,
Une petite suggestion
Et si tu mettais un classer exemple que l'on pourrait
récupérer
sur le meilleur site de référence sur Excel ??
Bonne journée
--
Gaspareau
Règle anti spam
Pour réponse personnelle enlever un d au
début de mon adresse courriel
"Misange" a écrit dans le message de
news:Bonjour Frédéric, et les autres ;-)
J'ai un classeur avec des tas d'onglets (situation évoquée
par un autreici hier ou avant hier). Pour faciliter la compréhension
je mets desnoms d'onglets assez descriptifs. Du coup on n'en voit que
quelques unsen bas de la page et pour se déplacer c'est casse pieds.
La solutionavec des liens hypertextes ou avec un userform ne me
convient pasvraiment : le userform prend de la place sur la feuille et
à la longuec'est fastidieux de le voir s'afficher même quand on ne
veut pas. Lesliens hypertexte sur une page d'accueil obligent à revenir
sur cettepage. Bof... Je préfère largement la solution d'un menu
reprenant laliste des onglets.
Sur l'excellent Site "Aux choses du temps..." :-), comme
prévu, jetrouve mon bonheur : MenuFeuilleChipPerson.bas
Mais pas tout à fait :
si tout fonctionne correctement à l'ouverture, à la
fermeture, c'est lemenu fichier qui disparait chez moi tandis que le menu
feuilles reste àl'écran.
Par ailleurs, j'aimerais quelques modifs :
Je ne voudrais pas que les feuilles de tous les classeurs
ouverts setrouvent listées dans ce menu mais seulement celles du
classeur danslequel est enregistrée la macro.
Et puis quand il y a beaucoup de feuilles, la liste
apparait avec en bas"plus de feuilles". Est-il possible de modifier ceci pour
soit indiquéau départ le nombre de feuilles à afficher ou les afficher
toutes ?merci d'avance !
--
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
Bonsoir Misange,
Je n'étais pas "en ligne" hier et je ne découvre ta demande et la ficelle,
heureusement conclue, que ce soir :)
Je pense que j'aurais pu aussi te suggérer d'essayer la macro
complémentaire
FeuillesClasseurs.xla (sur mon site aussi), qui ajoute un bouton de type
combobox dans une barre d'outils et permet d'afficher les feuilles d'un
classeur
par "tranches" de 50. Si distribuer une macro complémentaire n'est pas
compatible avec ton besoin, les modules (deux standards et un module de
classe)
peuvent être copiés ailleurs sans autre forme de procès. Le code est
"protégé"
par mon mot de passe habituel (zaza).
C'est juste une autre approche possible que le menu de Chip Pearson (et
ses
adaptations signées papou).
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour Frédéric, et les autres ;-)
J'ai un classeur avec des tas d'onglets (situation évoquée par un autre
ici hier ou avant hier). Pour faciliter la compréhension je mets des
noms d'onglets assez descriptifs. Du coup on n'en voit que quelques uns
en bas de la page et pour se déplacer c'est casse pieds. La solution
avec des liens hypertextes ou avec un userform ne me convient pas
vraiment : le userform prend de la place sur la feuille et à la longue
c'est fastidieux de le voir s'afficher même quand on ne veut pas. Les
liens hypertexte sur une page d'accueil obligent à revenir sur cette
page. Bof... Je préfère largement la solution d'un menu reprenant la
liste des onglets.
Sur l'excellent Site "Aux choses du temps..." :-), comme prévu, je
trouve mon bonheur : MenuFeuilleChipPerson.bas
Mais pas tout à fait :
si tout fonctionne correctement à l'ouverture, à la fermeture, c'est le
menu fichier qui disparait chez moi tandis que le menu feuilles reste à
l'écran.
Par ailleurs, j'aimerais quelques modifs :
Je ne voudrais pas que les feuilles de tous les classeurs ouverts se
trouvent listées dans ce menu mais seulement celles du classeur dans
lequel est enregistrée la macro.
Et puis quand il y a beaucoup de feuilles, la liste apparait avec en bas
"plus de feuilles". Est-il possible de modifier ceci pour soit indiqué
au départ le nombre de feuilles à afficher ou les afficher toutes ?
merci d'avance !
--
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
Bonsoir Misange,
Je n'étais pas "en ligne" hier et je ne découvre ta demande et la ficelle,
heureusement conclue, que ce soir :)
Je pense que j'aurais pu aussi te suggérer d'essayer la macro
complémentaire
FeuillesClasseurs.xla (sur mon site aussi), qui ajoute un bouton de type
combobox dans une barre d'outils et permet d'afficher les feuilles d'un
classeur
par "tranches" de 50. Si distribuer une macro complémentaire n'est pas
compatible avec ton besoin, les modules (deux standards et un module de
classe)
peuvent être copiés ailleurs sans autre forme de procès. Le code est
"protégé"
par mon mot de passe habituel (zaza).
C'est juste une autre approche possible que le menu de Chip Pearson (et
ses
adaptations signées papou).
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour Frédéric, et les autres ;-)
J'ai un classeur avec des tas d'onglets (situation évoquée par un autre
ici hier ou avant hier). Pour faciliter la compréhension je mets des
noms d'onglets assez descriptifs. Du coup on n'en voit que quelques uns
en bas de la page et pour se déplacer c'est casse pieds. La solution
avec des liens hypertextes ou avec un userform ne me convient pas
vraiment : le userform prend de la place sur la feuille et à la longue
c'est fastidieux de le voir s'afficher même quand on ne veut pas. Les
liens hypertexte sur une page d'accueil obligent à revenir sur cette
page. Bof... Je préfère largement la solution d'un menu reprenant la
liste des onglets.
Sur l'excellent Site "Aux choses du temps..." :-), comme prévu, je
trouve mon bonheur : MenuFeuilleChipPerson.bas
Mais pas tout à fait :
si tout fonctionne correctement à l'ouverture, à la fermeture, c'est le
menu fichier qui disparait chez moi tandis que le menu feuilles reste à
l'écran.
Par ailleurs, j'aimerais quelques modifs :
Je ne voudrais pas que les feuilles de tous les classeurs ouverts se
trouvent listées dans ce menu mais seulement celles du classeur dans
lequel est enregistrée la macro.
Et puis quand il y a beaucoup de feuilles, la liste apparait avec en bas
"plus de feuilles". Est-il possible de modifier ceci pour soit indiqué
au départ le nombre de feuilles à afficher ou les afficher toutes ?
merci d'avance !
--
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
Bonsoir Misange,
Je n'étais pas "en ligne" hier et je ne découvre ta demande et la ficelle,
heureusement conclue, que ce soir :)
Je pense que j'aurais pu aussi te suggérer d'essayer la macro
complémentaire
FeuillesClasseurs.xla (sur mon site aussi), qui ajoute un bouton de type
combobox dans une barre d'outils et permet d'afficher les feuilles d'un
classeur
par "tranches" de 50. Si distribuer une macro complémentaire n'est pas
compatible avec ton besoin, les modules (deux standards et un module de
classe)
peuvent être copiés ailleurs sans autre forme de procès. Le code est
"protégé"
par mon mot de passe habituel (zaza).
C'est juste une autre approche possible que le menu de Chip Pearson (et
ses
adaptations signées papou).
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour Frédéric, et les autres ;-)
J'ai un classeur avec des tas d'onglets (situation évoquée par un autre
ici hier ou avant hier). Pour faciliter la compréhension je mets des
noms d'onglets assez descriptifs. Du coup on n'en voit que quelques uns
en bas de la page et pour se déplacer c'est casse pieds. La solution
avec des liens hypertextes ou avec un userform ne me convient pas
vraiment : le userform prend de la place sur la feuille et à la longue
c'est fastidieux de le voir s'afficher même quand on ne veut pas. Les
liens hypertexte sur une page d'accueil obligent à revenir sur cette
page. Bof... Je préfère largement la solution d'un menu reprenant la
liste des onglets.
Sur l'excellent Site "Aux choses du temps..." :-), comme prévu, je
trouve mon bonheur : MenuFeuilleChipPerson.bas
Mais pas tout à fait :
si tout fonctionne correctement à l'ouverture, à la fermeture, c'est le
menu fichier qui disparait chez moi tandis que le menu feuilles reste à
l'écran.
Par ailleurs, j'aimerais quelques modifs :
Je ne voudrais pas que les feuilles de tous les classeurs ouverts se
trouvent listées dans ce menu mais seulement celles du classeur dans
lequel est enregistrée la macro.
Et puis quand il y a beaucoup de feuilles, la liste apparait avec en bas
"plus de feuilles". Est-il possible de modifier ceci pour soit indiqué
au départ le nombre de feuilles à afficher ou les afficher toutes ?
merci d'avance !
--
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta
Salut @ Tous, Misange a écrit:Bonjour Frédéric, et les autres ;-)
J'ai un classeur avec des tas d'onglets (situation évoquée par un autre
ici hier ou avant hier). Pour faciliter la compréhension je mets des
noms d'onglets assez descriptifs. Du coup on n'en voit que quelques uns
en bas de la page et pour se déplacer c'est casse pieds. La solution
avec des liens hypertextes ou avec un userform ne me convient pas
vraiment : le userform prend de la place sur la feuille et à la longue
c'est fastidieux de le voir s'afficher même quand on ne veut pas. Les
liens hypertexte sur une page d'accueil obligent à revenir sur cette
page. Bof... Je préfère largement la solution d'un menu reprenant la
liste des onglets.
Sur l'excellent Site "Aux choses du temps..." :-), comme prévu, je
trouve mon bonheur : MenuFeuilleChipPerson.bas
Mais pas tout à fait :
si tout fonctionne correctement à l'ouverture, à la fermeture, c'est le
menu fichier qui disparait chez moi tandis que le menu feuilles reste à
l'écran.
Par ailleurs, j'aimerais quelques modifs :
Je ne voudrais pas que les feuilles de tous les classeurs ouverts se
trouvent listées dans ce menu mais seulement celles du classeur dans
lequel est enregistrée la macro.
Et puis quand il y a beaucoup de feuilles, la liste apparait avec en bas
"plus de feuilles". Est-il possible de modifier ceci pour soit indiqué
au départ le nombre de feuilles à afficher ou les afficher toutes ?
merci d'avance !
Bonjour Misange
J'ai eu la même réflexion que toi sur ces deux possibilitées malgré que je
trouve que le sommaire est utile dans certain cas avec du blabla et des
liens de demo, et l'userforme je trouvais ça simple et pratique, mais
effectivement je masquais quand il etait inutile et le faisait apparaitre
avec un controle dans la BO perso.
J'ai donc bossé sur une autre solution en passant par le menu contextuel
des cellules en click droit.
Voila ce que ça donne si ça interresse quelqu'un.
J'ai fait des groupes de 30 feuilles qui est une proportion adapté à mon
affichage mais on peut remplacer tous les 30 par n'importe quel chiffre
dans la macro.
Teste Excel 2000
Sub IniMenu()
On Error Resume Next
Application.CommandBars("Cell").Visible = True
If Err = 0 Then Exit Sub
Set MyBar = Application.CommandBars("Cell"). _
Controls.Add(msoControlPopup)
MyBar.Caption = "Onglets"
MyBar.OnAction = "AjoutFeuilles"
End Sub
Private Sub AjoutFeuilles()
On Error Resume Next
Set MyBar = Application.CommandBars("Cell"). _
Controls("Onglets")
For Nb = MyBar.Controls.Count To 1 Step -1
MyBar.Controls(Nb).Delete
Next
Nb = Application.Sheets.Count
men = Int(Nb / 30) + 1
Reste = Nb Mod 30
Fi = 30
Ii = 1
For i = 1 To men
If i = men Then Fi = (men - 1) * 30 + Reste
Nom = "menu" & i
Set Nom = MyBar.CommandBar.Controls _
.Add(Type:=msoControlPopup, ID:=1)
Nom.Caption = "De " & Ii & " à " & Fi
Comp = i
If i = men Then
Fin = (Comp - 1) * 30 + Reste
Else
Fin = Comp * 30
End If
For J = (Comp - 1) * 30 + 1 To Fin
Nom2 = "menus" & J
Set Nom2 = Nom.CommandBar.Controls _
.Add(Type:=msoControlButton, ID:=1)
Nom2.Caption = ThisWorkbook.Sheets(J).Name
Nom2.OnAction = "'Allez(" & J & ")'"
Comp = Comp + 1
Next J
Fi = Fi + 30
Ii = Ii + 30
Next i
End Sub
Sub SupMenu()
On Error Resume Next
Application.CommandBars("Cell"). _
Controls("Onglets").Delete
End Sub
Function Allez(N As Integer)
ThisWorkbook.Sheets(N).Select
End Function
--
@+
Thierry
Salut @ Tous, Misange a écrit:
Bonjour Frédéric, et les autres ;-)
J'ai un classeur avec des tas d'onglets (situation évoquée par un autre
ici hier ou avant hier). Pour faciliter la compréhension je mets des
noms d'onglets assez descriptifs. Du coup on n'en voit que quelques uns
en bas de la page et pour se déplacer c'est casse pieds. La solution
avec des liens hypertextes ou avec un userform ne me convient pas
vraiment : le userform prend de la place sur la feuille et à la longue
c'est fastidieux de le voir s'afficher même quand on ne veut pas. Les
liens hypertexte sur une page d'accueil obligent à revenir sur cette
page. Bof... Je préfère largement la solution d'un menu reprenant la
liste des onglets.
Sur l'excellent Site "Aux choses du temps..." :-), comme prévu, je
trouve mon bonheur : MenuFeuilleChipPerson.bas
Mais pas tout à fait :
si tout fonctionne correctement à l'ouverture, à la fermeture, c'est le
menu fichier qui disparait chez moi tandis que le menu feuilles reste à
l'écran.
Par ailleurs, j'aimerais quelques modifs :
Je ne voudrais pas que les feuilles de tous les classeurs ouverts se
trouvent listées dans ce menu mais seulement celles du classeur dans
lequel est enregistrée la macro.
Et puis quand il y a beaucoup de feuilles, la liste apparait avec en bas
"plus de feuilles". Est-il possible de modifier ceci pour soit indiqué
au départ le nombre de feuilles à afficher ou les afficher toutes ?
merci d'avance !
Bonjour Misange
J'ai eu la même réflexion que toi sur ces deux possibilitées malgré que je
trouve que le sommaire est utile dans certain cas avec du blabla et des
liens de demo, et l'userforme je trouvais ça simple et pratique, mais
effectivement je masquais quand il etait inutile et le faisait apparaitre
avec un controle dans la BO perso.
J'ai donc bossé sur une autre solution en passant par le menu contextuel
des cellules en click droit.
Voila ce que ça donne si ça interresse quelqu'un.
J'ai fait des groupes de 30 feuilles qui est une proportion adapté à mon
affichage mais on peut remplacer tous les 30 par n'importe quel chiffre
dans la macro.
Teste Excel 2000
Sub IniMenu()
On Error Resume Next
Application.CommandBars("Cell").Visible = True
If Err = 0 Then Exit Sub
Set MyBar = Application.CommandBars("Cell"). _
Controls.Add(msoControlPopup)
MyBar.Caption = "Onglets"
MyBar.OnAction = "AjoutFeuilles"
End Sub
Private Sub AjoutFeuilles()
On Error Resume Next
Set MyBar = Application.CommandBars("Cell"). _
Controls("Onglets")
For Nb = MyBar.Controls.Count To 1 Step -1
MyBar.Controls(Nb).Delete
Next
Nb = Application.Sheets.Count
men = Int(Nb / 30) + 1
Reste = Nb Mod 30
Fi = 30
Ii = 1
For i = 1 To men
If i = men Then Fi = (men - 1) * 30 + Reste
Nom = "menu" & i
Set Nom = MyBar.CommandBar.Controls _
.Add(Type:=msoControlPopup, ID:=1)
Nom.Caption = "De " & Ii & " à " & Fi
Comp = i
If i = men Then
Fin = (Comp - 1) * 30 + Reste
Else
Fin = Comp * 30
End If
For J = (Comp - 1) * 30 + 1 To Fin
Nom2 = "menus" & J
Set Nom2 = Nom.CommandBar.Controls _
.Add(Type:=msoControlButton, ID:=1)
Nom2.Caption = ThisWorkbook.Sheets(J).Name
Nom2.OnAction = "'Allez(" & J & ")'"
Comp = Comp + 1
Next J
Fi = Fi + 30
Ii = Ii + 30
Next i
End Sub
Sub SupMenu()
On Error Resume Next
Application.CommandBars("Cell"). _
Controls("Onglets").Delete
End Sub
Function Allez(N As Integer)
ThisWorkbook.Sheets(N).Select
End Function
--
@+
Thierry
Salut @ Tous, Misange a écrit:Bonjour Frédéric, et les autres ;-)
J'ai un classeur avec des tas d'onglets (situation évoquée par un autre
ici hier ou avant hier). Pour faciliter la compréhension je mets des
noms d'onglets assez descriptifs. Du coup on n'en voit que quelques uns
en bas de la page et pour se déplacer c'est casse pieds. La solution
avec des liens hypertextes ou avec un userform ne me convient pas
vraiment : le userform prend de la place sur la feuille et à la longue
c'est fastidieux de le voir s'afficher même quand on ne veut pas. Les
liens hypertexte sur une page d'accueil obligent à revenir sur cette
page. Bof... Je préfère largement la solution d'un menu reprenant la
liste des onglets.
Sur l'excellent Site "Aux choses du temps..." :-), comme prévu, je
trouve mon bonheur : MenuFeuilleChipPerson.bas
Mais pas tout à fait :
si tout fonctionne correctement à l'ouverture, à la fermeture, c'est le
menu fichier qui disparait chez moi tandis que le menu feuilles reste à
l'écran.
Par ailleurs, j'aimerais quelques modifs :
Je ne voudrais pas que les feuilles de tous les classeurs ouverts se
trouvent listées dans ce menu mais seulement celles du classeur dans
lequel est enregistrée la macro.
Et puis quand il y a beaucoup de feuilles, la liste apparait avec en bas
"plus de feuilles". Est-il possible de modifier ceci pour soit indiqué
au départ le nombre de feuilles à afficher ou les afficher toutes ?
merci d'avance !
Bonjour Misange
J'ai eu la même réflexion que toi sur ces deux possibilitées malgré que je
trouve que le sommaire est utile dans certain cas avec du blabla et des
liens de demo, et l'userforme je trouvais ça simple et pratique, mais
effectivement je masquais quand il etait inutile et le faisait apparaitre
avec un controle dans la BO perso.
J'ai donc bossé sur une autre solution en passant par le menu contextuel
des cellules en click droit.
Voila ce que ça donne si ça interresse quelqu'un.
J'ai fait des groupes de 30 feuilles qui est une proportion adapté à mon
affichage mais on peut remplacer tous les 30 par n'importe quel chiffre
dans la macro.
Teste Excel 2000
Sub IniMenu()
On Error Resume Next
Application.CommandBars("Cell").Visible = True
If Err = 0 Then Exit Sub
Set MyBar = Application.CommandBars("Cell"). _
Controls.Add(msoControlPopup)
MyBar.Caption = "Onglets"
MyBar.OnAction = "AjoutFeuilles"
End Sub
Private Sub AjoutFeuilles()
On Error Resume Next
Set MyBar = Application.CommandBars("Cell"). _
Controls("Onglets")
For Nb = MyBar.Controls.Count To 1 Step -1
MyBar.Controls(Nb).Delete
Next
Nb = Application.Sheets.Count
men = Int(Nb / 30) + 1
Reste = Nb Mod 30
Fi = 30
Ii = 1
For i = 1 To men
If i = men Then Fi = (men - 1) * 30 + Reste
Nom = "menu" & i
Set Nom = MyBar.CommandBar.Controls _
.Add(Type:=msoControlPopup, ID:=1)
Nom.Caption = "De " & Ii & " à " & Fi
Comp = i
If i = men Then
Fin = (Comp - 1) * 30 + Reste
Else
Fin = Comp * 30
End If
For J = (Comp - 1) * 30 + 1 To Fin
Nom2 = "menus" & J
Set Nom2 = Nom.CommandBar.Controls _
.Add(Type:=msoControlButton, ID:=1)
Nom2.Caption = ThisWorkbook.Sheets(J).Name
Nom2.OnAction = "'Allez(" & J & ")'"
Comp = Comp + 1
Next J
Fi = Fi + 30
Ii = Ii + 30
Next i
End Sub
Sub SupMenu()
On Error Resume Next
Application.CommandBars("Cell"). _
Controls("Onglets").Delete
End Sub
Function Allez(N As Integer)
ThisWorkbook.Sheets(N).Select
End Function
--
@+
Thierry