Revenir à l'onglet de départ suite à macro

Bonjour à tous,

Encore besoin d'un petit coup de main, comme quoi il n'y a pas de vacances sur la planète Excel !

Ci-joint un petit fichier de pointage que j'ai épuré avant de poster,

Ce fichier, après avoir renseigné l'année me génère 20 onglets.

J'ai besoin, de temps en temps d'accéder à l'onglet "Données" à l'aide d'une macro basique.

Je reviens ensuite toujours à l'aide d'une macro basique en sélectionnant l'onglet S1.

Cependant, je souhaiterai revenir à l'onglet de départ et non à l'onglet S1 en, permanence !

Est ce possible s'il vous plait ?

Merci par avance.

@ toute....

149test-onglets.xlsm (226.07 Ko)

Salut,

J'espère t'avoir bien compris.

Dans le fichier ci-joint, lorsque tu es sur la feuille 'Données', tu peux choisir de revenir sur n'importe quelle feuille par l'intermédiaire du nouveau bouton en place.

Comme est prévue cette macro, tu peux choisir la feuille à sélectionner en plusieurs fois et seulement lorsque tu confirmes, ça atteint la page désirée.

On pourrait faire que la première feuille choisie soit immédiatement sélectionnée et le UserForm immédiatement refermé.

Cordialement.

335test-onglets-v1.xlsm (230.86 Ko)

Bonjour Yvouille,

Toujours de service ?

Merci ta solution me plait, mais en fait ce fichier comporte 52 onglets comme 52 semaines (trop lourd pour poster!)

N'y a t'il pas une solution sans useform s'il te plait ?

En effet il me semble assez galère de se rappeler le numéro d'onglet où on était lorsque le useform le demande !

D'où l'idée de revenir à l'onglet de départ.

Merci

Alors éventuellement en modifiant tes macros 5 et 6 ainsi :

Sub Macro5()
Dim i As String

    i = ActiveSheet.Name
    Sheets("Données").Visible = True
    Sheets("Données").Select
    Range("DD1") = i
    Range("A1").Select

End Sub
Sub Macro6()
Dim i As String

    i = Range("DD1")
    If Sheets("S1").Visible = True Then
    Sheets("Données").Visible = False
    Sheets(i).Select
    Range("C1").Select

End If
End Sub

Amicalement.

197test-onglets-v2.xlsm (227.64 Ko)

YES !

C'est exactement ce dont j'avais besoin, t'es super, merci beaucoup.

J'étais en train de tester ceci :

Sub Macro6()
Dim MaFeuilleDeDepart As String 
MaFeuilleDeDepart = ActiveSheet.Name 

    If Sheets("S1").Visible = True Then
    Sheets("Données").Visible = False
    Sheets("S1").Select
    Range("C1").Select

End If
End Sub

Mais ça ne fonctionnait pas..... grrrrr

Encore merci et bon week-end avec ce temps de mouise

A bientôt pour de nouvelles aventures.....

Je reposte car en transposant sur mon fichier existant de 52 onglets en copié/collé de ces deux macros j'ai cette ligne en erreur :

Range("DD1") = i

Erreur d'exécution 1004

Que veux dire DD1 s'il te plait ?

Et au retour celle ci :

Sheets(i).Select

Erreur d'exécution 9

Je coince donc de nouveau

Help please

Salut,

C’est toujours un problème lorsque vous nous fournissez des fichiers exemple qui ne correspondent pas à la réalité

Si tu m’avais fourni le texte complet du message ‘Erreur d'exécution 1004’, j’en saurais un peu plus Si tu m'avais fourni ton fichier exact (avec des données rendues anonymes) j'en saurais juste ce qu'il faut Dans ton cas, n’a tu pas mis une protection sur ta feuille ‘Données’ ? Si c’est ça, remplace la Macro5 par

Sub Macro5()
Dim i As String

    i = ActiveSheet.Name
    Sheets("Données").Visible = True
    Sheets("Données").Select
    ActiveSheet.Unprotect "dkdk"
    Range("DD1") = i
    Range("A1").Select
    ActiveSheet.Protect "dkdk"

End Sub

Dans les deux lignes concernant le mot de passe ActiveSheet.[Un]protect "dkdk", tu remplaces "dkdk" par ton mot de passe. Si tu n’as pas de mot de passe, tu n’écris tout simplement rien, même pas les guillemets (mais quand même ActiveSheet.[Un]protect).

J’ai placé la référence de la feuille quittée dans la cellule DD1 de la feuille ‘Données’ juste pour qu’elle soit assez éloignée et qu’elle ne fasse pas interférence avec ton boulot. Mais tu peux choisir n’importe quelle autre cellule, du moment que dans la macro suivante, tu ailles chercher cette information dans la bonne cellule.

A te relire.

Bonjour Yvouille,

Désolé de t'importuner, mais comme je te l'avais dit le fichier simplifié ne passait déjà pas avec les 52 onglets, il ne risquait pas de passer complet

Mais une fois encore tu as raison c'était bien ma feuille qui était bloquée.

Ca marche du tonnerre et te remercie.

Bon dimanche.

David

Bonsoir à tous & bonsoir Yvouille

ton fichier " test onglets_v1 " m'est très pratique, mais que faudrait-il modifier pour que je puisse faire apparaître un des oonglets masqués.

Pour les faire apparaître dans l'userform j'ai juste mis " ' " devant " if " et " end if " ça pas de problème, mais si je sélectionne un onglet masqué, il n'apparaît pas. (du moins si cela est possible.

D'avance erci à toi.

