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

(vba) événement au chgmt de feuille

13 réponses
Avatar
j-pascal
Bonsoir,

Est-il possible de déclencher un événement lorsqu'on clique sur un onglet
(pour afficher une nouvelle feuille) ?
En résumé, je voudrais déclencher une procédure dès lors que l'utilisateur
change d'onglet (à limiter aux feuilles 5 à 16, mais j'imagine que le code
sera sur la feuille !).

Merci d'avance pour vos lumières...

--
Cordialement @+
JP

10 réponses

1 2
Avatar
Daniel.C
Bonjour.
Regarde "Worksheet_activate" dans la feuille ou
Workbook_SheetActivate
dans thisworkbook.
Cordialement.
Daniel
"j-pascal" a écrit dans le message de news:

Bonsoir,

Est-il possible de déclencher un événement lorsqu'on clique sur un onglet
(pour afficher une nouvelle feuille) ?
En résumé, je voudrais déclencher une procédure dès lors que l'utilisateur
change d'onglet (à limiter aux feuilles 5 à 16, mais j'imagine que le code
sera sur la feuille !).

Merci d'avance pour vos lumières...

--
Cordialement @+
JP


Avatar
JB
Bonjour,

Dans ThisWorkBook:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Index >= 5 And Sh.Index <= 16 Then
MsgBox Sh.Name
End If
End Sub

JB

On 10 sep, 18:40, "j-pascal" wrote:
Bonsoir,

Est-il possible de déclencher un événement lorsqu'on clique sur un onglet
(pour afficher une nouvelle feuille) ?
En résumé, je voudrais déclencher une procédure dès lors que l' utilisateur
change d'onglet (à limiter aux feuilles 5 à 16, mais j'imagine que le code
sera sur la feuille !).

Merci d'avance pour vos lumières...

--
Cordialement @+
JP


Avatar
LSteph
Bonsoir à tous,

Tu ne t'en lasses décidément pas de ce sujet cher J-Pascal

... fichtre !!!

chez moi la feuille d'index 8 est Feuil34
et celle dont le caption est Feuil14 a pour codename Feuil3
sachant que Worksheet(9) est juste avant la feuille que j'insère..
qui devrait être 38 vu qu'il y en a déjà 37 plus 4 graphiques et une
Feuille MacroExcel4 et que dans ma macro j'indique after: Quel sera le nom de celle qui arrivera quand j'aurais changé trois fois
de feuille et où sera-t-elle insérée?

En bref qu'entens tu par 5 à 16 et comment sont rangées tes feuilles,

;o))

Cordialement.

lSteph

Bonsoir,

Est-il possible de déclencher un événement lorsqu'on clique sur un
onglet (pour afficher une nouvelle feuille) ?
En résumé, je voudrais déclencher une procédure dès lors que
l'utilisateur change d'onglet (à limiter aux feuilles 5 à 16, mais
j'imagine que le code sera sur la feuille !).

Merci d'avance pour vos lumières...



Avatar
LSteph
Bonjour,

;o)
(il me semblait te l'avoir déjà évoqué)... le déroulant droit en haut du
codemodule Thisworkbook!? Bon, ..faut avoir activé WorkBook dans celui
de gauche

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

End Sub

--
lSteph

Sheet_Activate

Bonsoir,

Est-il possible de déclencher un événement lorsqu'on clique sur un
onglet (pour afficher une nouvelle feuille) ?
En résumé, je voudrais déclencher une procédure dès lors que
l'utilisateur change d'onglet (à limiter aux feuilles 5 à 16, mais
j'imagine que le code sera sur la feuille !).

Merci d'avance pour vos lumières...



Avatar
j-pascal
Bonsoir,

Génial ! Merci ++
Et en plus, c'est facile à comprendre :o)
'-------------
Private Sub Workbook_SheetActivate(ByVal Sh As Object) '10/09
If Sh.Index >= 5 And Sh.Index <= 16 Then
'MsgBox Sh.Name
Range("C9").End(xlDown).Offset(1, 0).Select
End If
End Sub
'-------------
Cette réponse fait d'une pierre trois coups... En effet, elle :
- résoud mon pb de "Scroll ..." pour "recentrer mon "tableau" (c'est même
mieux car on sélectionne directement la cellule à saisir) !
- résoud mon pb de "renommage" d'onglet (mon post du 10/09/07 à 20h20) car
si on affiche un msg box (ie) au clic de l'onglet, ça shunte le double-clic
!!

Vraiment content :o) Merci !

JP

"JB" a écrit dans le message de news:

Bonjour,

Dans ThisWorkBook:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Index >= 5 And Sh.Index <= 16 Then
MsgBox Sh.Name
End If
End Sub

JB

On 10 sep, 18:40, "j-pascal" wrote:
Bonsoir,

Est-il possible de déclencher un événement lorsqu'on clique sur un onglet
(pour afficher une nouvelle feuille) ?
En résumé, je voudrais déclencher une procédure dès lors que l'utilisateur
change d'onglet (à limiter aux feuilles 5 à 16, mais j'imagine que le code
sera sur la feuille !).

Merci d'avance pour vos lumières...

--
Cordialement @+
JP


Avatar
j-pascal
Bonsoir et ... merci !

JP

"Daniel.C" a écrit dans le message de news:

Bonjour.
Regarde "Worksheet_activate" dans la feuille ou
Workbook_SheetActivate
dans thisworkbook.
Cordialement.
Daniel
"j-pascal" a écrit dans le message de news:

Bonsoir,

