Macro Coloriage de cellules

  • Initiateur de la discussion Initiateur de la discussion copahotl
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

copahotl

Guest
Macro de recherche de cellules

Bonjour à tous,

J'aimerais savoir si la création d'une macro répondant à mes besoins est faisable.

J'aimerais que la macro recherche toutes les cellules qui sont coloriées dans une couleur précise (jaune ici). Une fois qu'elle les a trouvées, j'aimerais qu'elle vérifie que la cellule située à sa gauche (c'est-à-dire à gauche de chaque cellule coloriée en jaune) est vide. Si c'est le cas, elle y met un 0. Par contre, si elle est non vide, elle ne fait rien.

Qu'en pensez-vous ?

Cordialement,

Copahotl
 
Dernière modification par un modérateur:
Re : Macro Coloriage de cellules

Bonjour le fil, copahotl

Vois l'exemple ci-dessous, la plage (en vert) est à adapter
Code:
For Each c In [COLOR=green][B][B2:F10][/B][/COLOR]
   If c.Interior.ColorIndex = 6 And c.Offset(, -1) = "" Then c.Offset(, -1) = 0
Next
A plus
 
Re : Macro Coloriage de cellules

Merci pour ta réponse Soenda.

Ce code fonctionne effectivement pour des cellules dont le format (fond jaune) a été changé manuellement. Malheureusement pour moi, les cellules qui ont un fond jaune sont issues d'une mise en forme conditionnelle.
J'ai également trouvé un code pour compter les cellules qui ont un fond d'une certaine couleur. Pareil, les cellules qui ont un fond jaune et qui sont issues d'une MFC ne sont pas prises en compte.
Aucun des codes ne les prend en compte. Comment puis-je m'en sortir ?

Cordialement
 
Re : Macro Coloriage de cellules

Slt Copahotl, Soenda,

Je ne sais pas si j'ai bien compris, mais essaie ces macros dans un bouton sur ta feuille, avec la plage à adapter.
Code:
Private Sub CommandButton1_Click()
    
    Dim c As Range
    Dim MaPlage As Range
    
    Set MaPlage = [A1:M40] 'A MODIFIER
    
    For Each c In MaPlage
        If c.FormatConditions.Count <> 0 Then
            If c.Offset(0, -1) = "" Then c = 0
        End If
    Next c

End Sub
Si tu préfères qu'elles restent jaunes même avec le zéro, tu fais comme ceci (tjrs si j'ai bien compris 😀)
Code:
Private Sub CommandButton1_Click()
    
    Dim c As Range
    Dim MaPlage As Range
    
    Set MaPlage = [A1:M40] 'A MODIFIER
    
    For Each c In MaPlage
        If c.FormatConditions.Count <> 0 Then
            If c.Offset(0, -1) = "" Then
                c = 0
                c.Interior.ColorIndex = 6
            End If
        End If
    Next c

End Sub
Attention, elles ne perdront pas pour autant leur MFC !

Cdt, Hulk.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
623
Réponses
5
Affichages
690
Retour