Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Petit problème de Select Case...

  • Initiateur de la discussion Initiateur de la discussion i0raek
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

i0raek

XLDnaute Occasionnel
Bonjour à tous,

J'utilise une feuille de saisie dans laquelle la modification de certaines plages génère un évènement.

Pour alléger mon code, je pensais utiliser un Select Case du genre :
Code:
Select Case Not Intersect(Plage, Target) Is  Nothing
     Case Set Plage = Feuil1.range("A1:A10")
          ...
End Select

mais bien sur, cela ne fonctionne pas... Existe-t-il un moyen pour qu'il exécute le Select Case avec une inconnue dans la définition ???

Merci d'avance pour votre aide !!!
 
Re : Petit problème de Select Case...

Bonjour ioraek,

Si j'ai bien compris ta demande, dans une procédure événementielle, pour que le code s'exécute uniquement sur la plage A1:A10, je procéderais ainsi :

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
'ton code
End If
End Sub

bonne journée
@+
 
Re : Petit problème de Select Case...

Bonjour Pierrot93 !

Jusqu'à présent, j'utilisais ce type de code seulement, comme il y a une dizaine de plage possible... ca fait beaucoup de test if avant d'exécuter le code lié à la dernière plage... d'ou le Select Case
 
Re : Petit problème de Select Case...

Bonjour,
Une explication plus claire eut été bienvenue, mais si j'essaie d'interpréter, utilise plutôt la méthode Intersect
If not Intersect(Range("A1:A10"),Target) is Nothing Then...
A+
kjin

Edit: Un peu mou ce matin, bonjour Pierrot
 
Re : Petit problème de Select Case...

Bonjour

dans ce cas là tu peux passer par elseif et cela fera le même nombre de ligne qu'un select case

If .... then
elseif ....then
elseif .... then
end if
 
Re : Petit problème de Select Case...

Bonjour kjin,

désolé, je pensais l'être...😱
En fait, j'ai une feuille avec une dizaine de plage lié à un événement qui se déclenche si l'on modifie l'une des cellules de la plage.

Jusqu'à présent je faisais le test If Not Intersect ... pour chaque plage afin qu'il trouve la bonne et exécute le code de l'événement.

Je me demandais juste s'il était possible d'éviter de tester chaque plage et j'avais pensais au Select Case.

En espérant être plus clair !
 
Re : Petit problème de Select Case...

Re, bonjour Pascal,
Pourquoi pas

If Not Intersect(Range("A1:A10, B5:B6, C5:C10"), Target) Is Nothing Then...
par exemple, si tu as plusieurs plages à contrôler
A+
kjin
 
Re : Petit problème de Select Case...

Bonjour à tous,

le soucis est que le Select Case ne peut s'appliquer que sur une Variable/Valeur, mais toi tu veux tester des plages variables, donc pas toujours la même Variable/Valeur.
Le Select Case n'est donc pas approprié... peux-tu préciser le type d'action que tu réalises si Target fait partie d'une des plages ?
 
Re : Petit problème de Select Case...

Re, bonjour tototiti2008,

Malheureusement, l'événement est propre à chaque plage (ce serait trop beau !!!)...

Les événements sont du type afficher/masquer des lignes ou colonnes, changer la valeur de cellules à appeler des procédures de macros... c'est assez varié en fait.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

M
Réponses
1
Affichages
2 K
T
  • Résolu(e)
XL pour MAC Target
Réponses
9
Affichages
2 K
tdenis
T
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…