Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro pour ouvrir un onglet d'après un critère

19 réponses
Avatar
PLG
Bonjour à tous
Je souhaiterais à partir d'un résultat qui s'affiche, lancer une macro qui
m'ouvrira un onglet.
Exemple :
En A1, si le résultat affiché est 3, je lance la macro, celle-ci m'ouvrira
l'onglet nommé "Mars". En fait les résultats affichés seront de 1 à 12, les
onglets à ouvrir, Janvier à Décembre.

Merci de votre collaboration et bonne (journée, soirée, nuit... à choisir)

10 réponses

1 2
Avatar
Francois L
PLG a écrit :

Bonjour,

Dans la feuille ou tu choisis ton mois, le code :
'----------------------------------------------------------------
Option Base 1

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Mois = Array("Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", _
"Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre")
Myval = [A1]
Sheets(Mois(Myval)).Activate
End If
End Sub
'------------------------------------------------------------------

Attention, les noms des feuilles doivent être écrits de la même manière
que dans le Array.

Exemple en PJ


http://cjoint.com/?ikjPbUjG7p


--
François L


Bonjour à tous
Je souhaiterais à partir d'un résultat qui s'affiche, lancer une macro qui
m'ouvrira un onglet.
Exemple :
En A1, si le résultat affiché est 3, je lance la macro, celle-ci m'ouvrira
l'onglet nommé "Mars". En fait les résultats affichés seront de 1 à 12, les
onglets à ouvrir, Janvier à Décembre.

Merci de votre collaboration et bonne (journée, soirée, nuit... à choisir)


