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

Comment détecter le changement de nom d'un onglet ?

2 réponses
Avatar
bigorneau
Bonjour à tous.

Comment détecter dynamiquement le changement de nom d'un onglet, sans
utiliser une formule de feuille ?...

Bravo à celui ou celle qui pourrait me donner le tuyau.

Salutations

2 réponses

Avatar
Hervé
Bonsoir,
Sans utiliser une fonction, je ne suis pas sûr que tu puisse intercepter
l'évennement, donc voici mon exemple :

Fonction à mettre dans un module standard :
Function CHANGER_NOM_FEUILLE(Cel As Range) As String
Application.Volatile
CHANGER_NOM_FEUILLE = Cel.Parent.Name
End Function

A mettre dans le module de la feuille ou tu utilise la fonction (ici la
cellule est B17 dans la feuille "Feuil2") :
Private Sub Worksheet_Calculate()
Static NomFeuille As String
If NomFeuille <> [B17] Then
MsgBox "Le nom de la feuille a changé !"
NomFeuille = [B17]
End If
End Sub

Tu peux alors utiliser la fonction sur une feuille cachée ou une ligne
cachée, en faisant référence à n'importe quelle cellule de la feuille à
contrôler (elle sert juste à retourner le nom de la feuille sur laquelle
elle se trouve), comme ici en feuille "Feuil2" dans la cellule B17 :
=CHANGER_NOM_FEUILLE(Feuil1!A15)

Le changement de nom provoque l'évennement Calculate (puisqu'il y a
référence au nom de la feuille) qui te retourne ce que tu veux, ici le
message "Le nom de la feuille a changé !"

Salutations
Hervé.

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

Bonjour à tous.

Comment détecter dynamiquement le changement de nom d'un onglet, sans
utiliser une formule de feuille ?...

Bravo à celui ou celle qui pourrait me donner le tuyau.

Salutations






Avatar
bigorneau
Bonsoir à tous.

Merci Hervé pour ta proposition, qui améliore une chouïa celle que j'avais
mis au moins la veille sans en être pleinement satisfait.
(Lire la réponse de bigorneau à bigorneau qui fixe le cadre plus large de
mon problème
Re: [VBA] Copie de feuille et valeur de propriété GroupName d'OptionButton"
en date du 28/10/2005 13:14.
Eh, ce n'est pas parce que l'on (se) pose une question qu'il ne faut pas
continuer à chercher soi-même !)

Un peu puriste sur les bords, ça me gênait de devoir "poser un espion
masqué" au sein de chaque feuille à surveiller. Et je me disais que ce
serait beau de pouvoir gérer sous forme d'événement une modif. de nom
d'onglet.

Je te remercie donc de m'avoir ouvert les yeux sur une évidence : à chaque
création d'une nouvelle feuille, je colle l'espion correspondant dans ma
feuille "Modèle" qui peut effectivement rester masquée.
Il suffisait en fait de pointer sur la feuille à surveiller.
Contrepartie : ça va m'obliger à gérer les éventuelles suppressions de
feuilles. Ça devrait le faire ...

Meilleures salutations.


"Hervé" a écrit dans le message de
news:
Bonsoir,
Sans utiliser une fonction, je ne suis pas sûr que tu puisse intercepter
l'évennement, donc voici mon exemple :

Fonction à mettre dans un module standard :
Function CHANGER_NOM_FEUILLE(Cel As Range) As String
Application.Volatile
CHANGER_NOM_FEUILLE = Cel.Parent.Name
End Function

A mettre dans le module de la feuille ou tu utilise la fonction (ici la
cellule est B17 dans la feuille "Feuil2") :
Private Sub Worksheet_Calculate()
Static NomFeuille As String
If NomFeuille <> [B17] Then
MsgBox "Le nom de la feuille a changé !"
NomFeuille = [B17]
End If
End Sub

Tu peux alors utiliser la fonction sur une feuille cachée ou une ligne
cachée, en faisant référence à n'importe quelle cellule de la feuille à
contrôler (elle sert juste à retourner le nom de la feuille sur laquelle
elle se trouve), comme ici en feuille "Feuil2" dans la cellule B17 :
=CHANGER_NOM_FEUILLE(Feuil1!A15)

Le changement de nom provoque l'évennement Calculate (puisqu'il y a
référence au nom de la feuille) qui te retourne ce que tu veux, ici le
message "Le nom de la feuille a changé !"

Salutations
Hervé.

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

Bonjour à tous.

Comment détecter dynamiquement le changement de nom d'un onglet, sans
utiliser une formule de feuille ?...

Bravo à celui ou celle qui pourrait me donner le tuyau.

Salutations