Déplacement entre onglet de la droite vers la gauche

Pimpom

XLDnaute Nouveau
Bonjour à tous,

Pour naviguer entre mes onglets, j'utilise actuellement cette macro qui me permet d'aller de la gauche vers la droite :

Sub Macro1()
ActiveSheet.Next.Select
End Sub


J'aimerais également le faire dans le sens inverse : droite vers la gauche ? :confused:

Cordialement,

Pimpom
 

Pièces jointes

  • Test.xls
    28 KB · Affichages: 88
  • Test.xls
    28 KB · Affichages: 93
  • Test.xls
    28 KB · Affichages: 94

JNP

XLDnaute Barbatruc
Re : Déplacement entre onglet de la droite vers la gauche

Bonjour Pimpom, JeanPierre, JCGL :),
Euh, Pimpom, tu serais pas copain avec notre Brigitte nationale :D?
Plus sérieusement, j'allais donner la même réponse que nos petits camarades, mais je me contenterai d'un ajout car les 2 macros vont bugger, soit sur la 1ère feuille pour le Previous, soit sur la dernière pour le Next, d'où je te conseillerais
Code:
Sub Macro1()
If ActiveSheet.Index = Sheets.Count Then Exit Sub
ActiveSheet.Next.Select
End Sub
Sub Macro2()
If ActiveSheet.Index = 1 Then Exit Sub
ActiveSheet.Previous.Select
End Sub
Bon dimanche :cool:
 

JCGL

XLDnaute Barbatruc
Re : Déplacement entre onglet de la droite vers la gauche

Bonjour à tous,
Bonjour JNP :)

Pas de bug non plus avec :

Code:
Option Explicit

Sub Suivant()
On Error Resume Next
ActiveSheet.Next.Select
End Sub

Sub Precedent()
On Error Resume Next
ActiveSheet.Previous.Select
End Sub
 

Pièces jointes

  • Deplacement Onglet par Fleche.zip
    6.1 KB · Affichages: 71

Jiheme

XLDnaute Accro
Re : Déplacement entre onglet de la droite vers la gauche

Bonjour Pimpon, JCGL, Jeanpierre, le Forum

Voici ce que j'utilise actuellement dans un classeur de macro perso et activé par des boutons dans une barre d'outils perso:

Je tiens à préciser que c'est réalisé avec l'aide des participants à ce forum!

Code:
Sub Av_Feuille()
'Pour avancer d'une feuille
If ActiveSheet.Index <> Sheets.Count Then ActiveSheet.Next.Select
End Sub

Sub ret_feuille()
'Pour reculer d'une feuille
If ActiveSheet.Index <> 1 Then ActiveSheet.Previous.Select
End Sub

Sub prem_feuille()
'Pour retourner à la première feuille
If ActiveSheet.Index <> 1 Then Sheets(1).Select
End Sub

Sub der_feuille()
'Pour aller à la derniére feuille
m = Sheets.Count
If ActiveSheet.Index <> Sheets.Count Then Sheets(m).Select
End Sub

Et pour moi qui manipule souvent de gros fichiers (100 à 200 feuilles) c'est bien pratique!

A+
 

JNP

XLDnaute Barbatruc
Re : Déplacement entre onglet de la droite vers la gauche

Re :),
JCGL : c'est effectivement une solution, mais comme généralement, on utilise la gestion d'erreur avec parcimonie, j'avais cherché une autre solution ;).
Jiheme : la détection de feuille ne sert à rien sur les 2 dernières macros, tu peux simplifier
Code:
Sub prem_feuille()
'Pour retourner à la première feuille
Sheets(1).Select
End Sub

Sub der_feuille()
'Pour aller à la derniére feuille
Sheets(Sheets.Count).Select
End Sub
Par contre, si tu gères des fichiers de 100 à 200 feuilles, pourquoi n'utilises-tu pas un petit USF avec un combobox te proposant directement les 20 onglets avant et après la feuille utilisée par exemple ?
Bon dimanche :cool:
 

Jiheme

XLDnaute Accro
Re : Déplacement entre onglet de la droite vers la gauche

Bonjour JNP, re à tous