Bonne soirée à toi et à tous les férus d'excell.

Roland

Salut Roland,

Il n'est pas nécessaire d'envoyer un message privé : lorsque l'on a participé à une discussion, on est informés automatiquement qu'il y a un nouveau message (à moins que l'on se désinscrive à une discussion).

Je ne comprends pas très bien ton problème, puisqu'il n'y a pas de UserForm dans le fichier de David. Peux-tu donc me fournir ton propre fichier, s'il-te-plait ?

A te relire.

Bonsoir Yvouille, dsl pour cette incursion chez toi.

dans le fichier en question avec l'userform il suffit de choisir un des onglets pour le selectionner, mais il ne sélectionne que les onglets visible ; est-il possible de le modifier pour accéder aux onglets masqués.

ci-joint le fichier " test_ongletsv1"

Merci d'avance. Roland

39test-onglets-v1.xlsm (230.86 Ko)

Hello !

Exact, merci Yvouille,

Rolland, je ne comprends pas très bien ta requête.

Peux tu être plus explicite sur tes attentes s'il te plait ?

Merci...

Bonjour à vous tous,

J’ai compris d’où vient la confusion. J’ai proposé à Dasaquit une solution avec UserForm que l’on a abandonné par la suite pour partir dans une autre direction. Donc pour moi le fichier de Dasaquit ne comportait pas (ou plus ) de UserForm.

Roland, j’ai maintenant également compris ta question. Tu as fait les bonnes corrections afin que les feuilles masquées apparaissent dans la forme, mais si tu désires que les feuilles masquées apparaissent si tu les sélectionnes, tu dois modifier le code suivant de la manière ci-dessous :

Private Sub ActiverFeuille()
    If Worksheets(ListBox.Text).Visible = False Then Worksheets(ListBox.Text).Visible = True
    ActiveWorkbook.Worksheets(ListBox.Text).Activate
End Sub

En l’état actuel, une feuille que tu fais apparaitre une fois ne sera plus masquée automatiquement. Si nécessaire, il faudra continuer de modifier ces macros.

Dans le fichier ci-joint, la feuille Yyyyy est tout d'abord masquée.

Cordialement.

34demo-jeanrol.zip (18.48 Ko)

Bonjour

bon difficile de faire + clair mais voilà,

1 . j'ai masqué une grosse partie des onglets

2 . J'ai modifié le code userform pour faire apparaître le nom des onglets masqués mais il n'est pour l'instant possible que de sélectionner les onglets visibles (S1,S2,S3 ou données)

Dim feuille As Worksheet

For Each feuille In ActiveWorkbook.Worksheets

' If feuille.Visible = True Then ' afin d'éviter d'afficher les feuilles masquées

ListBox.AddItem feuille.Name

' End If

questions :

est-il possible de modifier les codes pour que si je sélectionne n'importe quel onglet masqué dans l'userform il devienne visible(comme avec l'onglet "données")

donc si je sélectionne dans l'userform ex: S10, l'onglet S10 apparaisse visible

J'espère que je me fais mieux comprendre.

Bonne journée et merci d'avance.

Roland

DSL vu la réponse d'Yvouille trop tard.

Merci à vous deux et très bonne journée.

Roland

Bonjour,

Code à copier/coller qui fait les deux solutions :

Rendre visible ou actif

Private Sub ActiverFeuille()

        If ActiveWorkbook.Worksheets(ListBox.Text).Visible = False Then
            ActiveWorkbook.Worksheets(ListBox.Text).Visible = True
        End If

        If ActiveWorkbook.Worksheets(ListBox.Text).Visible = True Then
            ActiveWorkbook.Worksheets(ListBox.Text).Activate
        End If

End Sub

Je ne suis pas expert en VB mais c'est comme cela que je me serais débrouillé !

Si tu veux juste la solution de rendre visible des onglets cachés il te suffit de supprimer un If

Tiens nous au courant s'il te plait.

@ toute...

Bonjour à vous

La solution d'Yvouille dans le fichier " Demo jeanrol " me conviens très bien; mais il est vrai que s'il est possible en resélectionnant l'onglet " données" de remasquer l'onglet sélectionné auparavant cela serait super génial.

En tous cas merci à vous deux pour les solutions.

Bonne journée, cordialement.

Roland

Roland,

Joins s'il-te-plait ton fichier et on travaille là-dessus.

Bonnes salutations.

Bonsoir et encore merci pour tous.

Voici mon fichier perso, il n'y a que les onglets, les données ne sont pas nécessaires.

Trois onglets doivent toujours être visibles dont celui de "nichée" est celui qui doit tjrs revenir sélectionné après n'importe quelle visite d'un autre onglet visible ou masqué.

Bonne soirée et si trop compliqué 7 pas grave car vous m'avez déjà donné les 95% de ce que je voulais.

chapeau bas à vous.

Roland

Salut,

Modifie la Macro5 ainsi

Sub Macro5()
If ActiveSheet.Name <> "Stock" And ActiveSheet.Name <> "clients" Then ActiveSheet.Visible = False
Sheets("nichée").Select
Range("A1").Select
End Sub

Cordialement.

Bonjour,

Hier je disais " si trop compliqué, pas grave " .

Aujourd'hui j'ai honte, la solution est tellement simple que j'en suis ridicule.

Merci à vous.

Ps : Quelqu'un à dit sur le site mais j'ai oublié " qui " """ Le plus compliqué c'est de faire simple """" alors autant pour moi.

Bonne journée.

Roland

Rechercher des sujets similaires à "revenir onglet depart suite macro"