Pb avec Case Range sur la fonction Select

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
 

Robert

XLDnaute Barbatruc
Repose en paix
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
 

olggapt

XLDnaute Junior
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 !
 

Dranreb

XLDnaute Barbatruc
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
 

olggapt

XLDnaute Junior
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:D,E:E,G:G,H:H").Select
Range("H1").Activate
Selection.Copy
 

Discussions similaires

Statistiques des forums

Discussions
312 497
Messages
2 088 994
Membres
104 000
dernier inscrit
dinelcia