Bonjour à tous.
J'ai une petite macro qui permet de modifier la couleur de fond d'une cellule en fonction d'une couleur qui a été définies dans une autre feuille du classeur. La macro est comme ci dessous:
' retirer la protection de la feuille
ActiveSheet.Unprotect
a = 50
'si on supprime un libellé dans la feuille -> mettre en blanc le fond
If Target = "" Then
ligne = Target.Row
colo = Target.Column
Feuil1.Cells(ligne, colo).Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
' protéger la feuille
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFiltering:=True
Exit Sub
End If
'si on ajoute un libellé dans la feuille -> mettre en couleur le fond en fonction du choix
Do While Target <> Feuil3.Cells(a, 1)
If Feuil3.Cells(a, 1) = "" Then
Exit Sub
End If
If Target = Feuil3.Cells(a, 2) Then
Exit Do
End If
a = a + 1
Loop
ligne = Target.Row
colo = Target.Column
Feuil1.Cells(ligne, colo).Interior.Color = Feuil3.Cells(a, 1).Interior.Color
' protéger la feuille
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFiltering:=True
Le code ci dessus marche très bien ... tant que l'on modifie cellule par cellule les données de la feuille.
Si l'on modifie en masse, par exemple, sélectionner une zone de 6 cellules et que l'on fait ctrl+Entrée, ou lors des copier coller de plusieurs cellules, la macro ne fonctionne pas. (Normal puisque l'on utilise le code
Cells(ligne, colo)
. J'aurais aimé travailler avec le Target, qui représente une cellule ou un plage de cellules, et que je récupère au tout début de ma macro (Target étant la cellule ou la zone de cellule modifiée(s)) mais je ne sait pas si on peut réutiliser directement Target et surtout, si c'est possible, comment ?
Je précise que ma macro est déclenchée dès que la feuille est modifiée.
Merci beaucoup de votre aide sur ce sujet.
Bonne journée à tous.
Onafe57.