OVH Cloud OVH Cloud

Feuilles actives

3 réponses
Avatar
Noegor
Bonjour,
Je souhaiterais déclencher iune macro uniquement si la feuille active est la
feuil1 ou la feuil2 sans utiliser leurs noms qui pourraient éventuellemnt
être modifiés par l'utilisateur.
La ligne de code suivante ne fonctionne pas :
If ActiveSheet <> feuil1 or ActiveSheet <> feuil2 then Exit Sub
Qui sait me dépanner?
Noégor

3 réponses

Avatar
Daniel
Bonjour.
Sers-toi du "codename" qui ne change pas :
If ActiveSheet.CodeName = "Feuil1" ...
Cordialement.
Daniel
"Noegor" a écrit dans le message de news:
u%
Bonjour,
Je souhaiterais déclencher iune macro uniquement si la feuille active est
la feuil1 ou la feuil2 sans utiliser leurs noms qui pourraient
éventuellemnt être modifiés par l'utilisateur.
La ligne de code suivante ne fonctionne pas :
If ActiveSheet <> feuil1 or ActiveSheet <> feuil2 then Exit Sub
Qui sait me dépanner?
Noégor



Avatar
MichDenis
Pour trouver le codename d'une feuille, tu ouvres
l'éditeur de code et dans l'arborescence des objets
sous le nom du classeur, tu observes ce qui suit :
Exemple :
Feuil1(Feuil1)
Le premier Feuil1, celui qui n'est pas entre parenthèse
est le codename de la feuille. Il ne change pas même
si le nom de l'onglet est modifié.
Le deuxième Feuil1 (entre parenthèse) est le nom
de l'onglet de la feuille.

Attention, j'ai mais le codename en majuscule pour
éviter qu'il y ait confusion pour excel lorsqu'il
compare des chaînes texte. Il est sensible à la case.

With ActiveSheet
If UCase(.CodeName) <> "FEUIL1" Or _
UCase(.CodeName) <> "FEUIL2" Then
Exit Sub
Else
'Traitement
End If
End With




"Noegor" a écrit dans le message de news:
u%
Bonjour,
Je souhaiterais déclencher iune macro uniquement si la feuille active est la
feuil1 ou la feuil2 sans utiliser leurs noms qui pourraient éventuellemnt
être modifiés par l'utilisateur.
La ligne de code suivante ne fonctionne pas :
If ActiveSheet <> feuil1 or ActiveSheet <> feuil2 then Exit Sub
Qui sait me dépanner?
Noégor
Avatar
AV
feuil1 ou la feuil2 sans utiliser leurs noms qui pourraient éventuellemnt être
modifiés par l'utilisateur.


Indépendamment des solutions déjà proposées, si tu protèges ton classeur (ce que
tu devrais faire en cas de multi-utilisateurs), il n'y a pas de risque de
renommage !

La ligne de code suivante ne fonctionne pas :
If ActiveSheet <> feuil1 or ActiveSheet <> feuil2 then Exit Sub


Cette syntaxe devrait être :
If ActiveSheet.name <> "feuil1" or ActiveSheet.name <> "feuil2" then Exit Sub

AV