XL 2016 Macro évènementielle

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

flodumur

XLDnaute Nouveau
Bonjour, je cherche à réaliser une macro évènementielle où lorsque ma case B2 passe à la valeur 4, ma case A20 change de couleur et la case à cocher numéro 2 reste désactivée.

Est-il possible de faire cela comme ceci ?
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If ShData.Cells(2, 2) = 4 Then
        ShData.Cells(20, 1).Interior.ColorIndex = 3
        CheckBox2.Enabled = False
    End If
End Sub

Merci à vous
 
Bonjour
1) C'est quoi, ShData ?
J'imagine bien sûr qu'il s'agit d'un objet WorkSheet, mais ignore où et comment tu l'as déclaré et initialisé.
2) le paramètre Target de la procédure évènementielle Worksheet_Change est précisément l'objet range dont on modifie la valeur. C'est tout simplement lui, dont on doit s'assurer qu'il est bien concerné (on ne le redéfinit pas par Cells(2, 2) et si oui : que sa propriété Value est bien = 4
 
Tout d'abord merci à tous pour vos réponses.

Je vous mets en copie une partie de mon fichier de travail. J'ai mis en commentaire ce que je cherche à faire.

Est-il possible de réaliser ceci sur des cases contenant des formules (exemple : ligne 2 à 7)

Merci à vous
 

Pièces jointes

Dernière édition:
Je m'excuse, je ne suis pas clair. j'ai mis les commentaires dans le programme

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
'Faire une boucle sur chaque ligne de la ligne 1 à la ligne 7
    If Target.Address = "$B$1" Then
        'Si B1 + D1 + F1 + H1 + J1 + L1 + N1 = 7
        If Target.Value = 1 Then
            'Colorier la ligne 1 en rouge
            Range(Cells(1, 1), Cells(1, 18)).Interior.ColorIndex = 3
            'Déselectionner le checkbox en bout de ligne 1
            CheckBox18.Enabled = False
            [R1] = False
        Else
            'Colorier la ligne 1 en blanc
            Range(Cells(6, 1), Cells(6, 18)).Interior.ColorIndex = 0
            'Ne pas changer le statut du checkbox en bout de ligne 1
        End If
    End If
End Sub
 
Non, ça je ne sais pas faire car la MFC est faite sur toute la plage A1:N7.
Ou alors il faudrait créer une MFC par ligne, et là ça devient une usine à gaz.
D'autant que c'est un domaine que je n'ai jamais touché en VBA.
 
- 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
447
Réponses
7
Affichages
287
Réponses
4
Affichages
441
Réponses
14
Affichages
332
Réponses
41
Affichages
889
Retour