Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion Fabien
  • 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 !

F

Fabien

Guest
bonjour le forum
qui vousdrais bien m'expliquer la conception et le fonctionnement de select case
en vous en remerciant
 
Bonjour Fabien,

Voici ce que donne l'aide d'Excel.

Exécute un des blocs d'instructions indiqués, selon la valeur d'une expression.

Syntaxe

Select Case testexpression
[Case expressionlist-n
[statements-n]] ...
[Case Else
[elsestatements]]

End Select

La syntaxe de l'instruction Select Case comprend les éléments suivants :

Élément Description
testexpression Toute expression numérique ou expression de chaîne.
expressionlist-n Si une instruction Case apparaît. Liste délimitée dont les éléments peuvent prendre l'une des formes suivantes : expression, expression To expression, Is comparisonoperator expression. Le mot clé To indique une plage de valeurs. Si vous utilisez To, la valeur la plus petite doit figurer avant To. Utilisez le mot clé Is avec les opérateurs de comparaison (sauf Is et Like) pour indiquer une plage de valeurs. S'il n'est pas indiqué, le mot clé Is est inséré automatiquement.
statements-n Facultatif. Une ou plusieurs instructions exécutées si testexpression correspond à l'un des éléments de expressionlist-n.
elsestatements Facultatif. Une ou plusieurs instructions exécutées si testexpression ne correspond à aucun élément de la clause Case.



Remarques

Si testexpression correspond à un élément de la liste expressionlist associé à une clause Case, le bloc d'instructions qui suit cette clause est exécuté jusqu'à la clause Case suivante ou jusqu'à End Select, dans le cas de la dernière clause. Le contrôle passe ensuite à l'instruction qui suit End Select. Si expressiontest correspond à une expression de la liste expressionlist dans plusieurs clauses Case, seules les instructions qui suivent la première correspondance sont exécutées.

La clause Case Else permet d'indiquer que elsestatements doit être exécutée si testexpression ne correspond à aucune autre clause Case. Bien que cela ne soit pas indispensable, la présence d'une instruction Case Else dans votre bloc Select Case peut être utile lorsque testexpression prend des valeurs inattendues. S'il n'y a pas d'instruction Case Else et si aucune des expressions des clauses Case ne correspond à testexpression, l'exécution du programme se poursuit à partir de l'instruction qui suit End Select.

Vous pouvez utiliser plusieurs expressions ou plages dans chaque clause Case. En voici un exemple :

Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber

Note L'opérateur de comparaison Is ne joue pas le même rôle que le mot clé Is utilisé dans l'instruction Select Case.

Vous pouvez aussi indiquer des plages et des expressions multiples pour des chaînes de caractères. Dans l'exemple suivant, Case correspond aux chaînes de caractères qui sont absolument identiques à tout, aux chaînes comprises entre noix et soupe dans l'ordre alphabétique, ainsi qu'à la valeur en cours de TestItem :

Case 'tout', 'noix' To 'soupe', TestItem

Les instructions Select Case peuvent être imbriquées. À chaque instruction Select Case doit correspondre une instructions End Select.


Abel.
 
Bonjour,

Une première chose serait que tu consultes l'aide VBA --> ALT+F11 puis appuies sur F1.

Sinon voici un résumé par un exemple :

Code:
Select Case Range('A1') 'action à partir de la cellule A1
Case 1 'Cas numéro 1
Range('B2') = 2 'la cellule B2 prend la valeur 2
Case 2 'Cas numéro 2
Range('B2') = 3 'la cellule B2 prend la valeur 3
End select

Essaie ce code en le plaçant en VBA dans un fichier et attribue des valeur à A1 pour voir ce qui se passe.


😉
 
Bonjour,

Où est l'erreur ?

Voici ce que j'essaie de faire, sachant que la macro que j'essaie de faire concerne la feuille acive.
Ou B1 contient la formule donnant la date du jour.
Le but est de sélectionner de B37 à H37, puis de B53 à H53 etc...
la date du jour, de la comparer à B1 et si Ok appeler déclenchement d'une autre macro.

Sub Public_SélectionJourActif()
Select Case Range('B37')
Case 1 = ('B1')
Call ActiveSemUn
End Select
Select Case Range('C37')
Case 1 = B1
Call ActiveSemDeux
End Select
Select Case Range('D37')
Case 1 = B1
Call ActiveSemTrois
End Select
Case Else
Exit Sub
End Sub

Je vous remercie pour votre aide
 
salut

comme ca :

Sub Public_SélectionJourActif()
Select Case Range('B1')
Case Range('B37'): Call ActiveSemUn
Case Range('c37'): Call ActiveSemDeux
Case Range('D37'): Call ActiveSemTrois
Case Else: Exit Sub
End Select

End Sub

tu travaillais à l'envers.

bye
 
re,

Modifie ta macro comme suit :

Code:
Sub Public_SelectionJourActif() 
Select Case Range('B37') 
Case is = Range('B1') 
Call ActiveSemUn 
End Select 
Select Case Range('C37') 
Case is = Range('B1')
Call ActiveSemDeux 
End Select 
Select Case Range('D37') 
Case is = Range('B1')
Call ActiveSemTrois 
End Select  
end sub

NB : évite aussi les accents dans le nom de tes procedures.
Bon travail

😉
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
173
Réponses
5
Affichages
207
Réponses
7
Affichages
277
Réponses
2
Affichages
169
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…