Si je n'utilise pas d'USF c'est simplement parce que je suis PUCEAU en la matière, déjà on ne peut pas dire que je suis incolable en VBA, j'arrive à comprendre les macros que j'ai données + haut mais guère plus...

Mais l'USF est au programme de mes prochaines vacances... alors préparez vous, je risque de vous harceler!!!

Trève de plaisanteries, ma circulation de feuilles, je l'ai installée sur plusieurs PC (chez des clients entre autres) qui sont absolument nul avec excel, alors cliquer sur une flèche ça va à peu près, mais un USF ils vont partir en courant.

Maintenant si tu as un truc tout prèt, je suis preneur, j'essaierais au moins de comprendre.

Un dernier point, si j'ai rajouté les test, c'est parce que j'avais un plantage sans si on était déjà sur la feuille concernée, peut être autre chose d'ailleurs.

A+
 

JCGL

XLDnaute Barbatruc
Re : Déplacement entre onglet de la droite vers la gauche

Bonjour à tous,

JCGL : c'est effectivement une solution, mais comme généralement, on utilise la gestion d'erreur avec parcimonie, j'avais cherché une autre solution ;).

Entièrement d'accord avec toi ;)
Si les quelques lignes sont intégrées dans un code plus long il vaut mieux passer par ton Exit Sub

A++
A+ à tous
 

JNP

XLDnaute Barbatruc
Re : Déplacement entre onglet de la droite vers la gauche

Re :),
Un dernier point, si j'ai rajouté les test, c'est parce que j'avais un plantage sans si on était déjà sur la feuille concernée, peut être autre chose d'ailleurs.
Oui, sur les 2 premières, si tu essaie d'aller sur une feuille qui n'existe pas, mais pour première et dernière feuille, tu n'a pas le même problème.
Pour l'USF, je tâcherai de te bricoler un truc, mais même le plus obtus des clients saura faire apparaître un USF avec un équivalent clavier par exemple, ou plutôt un USF non modal (qui s'affiche en continu comme une palette d'outils).
Bon dimanche :cool:
 

vbacrumble

XLDnaute Accro
Re : Déplacement entre onglet de la droite vers la gauche

Bonjour à tous

Un moyen simple (et fonction native d'Excel et souvent oublié ;) ) pour naviguer dans les feuilles d'un classeur

Le clic-droit sur les flèches en bas le l'écran
(à gauche du premier onglet d'un classeur)
ncls.jpg

L'équivalent de la chose en VBA
Code:
Sub NavFeuilles()
Application.CommandBars("Workbook tabs").ShowPopup
End sub
 
Dernière édition:

Jiheme

XLDnaute Accro
Re : Déplacement entre onglet de la droite vers la gauche

re à tous

Merci JNP, je vais supprimer mes test.

Pour le bricolage, prends ton temps, de toute façon je n'aurais pas le temps de m'y plonger avant mi-juin.

Si tu peux explique moi d'abord ce qu'est un USF non modal , je suis déjà dans le cirage et je présume que si il y a un non modal, il y a un modal!!!

A part cela il y en a d'autre?

Je t'avais prévenu, il y a du boulot...Et en plus Alzheimer qui guette !

A+
 

ROGER2327

XLDnaute Barbatruc
Re : Déplacement entre onglet de la droite vers la gauche

Bonjour à tous
Une variante :
Code:
Sub avance()
   With ActiveSheet
      If .Index = Sheets.Count Then Sheets(1).Select Else .Next.Select
   End With
End Sub

Sub recule()
   With ActiveSheet
      If .Index = 1 Then Sheets(Sheets.Count).Select Else .Previous.Select
   End With
End Sub
Bon dimanche.
ROGER2327
 

Jiheme

XLDnaute Accro
Re : Déplacement entre onglet de la droite vers la gauche

Bonjour Vbacrumble,Roger re à tous

Non VBA pas vu ton message effectivement, il me laisse sur le c--, je ne connaissait pas cette propriété, je pense d'ailleurs ne pas être le seul, car je n'ai jamais vu personne s'en servir.

Pour ton code, je ferai l'essai et te dirai, mais pas aujourd'hui, les fichiers en question ne me sont pas accessibles à distance.

Merci beaucoup
A+
 

Discussions similaires

Réponses
4
Affichages
361

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal