Supprimer les cellules d'une colonne si la couleur de police

Bonsoir à tous

pouvez-vous me dire quel code utiliser pour supprimer les cellules d'une colonne, ou d'une plage, si la couleur de police est blanche ?

Merci d'avance

bonne soirée

Magali

Bonsoir,

Par exemple :

For Each c In plage
    If .Font.Color = vbWhite Then c.ClearContents
Next c

plage étant la plage sur laquelle tu opères, c une variable de type Range.

Nb- Tu peux supprimer une ligne ou une colonne mais pas une cellule, sauf à décaler les autres cellules soit de la même ligne, soit de la même colonne. Comme tu n'as pas apporté de précision, on se contente d'effacer...

Bonsoir

merci pour le coup de main

j'ai un message d'erreur :

Erreur de compilation : Référence incorrecte ou non qualifiée sur le code

Dim c As Range

  For Each c In Range("bu8:bu58")
    If .Font.Color = 2 Then c.ClearContents
Next c
   

voir copie d'écran en pj

tu sais d'où cela peut venir ?

encore merci

Mag

sans titre

Oh ! Je dois fatiguer en fin de journée...

If c.Font.Color = 2 Then c.ClearContents

Mille excuses .

re:bonsoir

Dans l'idéal il me faudrait une boucle pour ce bout de code :

If Range("bu8").Font.Color = 9438466 Then Range("bu8").ClearContents

If Range("bu9").Font.Color = 9438466 Then Range("bu9").ClearContents

If Range("bu10").Font.Color = 9438466 Then Range("bu10").ClearContents

If Range("bu11").Font.Color = 9438466 Then Range("bu11").ClearContents

etc jusqu'à la cellule bu48

de cette manière cela fonctionne mais c'est très lourd ....

une idée ?

bonne soirée

MFerrand a écrit :

Oh ! Je dois fatiguer en fin de journée...

If c.Font.Color = 2 Then c.ClearContents

Mille excuses .

Je te rassure moi aussi !

cela ne fonctionne pas surtout car il s'agit d'une couleur par mise en forme conditionnelle et je n'arrive pas à la récupérer ....

Evidemment !

Et quelle est la condition de mise en forme ?

voilà :

MFC :

pas de couleur de fond

écriture blanche

sans titre

On peut essayer ainsi :

Sub test()
    Dim plage As Range, c As Range
    Set plage = ActiveSheet.Range("à définir")
    Application.ScreenUpdating = False
    For Each c In plage
        If WorksheetFunction.CountIf(plage, c.Value) = 1 Then _
         c.EntireRow.Hidden = True
    Next c
    plage.SpecialCells(xlCellTypeVisible).ClearContents
    plage.Rows.Hidden = False
    Application.ScreenUpdating = True
End Sub

Mais attention, ta MFC en masquant les valeurs en double masque les deux, en suivant la MFC on élimine les deux..)

Cordialement.

Bonjour Mferrand

Un grand merci pour ton code qui fonctionne très bien

Je vais pouvoir avancer sur mon programme !

je te souhaite un bon dimanche et encore merci de ton temps.

Mag

Rechercher des sujets similaires à "supprimer colonne couleur police"