Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Supprimer ligne

C

Caro

Guest
Bonjour,
pour une colonne donnée, je voudrais supprimer les lignes dont la cellule à un font.color noir

Merci d'avance

Cao
 

Hervé

XLDnaute Barbatruc
Bonsoir

Tu n'en dis pas lourd.

Cette macro supprime les lignes dont les cellules de la colonne B sont en noir.

Couvre la plage B1:B200

Ne fonctionne pas avec les MEFC

Code:
Public Sub voir()
Dim i As Integer

For i = 200 To 1 Step -1
    If Range('b' & i).Interior.ColorIndex = 1 Then
        Rows(i).Delete
    End If
Next i

End Sub

Salut
 
C

caro

Guest
ca veut dire quoi MEFC?

dans mon cas :

Public Sub voir()
Dim i As Integer

For i = 200 To 1 Step -1
If Range('b' & i).font.ColorIndex = 1 Then
Rows(i).Delete
End If
Next i

End Sub

Normalement cela doit marcher


Merci
 

Rénato

XLDnaute Occasionnel
Bonsoir à tous,

En évenementielle, on peut également faire :

Private Sub Worksheet_Change(ByVal Target As Range)

Dim c As Range
For Each c In Range('A:A')
If c.Interior.ColorIndex = 1 Then c.EntireRow.Delete
Next c
End Sub


Dans mon exemple la colonne traitée est la colonne 'A'

A bientôt
 

Hervé

XLDnaute Barbatruc
bonsoir Hellboy, renato, tout le reste de la planète XLD

les MEFC sont les mises en forme conditionnelle, si tu applique une couleur par cette méthode, cette macro ne fonctionne pas.

Par contre, en relisant ta première demande, je me demande si tu ne cherche pas la couleur noir comme police d'écriture :

si oui, remplace :If Range('b' & i).Interior.ColorIndex = 1 Then
par : If Range('b' & i).Font.ColorIndex = 1 Then

Salut
 

Hellboy

XLDnaute Accro
Bonsoir a tous

Je suis d'accord avec Hervé. Il faudrait en savoir un peu plus.

Le noir est-ce pour la police et/ou le fond de la cellule Et si c'est le fond de la cellule est-ce fait par MEFC ?

Tout ce fait, à condition de faire savoir ce que l'on veut sans tomber dans l'exhaustivité.

Phil
 

Rénato

XLDnaute Occasionnel
Bien vu mon cher RV,

En effet Font<>Fond, je me dois également de revoir ma copie.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim c As Range
For Each c In Range('A:A')
If c.Value <> '' And c.Font.ColorIndex = 1 Then
c.EntireRow.Delete
End If
Next c
End Sub


Bonsoir à tous.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…