Colorer cellule d'une couleur après suppression du contenu d'une cellule

Bonjour,

J'ai programmé une macro qui me permet de colorer les cellules de la colonne D lorsque les cellules de la colonne E sont remplies. Cette macro fonctionne mais j'aimerais que la coloration s'efface, redevienne la coloration de base (Interior.Color = 15921906) lorsque le contenu des cellules de la colonne E est effacé. Auriez-vous une idée de comment faire s'il vous plait ?

4test.zip (823.51 Ko)

Je vous remercie d'avance,

Léa

Bonjour

Votre code modifié et simplifié :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
ActiveSheet.Unprotect
If Not Application.Intersect(Target, Range("E" & Target.Row)) Is Nothing Then
    If Target <> "" Then
        Range("D" & Target.Row).Interior.Color = 13434726 'case verte
        Else: Range("D" & Target.Row).Interior.Color = 15921906 'case grise
    End If
End If
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True
End Sub

Cordialement

Bonjour à tous,

Bon j'avais fait le même code que Dan sauf que j'étais parti dans l'autre sens avec un Not Is Empty, je le poste tout de même :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
ActiveSheet.Unprotect
ThisRow = Target.Row
If Not Application.Intersect(Target, Range("E" & ThisRow)) Is Nothing Then
    If Not IsEmpty(Range("E" & ThisRow)) Then
    Range("D" & ThisRow).Interior.Color = 13434726  'case verte
    Else: Range("D" & ThisRow).Interior.Color = 15921906 'case grise
End If
End If
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True
End Sub

Par contre je ne comprend pas, pourquoi ne pas passer simplement par une mise en forme conditionnelle ? C'est beaucoup plus simple, limpide et rapide ?

Cdlt,

@Ergotamine

Oublie pas de déclarer la variable ... Thisrow . De mon coté je l'ai supprimée, cela n'apporte rien dans le code

pourquoi ne pas passer simplement par une mise en forme conditionnelle. C'est beaucoup plus simple, limpide et rapide ?

Plus simple, oui. Plus rapide, Non.
Par contre avec la MFC on utilise les fonctionnalités de base d'excel, et là je te rejoins.
Evitez le VBA tant que cela peut se faire c'est toujours un plus, d'autant que le VBA sera appelé à disparaitre.

Bonjour Dan,

Je suis curieux de ta réponse sur la rapidité. Tu veux dire par là qu'une MEFC est plus lente dans le sens où elle se recalcule sur l'ensemble de la plage d'application à chaque modification ? Ce qui expliquerait que des multi MEFC sur plusieurs dizaines de lignes avec des plages d'application non homogènes dû à des copier coller par ci par là ralentissent considérablement un fichier ?

Dans l'attente de ta réponse.

Cdlt,

@Ergotamine

Je confirme ce que tu écris. Ralentir considérablement, cela reste à analyser. Reste à voir sur combien de cellules on agit aussi

Crdlt

Je vous remercie tous les deux ! Les deux solutions fonctionnent parfaitement ! Personnellement, j'ai décidé de passer par VBA plutôt que par une MEFC car le fichier original est très volumineux et l'utilisation d'une MEFC allourdirait bcp + le fichier qu'une simple macro :)

Rechercher des sujets similaires à "colorer couleur suppression contenu"