VBA - Allez sur un onglet directement

beaf77

XLDnaute Junior
Bonjour à toutes & à tous,


Tout d'abord je vous souhaite à tous de bonnes fêtes & j'espère que cette nouvelle année vous comblera sur tout domaine (professionnel mais aussi et surtout personnel).
Pour moi, le perfectionnement du vba pour moi serait un bon objectif car je rame encore un peu beaucoup ... c'est pourquoi je fais appel à vous afin de solutionner mon problème qui ne doit pas être si complexe que ça.

Je m'explique :

j'ai une feuille "menu" dans laquelle une cellule varie à partir d'une liste déroulante.
on retrouve dans cette liste par exemple : toto, titi, tata, ....

je souhaite faire un bouton sur la feuille "menu" qui lorsque l'on clique dessus emmène en fonction du résultat de la cellule sur un onglet donné
Exemple : si j'ai toto dans la celllule et que je clique sur le bouton alors je vais directement sur la feuille "jardin"
Si j'ai titi dans la celllule et que je clique sur le bouton alors je vais directement sur la feuille "maison"
Si j'ai tata dans la celllule et que je clique sur le bouton alors je vais directement sur la feuille "garage"

J'avais commencé à faire une formule de la sorte mais ça ne marche pas et je bloque :

Sub Allez()

Application.ScreenUpdating = False

If I16 = "toto" Then Sheets("jardin").Select
Range("B3:I3").Select
If I16 = "titi" Then Sheets("maison").Select
Range("B3:I3").Select
If I16 = "tata" Then Sheets("garage").Select
Range("B3:I3").Select
....
If I16 = "X" Then Sheets("xxxx").Select
Range("B3:I3").Select

End Sub


Si quelqu'un avait la gentillesse de me filer un petit coup de pouce et de m'expliquer le pourquoi du comment qui fait que ma formule n'est pas bonne...

Dans l'attente...
Bien cordialement
 

Kobal

XLDnaute Junior
Re : VBA - Allez sur un onglet directement

Bonjour,

A vue de nez, essaie quelque chose comme ça:
Code:
Sub Allez()

Select Case Cells("I16").Value
Case "toto"
Sheets("jardin").Select
Case "titi"
Sheets("maison").Select
...
end select
End Sub
(je l'ai pas essayé, donc à débugger )

edit: grillé par pierrot, donc bonjour pierrot.
 

Pierrot93

XLDnaute Barbatruc
Re : VBA - Allez sur un onglet directement

Re

tu peux aussi faire plusieurs tests, en utilisant "ElseIf" comme ci dessous :

Code:
If Range("I16").Value = "toto" Then
    Sheets("jardin").Select
    ElseIf Range("I16").Value = "titi" Then Sheets("maison").Select
End If

sort du "if" dès l'instant ou un test est vérifié.

@+

Edition : bonjour Kabal
 

bqtr

XLDnaute Accro
Re : VBA - Allez sur un onglet directement

Bonjour beaf77, Kobal, Pierrot

En complément des réponses, si tu désactives la mise à jour de l'écran en début de code avec :
Code:
Application.ScreenUpdating = False

N'oublie pas de la réactiver à la fin du code:
Code:
Application.ScreenUpdating = True


Bonne journée
 

beaf77

XLDnaute Junior
Re : VBA - Allez sur un onglet directement

Re à vous 3,


J'ai testé la solution 1 de Pierrot qui semble marcher sur 1 exemple.
J'écris ma formule en entier, je test e je vous tiens au courant...


PS : Pourquoi dois je penser à réactiver la mise à jour de l'écran à la fin du code?
Je ne l'ai jamais fais dans mes précédentes macros et je ne vois pas l'incidence?

En attendant , déjà un grand merci pour vote aide
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG