EXCEL: VBA pour tester si la ligne comporte u

Résolu/Fermé
PTHV
Messages postés
19
Date d'inscription
dimanche 4 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2009
- 7 mai 2008 à 13:55
 love - 2 nov. 2008 à 17:36
Bonjour,
Comment peut-on tester si une ligne comporte au moins 1 cellule avec une couleur de fond autre que le blanc ?
Merci

4 réponses

salut
0
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 194
7 mai 2008 à 14:21
bonjour,
avec cette macro entre autre
Sub ChcherCouleurFond()
Dim cel As Range
Dim a$
    Sheets("Feuil1").Activate 'A adapter au nom de la feuille
   ' a$ = "A1:" & Range("A1").SpecialCells(xlCellTypeLastCell).Address
   ' Range(a$).Select 'sélectionne toute la feuille
   'Ou faire la sélection voulue
    For Each cel In Sheets("feuil1").UsedRange
        b$ = cel.Address
        If cel.Interior.ColorIndex <> 2 Then 'correspond au blanc
            cel.Select
            Call MsgBox("Cette cellule n'a pas le fond blanc ?", vbYesNo, "Recherche cellule pas blanc")
        End If
    Next cel

End Sub

A+
-1
PTHV
Messages postés
19
Date d'inscription
dimanche 4 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2009

9 mai 2008 à 08:34
Bonjour,
Merci de votre réponse.
Je m'explique plus clairement. Ex:
sur chaque ligne, la plage des colonnes 1 à 5, le fond des cellules est colorié ou non. La cellule de colonne 7 sert à afficher le résultat s'il y a ou non une cellule au moins a une couleur de fond autre que le blanc.
si A1 à E1 pas de couleur de fond ---> G1 affiche 0 (ou vrai, ou n'importe quel code)
si dans la plage A2 à E2, il y a au moins 1 cellule avec couleur de fond autre que le blanc ---> G2 affiche 1 (ou faux, ou n'importe quel code)
etc
ci joint fichier exemple :
https://www.cjoint.com/?fjiH10JVur
Merci de votre aide
-1
michel_m
Messages postés
16571
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
27 juin 2022
3 277
9 mai 2008 à 09:22
Bonjour PTHV, lhermite,

Cette fonction pourra peut-^tre t'aider

Function tester_couleur(plage As Range) As Byte
For Each cellule In plage
If cellule.Interior.ColorIndex <> -4142 Then
'si pas de couleur: -'4142(transparent) si couleur blanche:2
tester_couleur = 1
Exit Function
End If
Next
tester_couleur = 0
End Function

si tu préfères VRAI-FAUX tu passes la fonction en " as boolean" avec TRue et FALSE au lieu de 1 et 0

A+
Michel
-1
PTHV
Messages postés
19
Date d'inscription
dimanche 4 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2009

10 mai 2008 à 09:07
Merci pour votre macro, mais je ne parviens pas à l'appliquer (problème de compréhension de ma part?)
-1
michel_m
Messages postés
16571
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
27 juin 2022
3 277
10 mai 2008 à 09:22
Bonjour,

Ci joint tite démo...
https://www.cjoint.com/?fkjvI610M1

Cordialement,
Michel
-1
PTHV
Messages postés
19
Date d'inscription
dimanche 4 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2009

10 mai 2008 à 21:11
Bonsoir,
Merci beaucoup de votre aide.
Ca répond à ma demande, à un tout petit détail près: peut-il la faire automatiquement, sans recalcul par copier formule ?
Sinon, ça marche très bien. Un grand MERCI
Bon WE
-1