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

Commande macro \"Feuille suivante\"

Mi_

XLDnaute Occasionnel
Bonjour le forum,

Pour un classeur contenant plusieurs feuilles, existe-t-il une macro qui une fois appelé par un objet sur une feuille, passe à la feuille précédente respectivement suivante, du classeur ?

Je cherche à mettre des boutons 'Feuille Précédente' et 'Feuille Suivante' dans les feuilles, pour naviguer dans un classeur sans les onglets affichés.

Merci d'avance pour toute aide,

Mi

Message édité par: Mi_, à: 19/03/2005 18:13
 

JeanMarie

XLDnaute Barbatruc
Re:Commande macro "Feuille suivante"

Bonjour

Ctrl+PgUp passe à la feuille précedente
Ctrl+PgDn passe à la feuille suivante

Si les onglets de classeur sont visibles, un clique droit sur les objets à gauche des onglets fait afficher une liste des feuilles du classeur.

@+Jean-Marie
 

Mi_

XLDnaute Occasionnel
Re:Commande macro "Feuille suivante"

Merci JeanMarie, mais je cherche à naviguer avec des boutons 'Feuille Précédente' et 'Feuille Suivante' qui se trouvent dans les feuilles, en l'absence des onglets et sans toucher le clavier.
 

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour _Mi, bonjour Jean-Marie

Un petit exemple basic avec des boutons de feuilles

Arf pas passé ??? :sick:

Message édité par: Eric C, à: 19/03/2005 18:49
 

Eric C

XLDnaute Barbatruc
Re:Commande macro

Eric C écrit:
Bonjour le forum
Bonjour _Mi, bonjour Jean-Marie

Un petit exemple basic avec des boutons de feuilles

Arf pas passé ??? :sick:<br><br>Message édité par: Eric C, à: 19/03/2005 18:49

Bon voyons si fichier renommé [file name=Mi.zip size=13532]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Mi.zip[/file]
 

Pièces jointes

  • Mi.zip
    13.2 KB · Affichages: 121

Mi_

XLDnaute Occasionnel
Re:Commande macro

Bonjour Eric,

C'est ce que je cherchais, mais y as-t-il un moyen de dénommer les feuilles de façon générique ? (du gendre 'Nextpage' ou 'PagPrev') Car si on as une quarantaine de feuilles, ne pas écrire à la main chaque macro mais copier/coller en masse le même code. Du même, le code ne dépendrait plus du nom des feuilles.

Est-ce possible ?
 

Eric C

XLDnaute Barbatruc
Re:Commande macro

Re le forum
Re bonjour _Mi, re bonjour Jean-Marie

Ci-joint une démo de notre ami Thierry toute mimie à mettre en oeuvre. [file name=MenuFeuilles.zip size=18003]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/MenuFeuilles.zip[/file]
 

Pièces jointes

  • MenuFeuilles.zip
    17.6 KB · Affichages: 134
  • MenuFeuilles.zip
    17.6 KB · Affichages: 134
  • MenuFeuilles.zip
    17.6 KB · Affichages: 131

Mi_

XLDnaute Occasionnel
Re:Commande macro

C'est pas ce que je cherchais, ouin. :ermm:

C'est juste ton exemple, Eric, mais sans la dénomination exacte des feuilles dans le code vba, donc réussir à avoir une commande générique de passer à la feuille suivante/précédente du classeur n'importe son nom.

Merci de me supporter.
 

JeanMarie

XLDnaute Barbatruc
Re:Commande macro

Re

Dans le code de ton bouton il suffit de mettre cette méthode
dans le Command_bouton_Suivant
ActiveSheet.Next.Select

dans le Command_bouton_Précédent
ActiveSheet.Previous.Select

@+Jean-Marie
 

myDearFriend!

XLDnaute Barbatruc
Re:Commande macro

Bonsoir tout le monde,

Mi_, comme j'avais commencé à travailler sur le problème, je joins également ma contribution (même si la méthode de l'ami Jean-Marie est effectivement super top ! hmy: )

L'exemple joint te propose d'échanger les boutons par des objets Shapes, ce qui a l'avantage de te permettre facilement une seule et unique procédure pour gérer l'ensemble des déplacements...

Dans un module de code général, tu mets :

Public Sub Navig(Suiv As Boolean)
      On Error Resume Next
      Sheets(ActiveSheet.Index + IIf(Suiv, 1, -1)).Activate
      On Error GoTo 0
End Sub

Puis, sur chacun des boutons tu fais : clic droit, Affecter une macro... et dans la zone nom de la macro, tu tapes 'Navig True' (apostrophes incluses) ou 'Navig False' selon qu'il s'agit d'un bouton 'Suivante' ou 'Précédente'.


Cordialement. [file name=NavigFeuilClasseur.zip size=9663]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/NavigFeuilClasseur.zip[/file]
 

Pièces jointes

  • NavigFeuilClasseur.zip
    9.4 KB · Affichages: 115

Mi_

XLDnaute Occasionnel
Re:Commande macro

Merci myDearFriend!

C'est étonnant en combien de modalités on peux arriver au même résultat.

J'ai maintenant plein de jolis boutons qui me font naviguer entre les feuilles. B)

Merci à tous. :silly:

Message édité par: Mi_, à: 19/03/2005 22:31
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:Commande macro

Bonsoir Mi_, Didier, Jean-Marie

J'ai testé ta procédure Didier qui m'apprend déjà un truc !!!

Affecter une macro... et dans la zone nom de la macro, tu tapes 'Navig True' (apostrophes incluses) ou 'Navig False'

Je n'avais jamais en effet pensé à passer un argument de cette manière !!! Je sais pas à quoi ça pourra servir, mais toujours bon à savoir.

Par contre en testant un peu en maltraîtant (suis IT Advisor, déformation pro !), j'ai un peu 'speedé' le click sur le bouton suivant et il faut si reprendre à deux fois pour passer de feuilles en feuilles rapidement...

J'ai donc essayé d'être plus direct qu'avec une boolean en passant carrément un Integer :

NavigFeuilClasseur.xls!'Navig 1' pour suivant (ou -1 pour Précédent et dans la Foulée 0 pour les boutons en Fin d'index, ce qui évite de gérer l'erreur)

Et un code simple comme ceci

Public Sub Navig(PlusMoins As Integer)
Dim WSnum As Byte
WSnum = ActiveSheet.Index + PlusMoins
Sheets(WSnum).Select
End Sub

Et bien c'est idem il faut si reprendre à deux fpis pour une navigation speed, je ne m'explique pas pourquoi. C'est peut-être mon vieux coucou de PIII qui va trop lentement LOL !!!

Bonne Soirée
@+Thierry
 

myDearFriend!

XLDnaute Barbatruc
Re:Commande macro

Salut Thierry,

Comment vas-tu ?

'Je sais pas à quoi ça pourra servir'
Ben, moi je m'en sers déjà pour faire des trucs comme ça LOL     
Ca me permet d'éviter les procédures multiples pour rien (on pourrait faire ça bien s&ucirc;r en conservant les boutons et avec un module de classe, mais...)

Pour ce qui est de la réactivité au clic sur les Shapes, ça fait toujours comme ça, l'argument passé n'y est pour rien. Il faut respecter un certain laps de temps entre 2 clics sur le même bouton simplement. Si on clique trop rapidement la deuxièrme fois, effectivement, l'action n'est pas prise en compte... c'est le prix à payer si on veut éviter les boutons. Je te rassure, ton vieux coucou n'y est pour rien... lol

@+
 

Discussions similaires

Réponses
4
Affichages
772
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…