Avatar
Philippe.R
Bonjour,
Pour ce faire, on utilisera l'évènement change de la feuille où s'affiche le
résultat, en contrôlant que le changement a bien lieu dans la cellule
concernée (A1 dans l'exemple) ; enfin à l'aide d'un select case, afficher la
feuille désirée
On aura quelque chose comme :

Private Sub Worksheet_Change(ByVal Target As Range)
'MPFE le 10/08/2008
If Not Intersect(Target, Range("a1")) Is Nothing Then
zaza = [a1]
Select Case zaza
Case Is = 1
Sheets("Janvier").Select
Case Is = 2
Sheets("Février").Select
Case Is = 3
Sheets("Mars").Select
'et ainsi de suite jusqu'à 12
End Select
End If
End Sub
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"PLG" a écrit dans le message de
news:
Bonjour à tous
Je souhaiterais à partir d'un résultat qui s'affiche, lancer une macro qui
m'ouvrira un onglet.
Exemple :
En A1, si le résultat affiché est 3, je lance la macro, celle-ci m'ouvrira
l'onglet nommé "Mars". En fait les résultats affichés seront de 1 à 12,
les
onglets à ouvrir, Janvier à Décembre.

Merci de votre collaboration et bonne (journée, soirée, nuit... à choisir)


Avatar
Francois L
Francois L a écrit :

Re,

On pourrait aussi se dispenser de VBA en utilisant de simples liens
hypertexte

http://cjoint.com/?ikknapACMu

--
François L

PLG a écrit :

Bonjour,

Dans la feuille ou tu choisis ton mois, le code :
'----------------------------------------------------------------
Option Base 1

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Mois = Array("Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", _
"Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre")
Myval = [A1]
Sheets(Mois(Myval)).Activate
End If
End Sub
'------------------------------------------------------------------

Attention, les noms des feuilles doivent être écrits de la même manière
que dans le Array.

Exemple en PJ


http://cjoint.com/?ikjPbUjG7p




Avatar
PLG
Bonjour François et merci, merci aussi de la promptitude !
Ce code ma plait bien, je vais le conserver.
Mais, j'aurais souhaité ne pas aller directement sur l'onglet souhaité, mais
y aller moi même en cliquant sur un bouton.
.... jamais content ces clients....!!!


"Francois L" a écrit dans le message
de news: eK8$Qzr%
PLG a écrit :

Bonjour,

Dans la feuille ou tu choisis ton mois, le code :
'----------------------------------------------------------------
Option Base 1

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Mois = Array("Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", _
"Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre")
Myval = [A1]
Sheets(Mois(Myval)).Activate
End If
End Sub
'------------------------------------------------------------------

Attention, les noms des feuilles doivent être écrits de la même manière
que dans le Array.

Exemple en PJ


http://cjoint.com/?ikjPbUjG7p


--
François L


Bonjour à tous
Je souhaiterais à partir d'un résultat qui s'affiche, lancer une macro
qui m'ouvrira un onglet.
Exemple :
En A1, si le résultat affiché est 3, je lance la macro, celle-ci
m'ouvrira l'onglet nommé "Mars". En fait les résultats affichés seront de
1 à 12, les onglets à ouvrir, Janvier à Décembre.

Merci de votre collaboration et bonne (journée, soirée, nuit... à
choisir)





Avatar
PLG
Re moi
Merci François pour les liens hypertexte, ça je savais faire, mais cela ne
correspond pas à ce que je souhaite.
Ton 1er code VBA me convient sauf que je souhaite qu'il soit lancé
manuellement, comme je te l'explique dans ma 1ère réponse... si tu pouvais...!
Merci à toi

"Francois L" a écrit :

Francois L a écrit :

Re,

On pourrait aussi se dispenser de VBA en utilisant de simples liens
hypertexte

http://cjoint.com/?ikknapACMu

--
François L

> PLG a écrit :
>
> Bonjour,
>
> Dans la feuille ou tu choisis ton mois, le code :
> '----------------------------------------------------------------
> Option Base 1
>
> Private Sub Worksheet_Change(ByVal Target As Range)
> If Not Intersect(Target, Range("A1")) Is Nothing Then
> Mois = Array("Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", _
> "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre")
> Myval = [A1]
> Sheets(Mois(Myval)).Activate
> End If
> End Sub
> '------------------------------------------------------------------
>
> Attention, les noms des feuilles doivent être écrits de la même manière
> que dans le Array.
>
> Exemple en PJ
>
>
> http://cjoint.com/?ikjPbUjG7p
>
>



Avatar
Francois L
PLG a écrit :

Re,

Alors comme ça :
http://cjoint.com/?ikk6LiCGQj

Le code est du coup dans un module et non plus dans une feuille.

--
François L

Bonjour François et merci, merci aussi de la promptitude !
Ce code ma plait bien, je vais le conserver.
Mais, j'aurais souhaité ne pas aller directement sur l'onglet souhaité, mais
y aller moi même en cliquant sur un bouton.
.... jamais content ces clients....!!!


"Francois L" a écrit dans le message
de news: eK8$Qzr%
PLG a écrit :

Bonjour,

Dans la feuille ou tu choisis ton mois, le code :
'----------------------------------------------------------------
Option Base 1

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Mois = Array("Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", _
"Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre")
Myval = [A1]
Sheets(Mois(Myval)).Activate
End If
End Sub
'------------------------------------------------------------------

Attention, les noms des feuilles doivent être écrits de la même manière
que dans le Array.

Exemple en PJ


http://cjoint.com/?ikjPbUjG7p


--
François L


Bonjour à tous
Je souhaiterais à partir d'un résultat qui s'affiche, lancer une macro
qui m'ouvrira un onglet.
Exemple :
En A1, si le résultat affiché est 3, je lance la macro, celle-ci
m'ouvrira l'onglet nommé "Mars". En fait les résultats affichés seront de
1 à 12, les onglets à ouvrir, Janvier à Décembre.

Merci de votre collaboration et bonne (journée, soirée, nuit... à
choisir)








Avatar
PLG
Bonjour Philippe et merci de ta réponse.
Je dois rater un truc...
J'ai ouvert une feuille, créer les onglets des mois + un sommaire.
j'ai ouvert le VBA, ajouter un module, y ai copié ton code...
A partir de la page Sommaire, j'ai crée un bouton, mais lorsque je veux lui
affecter ta macro, je ne la trouve pas...
Je ne suis pas un champion dés qu'il s'agit de vba... je dois donc rater un
truc...

"Philippe.R" a écrit :

Bonjour,
Pour ce faire, on utilisera l'évènement change de la feuille où s'affiche le
résultat, en contrôlant que le changement a bien lieu dans la cellule
concernée (A1 dans l'exemple) ; enfin à l'aide d'un select case, afficher la
feuille désirée
On aura quelque chose comme :

Private Sub Worksheet_Change(ByVal Target As Range)
'MPFE le 10/08/2008
If Not Intersect(Target, Range("a1")) Is Nothing Then
zaza = [a1]
Select Case zaza
Case Is = 1
Sheets("Janvier").Select
Case Is = 2
Sheets("Février").Select
Case Is = 3
Sheets("Mars").Select
'et ainsi de suite jusqu'à 12
End Select
End If
End Sub
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"PLG" a écrit dans le message de
news:
> Bonjour à tous
> Je souhaiterais à partir d'un résultat qui s'affiche, lancer une macro qui
> m'ouvrira un onglet.
> Exemple :
> En A1, si le résultat affiché est 3, je lance la macro, celle-ci m'ouvrira
> l'onglet nommé "Mars". En fait les résultats affichés seront de 1 à 12,
> les
> onglets à ouvrir, Janvier à Décembre.
>
> Merci de votre collaboration et bonne (journée, soirée, nuit... à choisir)




Avatar
PLG
Cette fois, c'est nickel-chrome... comme je souhaitais
Je vais de ce pas mettre en application ton code.
Merci et très bonne journée à toi

"Francois L" a écrit :

PLG a écrit :

Re,

Alors comme ça :
http://cjoint.com/?ikk6LiCGQj

Le code est du coup dans un module et non plus dans une feuille.

--
François L

> Bonjour François et merci, merci aussi de la promptitude !
> Ce code ma plait bien, je vais le conserver.
> Mais, j'aurais souhaité ne pas aller directement sur l'onglet souhaité, mais
> y aller moi même en cliquant sur un bouton.
> .... jamais content ces clients....!!!
>
>
> "Francois L" a écrit dans le message
> de news: eK8$Qzr%
>> PLG a écrit :
>>
>> Bonjour,
>>
>> Dans la feuille ou tu choisis ton mois, le code :
>> '----------------------------------------------------------------
>> Option Base 1
>>
>> Private Sub Worksheet_Change(ByVal Target As Range)
>> If Not Intersect(Target, Range("A1")) Is Nothing Then
>> Mois = Array("Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", _
>> "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre")
>> Myval = [A1]
>> Sheets(Mois(Myval)).Activate
>> End If
>> End Sub
>> '------------------------------------------------------------------
>>
>> Attention, les noms des feuilles doivent être écrits de la même manière
>> que dans le Array.
>>
>> Exemple en PJ
>>
>>
>> http://cjoint.com/?ikjPbUjG7p
>>
>>
>> --
>> François L
>>
>>
>>> Bonjour à tous
>>> Je souhaiterais à partir d'un résultat qui s'affiche, lancer une macro
>>> qui m'ouvrira un onglet.
>>> Exemple :
>>> En A1, si le résultat affiché est 3, je lance la macro, celle-ci
>>> m'ouvrira l'onglet nommé "Mars". En fait les résultats affichés seront de
>>> 1 à 12, les onglets à ouvrir, Janvier à Décembre.
>>>
>>> Merci de votre collaboration et bonne (journée, soirée, nuit... à
>>> choisir)
>
>



Avatar
PLG
.... petit problème !!!
François Help !
Comment je peux me servir de ton code...!?
Si je veux l'affecter à un bouton... ta macro n'apparaît pas....
Elle n'a pas de nom ?
Et ton bouton c'est quoi ? Un clic droit dessus est inopérant.
Là tu m'as largué !

"PLG" a écrit :

Cette fois, c'est nickel-chrome... comme je souhaitais
Je vais de ce pas mettre en application ton code.
Merci et très bonne journée à toi

"Francois L" a écrit :

> PLG a écrit :
>
> Re,
>
> Alors comme ça :
> http://cjoint.com/?ikk6LiCGQj
>
> Le code est du coup dans un module et non plus dans une feuille.
>
> --
> François L
>
> > Bonjour François et merci, merci aussi de la promptitude !
> > Ce code ma plait bien, je vais le conserver.
> > Mais, j'aurais souhaité ne pas aller directement sur l'onglet souhaité, mais
> > y aller moi même en cliquant sur un bouton.
> > .... jamais content ces clients....!!!
> >
> >
> > "Francois L" a écrit dans le message
> > de news: eK8$Qzr%
> >> PLG a écrit :
> >>
> >> Bonjour,
> >>
> >> Dans la feuille ou tu choisis ton mois, le code :
> >> '----------------------------------------------------------------
> >> Option Base 1
> >>
> >> Private Sub Worksheet_Change(ByVal Target As Range)
> >> If Not Intersect(Target, Range("A1")) Is Nothing Then
> >> Mois = Array("Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", _
> >> "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre")
> >> Myval = [A1]
> >> Sheets(Mois(Myval)).Activate
> >> End If
> >> End Sub
> >> '------------------------------------------------------------------
> >>
> >> Attention, les noms des feuilles doivent être écrits de la même manière
> >> que dans le Array.
> >>
> >> Exemple en PJ
> >>
> >>
> >> http://cjoint.com/?ikjPbUjG7p
> >>
> >>
> >> --
> >> François L
> >>
> >>
> >>> Bonjour à tous
> >>> Je souhaiterais à partir d'un résultat qui s'affiche, lancer une macro
> >>> qui m'ouvrira un onglet.
> >>> Exemple :
> >>> En A1, si le résultat affiché est 3, je lance la macro, celle-ci
> >>> m'ouvrira l'onglet nommé "Mars". En fait les résultats affichés seront de
> >>> 1 à 12, les onglets à ouvrir, Janvier à Décembre.
> >>>
> >>> Merci de votre collaboration et bonne (journée, soirée, nuit... à
> >>> choisir)
> >
> >
>


Avatar
Francois L
PLG a écrit :

Re,

Le bouton vient de la barre d'outils "contrôles". Ouvres le classeur,
avec les macros activées bien sur. Dans la barre d'outils contrôles,
cliques sur l'icone avec une équerre bleue pour passer en mode modification.

Si tu fais un double clic sur le bouton, tu verras apparaitre le code
qui lui est attaché.

Pour que ça fonctionne, il faut bien sur ensuite re cliquer sur
l'équerre pour sortir du mode modification.

--
François L

.... petit problème !!!
François Help !
Comment je peux me servir de ton code...!?
Si je veux l'affecter à un bouton... ta macro n'apparaît pas....
Elle n'a pas de nom ?
Et ton bouton c'est quoi ? Un clic droit dessus est inopérant.
Là tu m'as largué !

"PLG" a écrit :

Cette fois, c'est nickel-chrome... comme je souhaitais
Je vais de ce pas mettre en application ton code.
Merci et très bonne journée à toi

"Francois L" a écrit :

PLG a écrit :

Re,

Alors comme ça :
http://cjoint.com/?ikk6LiCGQj

Le code est du coup dans un module et non plus dans une feuille.

--
François L

Bonjour François et merci, merci aussi de la promptitude !
Ce code ma plait bien, je vais le conserver.
Mais, j'aurais souhaité ne pas aller directement sur l'onglet souhaité, mais
y aller moi même en cliquant sur un bouton.
.... jamais content ces clients....!!!


"Francois L" a écrit dans le message
de news: eK8$Qzr%
PLG a écrit :

Bonjour,

Dans la feuille ou tu choisis ton mois, le code :
'----------------------------------------------------------------
Option Base 1

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Mois = Array("Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", _
"Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre")
Myval = [A1]
Sheets(Mois(Myval)).Activate
End If
End Sub
'------------------------------------------------------------------

Attention, les noms des feuilles doivent être écrits de la même manière
que dans le Array.

Exemple en PJ


http://cjoint.com/?ikjPbUjG7p


--
François L


Bonjour à tous
Je souhaiterais à partir d'un résultat qui s'affiche, lancer une macro
qui m'ouvrira un onglet.
Exemple :
En A1, si le résultat affiché est 3, je lance la macro, celle-ci
m'ouvrira l'onglet nommé "Mars". En fait les résultats affichés seront de
1 à 12, les onglets à ouvrir, Janvier à Décembre.

Merci de votre collaboration et bonne (journée, soirée, nuit... à
choisir)













1 2