Bouton précédent VBA

mikael2403

XLDnaute Junior
Bonjour,

Je sollicite votre aide sur un sujet que je n'ai pas trouvé sur le forum.

Je souhaite intégré à un bouton macro une fonction précédent.

Est-il possible de faire afficher la feuille sur laquelle j'étais positionnée avant?

par exemple, j'ouvre mon classeur, j'arrive sur la feuille 2.
Je vais sur la feuille 1
Je clique sur le bouton Précédent qui m'emmène sur la feuille 2.

Dans le même exemple, j'ai aussi une feuille 3 qui, à un moment est affichée, renvoit vers la feuille 1. et le même bouton macro de la feuille 1 doit renvoyer vers la feuille 3 soit la feuille précédente. et non pas vers le feuille 2.

Je ne sais pas si mes explications sont clairs.
En gros, je ne veux pas choisir la feuille à afficher dans ma macro, mais je veux que la macro affiche la feuille qui était affichée juste avant.

Merci d'avance pour votre aide.

Mikael.
 

jp14

XLDnaute Barbatruc
Re : Bouton précédent VBA

Bonjour

Un essai à tester.
Quand on quitte la feuille on inscrit dans une simili pile le nom de la feuille.
Un bouton permet de se positionner dans la feuille qui se trouve au sommet de la pile.


JP
 

Pièces jointes

  • retouarr.zip
    15.2 KB · Affichages: 388

mikael2403

XLDnaute Junior
Re : Bouton précédent VBA

Bonjour JP14,

Je te remercie pour ta réponse rapide et efficace.

J'ai fais le test ça fonctionne super bien.

En revanche, ça ne fonctionne pas sur des feuilles masquées.
Voici l'architecture de mon classeur.
J'ai 10 feuilles.
Toutes mes feuilles sont masquées, sauf celle sur laquelle je travaille.
Sur chacune des feuilles de 2 à 10, j'ai mis en place un bouton nommé précédent qui me renvoit toujours vers la feuille 1.
Lorsque je clic sur ce bouton Précédent, je rend visible la feuille 1 et je masque la feuille sur laquelle je travaille.
Je ne travaille pas toujours sur la même feuille et j'ai besoin de revenir régulièrement sur la feuille 1 pour mettre à jour certaines informations.
Il ne doit y avoir qu'1 feuille affichée en même temps et les autres sont masquées.
Le bouton précédent de la feuille 1 doit me renvoyer vers la feuille sur laquelle j'étais juste avant (Comme la méthode de JP14) en la rendant visible et masquée la feuille1.
Je joue sur du "Afficher-Masquer" avec les différentes feuilles.

Est-ce qu'Excel est capable de faire fonctionner la méthode de JP14 sur des feuilles masquées.?

Je veux mettre mon fichier d'exemple en pièce jointe mais il est trop lourd.

Merci au forum pour votre aide.

Mikael.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Bouton précédent VBA

Bonsoir Mikael, JP, bonsoir le forum,

Il y a une chose que je ne comprends pas Mikael, admettons qu'au départ tu sois sur l'onglet Feuil2. Le bouton "Feuil1" de cet onglet te permet d'activer l'onglet Feuil1 et de masquer tous les autres. Là, un bouton "Précédent" te permet de revenir à l'onglet précédent donc l'onglet Feuil2 et de masquer tous les autrs. Ok...
Mais comment fais-tu alors pour accéder à un autre onglet ? Feuil3 par exemple puisqu'il est masqué...

Si tu ouvres ton classeur sur l'onglet Feuil1... Il n'y a pas de "précédent"... Comment feras-tu ?

En pièce jointe une proposition mais qui ne répond pas à ces questions. En fait, dans l'état actuel, les boutons permettent d'alterner enrte Feuil1 et Feuil2... Ça fonctionne mais si tu veux accéder à une autre onglet il faut le faire manuellement en changeant au préalable la propriété Visible de celui-ci par VBE.
 

Pièces jointes

  • Mikael.xls
    43.5 KB · Affichages: 174
  • Mikael.xls
    43.5 KB · Affichages: 184
  • Mikael.xls
    43.5 KB · Affichages: 201

mikael2403

XLDnaute Junior
Re : Bouton précédent VBA

Bonsoir, Robert, le Forum,

Lorsque j'ouvre mon classeur, j'arrive sur la feuille 2. Puis par VBE dans :
Code:
Private Sub Workbook_Open()
End Sub
j'affiche la feuille1 et je masque la feuill2. Ce qui pourrait me permettre d'utiliser le bouton précédent situé sur la feuill1.

Enfin, pour accéder à un autre onglet, comme feuill3, j'ai un bouton sur la feuille 2 qui me renvoit vers la feuill3 ou feuill4 etc... selon la feuille sur laquelle je suis positionné.

J'ai fais un 1er test avec le fichier joint. ça a l'air de fonctionner.

Merci encore pour ton aide.

Bonne soirée.
Mikael
 

mikael2403

XLDnaute Junior
Re : Bouton précédent VBA

Bonjour,

J'ai une autre question au sujet des boutons.
J'ai déjà un bouton qui est affecté à la macro suivante :
Code:
Sub PRC_Suite()
'
' PRC_Suite Macro
' Macro enregistrée le 08/11/2007 par BT
'

'
Dim i As Integer
Dim l As String
Dim cell As Range
With Sheets("Accueil")
    For Each cell In Application.Union(Range("K14"), Range("U14"), Range("AK14"), Range("F22"), Range("U22"), Range("AG22"), Range("AO22"), Range("U30"), Range("K38"), Range("R38"), Range("AA38"), Range("AK38"))
    If IsEmpty(cell) Then MsgBox " Veuillez renseigner le champ " & cell.Offset(-3, 0): Exit Sub
    
  Next
  For Each cell In Application.Cells(22, 10)
    If IsEmpty(cell) Then MsgBox " Veuillez renseigner le champ " & cell.Offset(-3, -4): Exit Sub
    
  Next
End With
Sheets("Propale").Visible = True
Sheets("Accueil").Visible = False
End Sub

J'ai essayé de compiler les codes que Robert m'a donné dans son fichier et les adapté avec les miens mais ça ne fonctionne pas.
Le bouton du fichier de Robert est un Bouton CommandButton en Private Sub alors que le mien est un bouton créé par la barre d'outils "Formulaire" et exécuté dans un module Sub.

J'ai bien compris qu'il fallait inséré les codes sur chacunes des feuilles.
Comment puis-je utiliser cette fonction sur un bouton que j'ai déjà créé.
Est-ce que je peux l'utiliser sur un module ? Ou faire en sorte que le module renvois vers le Private Sub Commandbutton ?

Je suis dessus depuis ce matin 9h00 et impossible de trouver la solution et de l'adapté à ma formule.

Merci encore pour votre aide. :)
 

mikael2403

XLDnaute Junior
Re : Bouton précédent VBA

Re,

J'ai oublié de préciser que j'ai déjà un bouton sur les feuilles 2, 3, 4 et 5 qui renvoit à chaque fois vers la feuille 1.
Est-ce que je dois mettre le code CommandButton1 du fichier de Robert sur toute les feuilles ? Ou est-ce que je dois le rattacher à mon bouton déjà existant ?
Si c'est le dernier cas, je n'y arrive pas car le code est inséré dans une feuille et non pas dans un Module Sub.
Comment je peux faire ?

Merci d'avance pour vos réponses. :)

Mikael
 

mikael2403

XLDnaute Junior
Re : Bouton précédent VBA

Bonjour Le forum,

Je n'ai toujours pas réussi à trouver la solution à mon problème ci-dessus.

Est-ce qu'une personne peut m'aider ou m'orienter vers une discussion similaire afin de répondre à ma question ?

Merci d'avance pour votre aide.

Mikael.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Bouton précédent VBA

Bonjour,

Crée un hyper-lien en A1 de la première feille vers la dernière feuille visitée:

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Sheets(1).Hyperlinks.Add Anchor:=Sheets(1).[A1], Address:="", _
SubAddress:="'" & Sh.Name & "'" & "!A1", TextToDisplay:="Dernière visite:" & Sh.Name
End Sub


JB
Formation Excel VBA JB
 

Pièces jointes

  • Classeur1.xls
    22.5 KB · Affichages: 191
  • Classeur1.xls
    22.5 KB · Affichages: 181
  • Classeur1.xls
    22.5 KB · Affichages: 159

mikael2403

XLDnaute Junior
Re : Bouton précédent VBA

Bonsoir JB, le forum,

JB, j'ai tenté d'utiliser ta méthode, mais je n'arrive pas à l'adapter à mon fichier.
Je créé un fichier test qui est plus explicatif.
Comment puis-je insérer ce lien hypertexte ou le faire exécuter dans une macro-module ?

J'ai déjà des boutons qui me servent aussi a vérifier d'autres arguments avant de changer de feuille.

Comment l'adapter à mon fichier ?

Merci d'avance pour votre aide.

Mikael.
 

Pièces jointes

  • Test.xls
    29 KB · Affichages: 125
  • Test.xls
    29 KB · Affichages: 134
  • Test.xls
    29 KB · Affichages: 137

Discussions similaires

Réponses
5
Affichages
143
Réponses
4
Affichages
112

Statistiques des forums

Discussions
312 237
Messages
2 086 486
Membres
103 232
dernier inscrit
logan035