Procédure évènementiel sur cellule colorisé
Résolu
daiman
Messages postés
41
Date d'inscription
Statut
Membre
Dernière intervention
-
daiman Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
daiman Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai écrit une macro qui, lorsque je la lance, va chercher toutes les cellules colorisé en rouge d'un plage puis met à 1 la cellule juste en dessous de la cellule colorisé. j'ai voulu mettre sa en automatique mais j'y suis arrivé que partiellement.
c'à dire que la cellule ce met à 1 lorsque l'autre cellues est rouge et non vide. hors moi je veu quel passe à dès que je colorise la cellule.!!!
voilà ma procédure:
Private Sub Worksheet_Change(ByVal target As Range, couleurFond)
Dim Plage As Range
Set Plage = Intersect(target, Range("d5:dy5"))
If Plage Is Nothing Then Exit Sub
For Each cellule In Plage
If cellule.Interior.ColorIndex = 3 Then
cellule.Select
colonne = ActiveCell.Column
ligne = ActiveCell.Row
a = ligne + 1
Cells(a, colonne).Value = 1
Else
If cellule.Interior.ColorIndex = xlNone Then
cellule.Select
colonne = ActiveCell.Column
ligne = ActiveCell.Row
a = ligne + 1
Cells(a, colonne).Value = 0
End If
End If
Next
End Sub
j'ai écrit une macro qui, lorsque je la lance, va chercher toutes les cellules colorisé en rouge d'un plage puis met à 1 la cellule juste en dessous de la cellule colorisé. j'ai voulu mettre sa en automatique mais j'y suis arrivé que partiellement.
c'à dire que la cellule ce met à 1 lorsque l'autre cellues est rouge et non vide. hors moi je veu quel passe à dès que je colorise la cellule.!!!
voilà ma procédure:
Private Sub Worksheet_Change(ByVal target As Range, couleurFond)
Dim Plage As Range
Set Plage = Intersect(target, Range("d5:dy5"))
If Plage Is Nothing Then Exit Sub
For Each cellule In Plage
If cellule.Interior.ColorIndex = 3 Then
cellule.Select
colonne = ActiveCell.Column
ligne = ActiveCell.Row
a = ligne + 1
Cells(a, colonne).Value = 1
Else
If cellule.Interior.ColorIndex = xlNone Then
cellule.Select
colonne = ActiveCell.Column
ligne = ActiveCell.Row
a = ligne + 1
Cells(a, colonne).Value = 0
End If
End If
Next
End Sub
A voir également:
- Procédure évènementiel sur cellule colorisé
- Excel cellule couleur si condition texte - Guide
- Proteger cellule excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Excel cellule choix multiple - Guide
- Excel compter cellule couleur sans vba - Guide
1 réponse
Bonsoir,
déjà pour gagner de la place tu peux utiliser .offset()
If cellule.Interior.ColorIndex = 3 Then
cellule.offset(1,0).value = 1 ' 1ligne plus bas, même colonne
elseif cellule.Interior.ColorIndex = xlnone
cellule.offset(1,0).value = 0
endif
et tu utilises l'evenement change qui est appelé si le contenu (sa valeur) de la cellule change. Saisi un espace pour déclencher ton evenement...
Tu n'as pas d'evenement sur le changement de couleur.
eric
déjà pour gagner de la place tu peux utiliser .offset()
If cellule.Interior.ColorIndex = 3 Then
cellule.offset(1,0).value = 1 ' 1ligne plus bas, même colonne
elseif cellule.Interior.ColorIndex = xlnone
cellule.offset(1,0).value = 0
endif
et tu utilises l'evenement change qui est appelé si le contenu (sa valeur) de la cellule change. Saisi un espace pour déclencher ton evenement...
Tu n'as pas d'evenement sur le changement de couleur.
eric
encore merci