OVH Cloud OVH Cloud

hors netiquette : Pour Frédéric S (mais d'autres peuvent être intéressés ou répondre !)

14 réponses
Avatar
Misange
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

4 réponses

1 2
Avatar
Papyty
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

Avatar
Misange
on va y réfléchir :-)

--
Misange http://www.excelabo.net
Attention disciplus a déménagé ! mettez vos favoris à jour


"Gaspareau" a écrit dans le message de
news:eSiV$
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 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






Avatar
Misange
Bonsoir Frédéric
Merci du suivi !
Très bonne suggestion que je mets de côté aussi.

--
Misange http://www.excelabo.net
Attention disciplus a déménagé ! mettez vos favoris à jour


"Frédéric Sigonneau" a écrit dans le message
de news:
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






Avatar
Misange
Merci Papyty de cette soluce également intéressante. Je pense qu'elle est
très utile pour un classeur perso, un peu moins quand on confie le classeur
à un tiers.

--
Misange http://www.excelabo.net
Attention disciplus a déménagé ! mettez vos favoris à jour


"Papyty" a écrit dans le message de
news:17di1oj9sd7a.15bgykqe66z0p$
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



1 2