Cellule contenant texte ABC => checkbox_OK=True

Bonjour

En fouillant sur le site j'ai trouvé des réponse, mais je n'arrive pas à les appliquer

Voici ce que je tente de faire:

Si sur la feuille "A" une cellule à le texte ABC ou XYZ je veux que la valeur de la checkbox_OK soit TRUE

Afin de ne pas allourdir inutilement j'ai ciblé une plage`, là est mon problème! Ça fonctionne lorque je recheche dans une cellule précise mais pas dans une plage. Comment doit-on inscrire le code pour faire une rechreche dans une plage?

Voici ce que j'ai de fait

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
     If Range("A28", "B41").Value = "ABC" Then
         CheckBox_OK.Value = True
      End If
End Sub

Merci pour votre aide!

Bonjour johanne,

Essaie avec ce code :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Not Intersect(Target, [A28:B41]) Is Nothing Then    'si la cellule sélectionnée est comprise dans la plage [A28:B41] alors
        If Target.Value = "ABC" Then CheckBox_OK.Value = True    'si la cellule sélectionnée = "ABC" alors CheckBox_OK.Value = True
    End If
End Sub

Wow je suis toujours impressionner par la vistesse de réponse que l'on recoit sur ce site.

Ça fonctionne à merveille...mais il y a une chose que je n'avait pas pensé. ... lorsque j'efface le texte j'ai une erreur

Erreur d'éxécution '13':

Incompatibilité de type

Peux-tu me dire sur quelle ligne ça bug ?

Voici la ligne ou ça "bug"

If Target.Value = "ABC" Then CheckBox_OK.Value = True    

Peux-tu me joindre ton fichier en gardant que le checkbox et le code ? Je voudrais faire quelques tests.

Voici mon ficher de travail pour mes tests

ps: Merci encore de prendre le temps de répondre à nos questions

37classeur-test.zip (8.65 Ko)

Ah ok. Tu avais une erreur à cause de cellules fusionnées. Dans la mesure du possible, évite les cellules fusionnées. Ça fout souvent la pagaille.

Pour ton problème, remplace plutôt ton ancien code par celui-ci :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim trouve As Range
    'on cherche "ABC" dans la plage A1:B41 de la Feuil1
    If Not Intersect(Target, [A1:B41]) Is Nothing Then
        Set trouve = Sheets("Feuil1").Range("A1:B41").Find("ABC", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
        If Not trouve Is Nothing Then
            CheckBox_OK.Value = True    'si on trouve "ABC" dans la plage A1:B41 alors CheckBox_OK.Value = True
        Else
            CheckBox_OK.Value = False    'sinon  CheckBox_OK.Value = false
        End If
    End If
End Sub

Merci beaucoup, tu viens de faire ma journée!

Pour ce qui est des cellules fusionnés, je sais que ça me pose souvent des problèmes, malheureusement je dois faire avec!

Merci encore pour ton aide, c'est grandement appécié

Rechercher des sujets similaires à "contenant texte abc checkbox true"