Pb avec Case Range sur la fonction Select

  • Initiateur de la discussion Initiateur de la discussion olggapt
  • 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 !

olggapt

XLDnaute Junior
Bonjour à tous !

J'ai une liste déroulante dont je voudrais tester le contenu à chaque choix de l'utilisateur
Cette liste est en C3

Je voudrais comparer C3 avec le contenu de la cellule C1 dans la feuille 'CodesGM'
Mais voilà ça plante !
Je vous écris le début de mon Select Case

une idée ?
Merci à tous.

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C3")) Is Nothing Then: Exit Sub
Select Case Target.Value

Case Is = Range("CodesGM!C1").Value
MsgBox "ok"

End Select
End Sub
 
Re : Pb avec Case Range sur la fonction Select

Bonsoir Olggapt, bonsoir le forum,

peut-être comme ça :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$3" Then Exit Sub
Select Case Target.Value
    Case Is = Sheets("CodesGM").Range("C1").Value
        MsgBox "ok"
End Select
End Sub
Et si tu n'as qu'un seul Case, autant utiliser un simple If...
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$3" Then Exit Sub
If Target.Value = Sheets("CodesGM").Range("C1").Value Then MsgBox "ok"
End Sub
 
Re : Pb avec Case Range sur la fonction Select

Bjr Robert
ça marche très bien ! cool !
Mais je voudrais comprendre pourquoi mon code plantait ?
Pourquoi faut-il découpler la feuille (avec Sheets) de la cellule (avec Range) au lieu de faire Range("CodesGM!C1") ?
tu as une idée ?
merci !
 
Re : Pb avec Case Range sur la fonction Select

Bonjour
Peut être Application.Range("CodesGM!C1") aurait marché.
Mais dans un module de feuille il prend par défaut la méthode range de l'objet Worksheet et non celle de l'objet Application.
Alors un range de la feuille avec un préfixe d'une autre feuille, il ne comprend pas.
Faites comme moi: ne le laissez jamais plus décider de quoi il prend Cells ou Range: spécifiez le toujours !
Et là, mettre la feuille comme le conseille Robert, c'est très bien. Encore que moi je préfère mettre le CodeName de la feuille. C'est plus court et plus performant (enfin un picochouia)
Cordialement
 
Re : Pb avec Case Range sur la fonction Select

merci de ces explications intéressantes !

Je rencontre un autre souci
Cette macro ouvre un autre fichier appelé Import.xls dans lequel je voudrais sélectionner des plages de cellules
Or, la macro plante en me renvoyant une erreur 1004 (erreur définie par l'application)
Je ne vois pas...

Workbooks.Open Filename:= _
"C:\BaseFinancière\Import.xls"
Cells.Select
Selection.UnMerge
Range("A:A,H:H").Select
Selection.UnMerge
Range("A:A,D😀,E:E,G:G,H:H").Select
Range("H1").Activate
Selection.Copy
 
- 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

Réponses
9
Affichages
404
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
446
Réponses
4
Affichages
406
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
439
Retour