Est-il possible de déclencher un événement lorsqu'on clique sur un onglet
(pour afficher une nouvelle feuille) ?
En résumé, je voudrais déclencher une procédure dès lors que
l'utilisateur change d'onglet (à limiter aux feuilles 5 à 16, mais
j'imagine que le code sera sur la feuille !).

Merci d'avance pour vos lumières...

--
Cordialement @+
JP






Avatar
j-pascal
Bonsoir,

Je prends connaissance de ton msg à l'instant ... et j'avais répondu à JB à
20:49. Je crois que j'ai trouvé la solution ;-) Vive les CodeName(s) :o)

JP

PS : je vais quand-même lire ton msg suivant ;-)

"LSteph" a écrit dans le message de news:

Bonsoir à tous,

Tu ne t'en lasses décidément pas de ce sujet cher J-Pascal

... fichtre !!!

chez moi la feuille d'index 8 est Feuil34
et celle dont le caption est Feuil14 a pour codename Feuil3
sachant que Worksheet(9) est juste avant la feuille que j'insère..
qui devrait être 38 vu qu'il y en a déjà 37 plus 4 graphiques et une
Feuille MacroExcel4 et que dans ma macro j'indique after: > Quel sera le nom de celle qui arrivera quand j'aurais changé trois fois de
feuille et où sera-t-elle insérée?

En bref qu'entens tu par 5 à 16 et comment sont rangées tes feuilles,

;o))

Cordialement.

lSteph

Bonsoir,

Est-il possible de déclencher un événement lorsqu'on clique sur un onglet
(pour afficher une nouvelle feuille) ?
En résumé, je voudrais déclencher une procédure dès lors que
l'utilisateur change d'onglet (à limiter aux feuilles 5 à 16, mais
j'imagine que le code sera sur la feuille !).

Merci d'avance pour vos lumières...





Avatar
j-pascal
Re,

"LSteph" a écrit dans le message de news:


Bonjour,

;o)
(il me semblait te l'avoir déjà évoqué)... le déroulant droit en haut du
codemodule Thisworkbook!?


Incroyable ! Je n'utilise jamais cette "fenêtre" et ça semble être une mine
! Tout ça à portée de main et je n'en profite pas ?!!
Celui qui m'a expliqué pour la première fois les différentes façon d'appeler
les feuilles a lui aussi (lol) douté de la disponibilité de mes neurones (
;-) ). Je ne fais jamais semblant de comprendre si je n'ai pas compris ...
Mais quand j'ai (enfin) compris, j'ai compris ;-)
Select ... Activate ; Feuil15 (lol) etc.

A bientôt,

Amicalement,

JP

Bon, ..faut avoir activé WorkBook dans celui
de gauche

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

End Sub

--
lSteph

Sheet_Activate

Bonsoir,

Est-il possible de déclencher un événement lorsqu'on clique sur un onglet
(pour afficher une nouvelle feuille) ?
En résumé, je voudrais déclencher une procédure dès lors que
l'utilisateur change d'onglet (à limiter aux feuilles 5 à 16, mais
j'imagine que le code sera sur la feuille !).

Merci d'avance pour vos lumières...





Avatar
LSteph
C'est une évidence, le CodeName est ce qu'il y a de plus commode et
a priori de plus sûr, cela fait un moment que j'essaie de t'en
convaincre et en plus tu le sais très bien puisque tu faisais djà
référence au support propsé sur Dévellopez dans un autre post..
Bon , si cela te permet , d'assoir ta conclusion..
pourquoi pas...
@+

Bonsoir,

Je prends connaissance de ton msg à l'instant ... et j'avais répondu à
JB à 20:49. Je crois que j'ai trouvé la solution ;-) Vive les
CodeName(s) :o)

JP

PS : je vais quand-même lire ton msg suivant ;-)

"LSteph" a écrit dans le message de news:

Bonsoir à tous,

Tu ne t'en lasses décidément pas de ce sujet cher J-Pascal

... fichtre !!!

chez moi la feuille d'index 8 est Feuil34
et celle dont le caption est Feuil14 a pour codename Feuil3
sachant que Worksheet(9) est juste avant la feuille que j'insère..
qui devrait être 38 vu qu'il y en a déjà 37 plus 4 graphiques et une
Feuille MacroExcel4 et que dans ma macro j'indique after: >> Quel sera le nom de celle qui arrivera quand j'aurais changé trois
fois de feuille et où sera-t-elle insérée?

En bref qu'entens tu par 5 à 16 et comment sont rangées tes feuilles,

;o))

Cordialement.

lSteph

Bonsoir,

Est-il possible de déclencher un événement lorsqu'on clique sur un
onglet (pour afficher une nouvelle feuille) ?
En résumé, je voudrais déclencher une procédure dès lors que
l'utilisateur change d'onglet (à limiter aux feuilles 5 à 16, mais
j'imagine que le code sera sur la feuille !).

Merci d'avance pour vos lumières...








Avatar
j-pascal
Oups !!
Quand je ferme mon application, toutes les feuilles sont "balayées" pour
être enregistrées en "VeryHidden" (visible si l'utilisateur active les
macros...) ; alors si je laisse un msgbox, je suis obligé de l'acquitter
pour chaque feuille !! C'est plus comique que grave ! Je vais donc conserver
uniquement mon offset ...

A bientôt,

JP

"JB" a écrit dans le message de news:

Bonjour,

Dans ThisWorkBook:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Index >= 5 And Sh.Index <= 16 Then
MsgBox Sh.Name
End If
End Sub

JB

On 10 sep, 18:40, "j-pascal" wrote:
Bonsoir,

Est-il possible de déclencher un événement lorsqu'on clique sur un onglet
(pour afficher une nouvelle feuille) ?
En résumé, je voudrais déclencher une procédure dès lors que l'utilisateur
change d'onglet (à limiter aux feuilles 5 à 16, mais j'imagine que le code
sera sur la feuille !).

Merci d'avance pour vos lumières...

--
Cordialement @+
JP


1 2