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

Appeler une macro en fonction du nom d'un onglet

1 réponse
Avatar
Céline Brien
Bonjour à tous et à toutes,

Un classeur dont 4 onglets contiennent un tableau croisé dynamique.

Les noms sont : Vente par année, Vente par projet, Revenu par année,
Revenu par projet.

Après un double-clic dans un tableau croisé dynamique, une feuille est
insérée à gauche de l'onglet contenant le tableau croisé dynamique et
elle devient la feuille active.

J'ai déjà une macro qui s'exécute lors de cet événement :

Private x

Private Sub Workbook_NewSheet(ByVal Sh As Object)

x = ActiveSheet.Index

MiseEnFormeNouvelleFeuille

End Sub

Sub MiseEnFormeNouvelleFeuille()

codes...

End Sub

Je voudrais, à l'intérieur de cette macro, appeler une macro :

Si le nom de l'onglet situé après ou à droite de la feuille active
contient Vente appeler macro Vente.

Si le nom de l'onglet situé après ou à droite de la feuille active
contient Revenu appeler macro Revenu.

N'hésitez pas si vous avez des questions,

Merci de votre aide si précieuse,

Céline

1 réponse

Avatar
Corona
Bonsoir Céline,
En vitesse (attention faire un test si index + 1 existe)
If InStr(ThisWorkbook.Sheets(ActiveSheet.Index + 1).Name, "Vente") Then
MsgBox "Macro Vente"
If InStr(ThisWorkbook.Sheets(ActiveSheet.Index + 1).Name, "Revenu") Then
MsgBox "Macro Revenu"
Philippe

"Céline Brien" a écrit dans le message de
news:
Bonjour à tous et à toutes,

Un classeur dont 4 onglets contiennent un tableau croisé dynamique.

Les noms sont : Vente par année, Vente par projet, Revenu par année,
Revenu par projet.

Après un double-clic dans un tableau croisé dynamique, une feuille est
insérée à gauche de l'onglet contenant le tableau croisé dynamique et
elle devient la feuille active.

J'ai déjà une macro qui s'exécute lors de cet événement :

Private x

Private Sub Workbook_NewSheet(ByVal Sh As Object)

x = ActiveSheet.Index

MiseEnFormeNouvelleFeuille

End Sub

Sub MiseEnFormeNouvelleFeuille()

codes...

End Sub

Je voudrais, à l'intérieur de cette macro, appeler une macro :

Si le nom de l'onglet situé après ou à droite de la feuille active
contient Vente appeler macro Vente.

Si le nom de l'onglet situé après ou à droite de la feuille active
contient Revenu appeler macro Revenu.

N'hésitez pas si vous avez des questions,

Merci de votre aide si précieuse,

Céline