Select premiere cellule de couleur donnée

  • Initiateur de la discussion Initiateur de la discussion KIM
  • 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 !

KIM

XLDnaute Accro
Bonjour le forum,
J'ai pu créer avec l'aide du forum mon fichier de synthese et optimiser le code. A la fin j'ai voulu supprimer les colonnes et les lignes vides. Le titre général qui se trouvait sur ces colonnes ou lignes supprimées et lui aussi supprimé.
CAS 1: Couleur dans une ligne
Je remplis par vba les cellules ci-dessous par les codes couleurs 6, 41 et 10
(macro Couleur_Range)
.Range('B5:F5').Interior.ColorIndex = 6
.Range('I5:K5').Interior.ColorIndex = 41
.Range('N5😛5').Interior.ColorIndex = 10

Comment je peux ecrire dans une macro le code suivant:
Dans la ligne 5, couleur_texte = 'rouge' et Gras
Remplir la 1ère cellule de code_couleur 6 par la valeur = 'Commandes'
Remplir la 1ière cellule de code_couleur 41 par la valeur =' Factures'
Remplir la 1ière cellule de code_couleur 10 par la valeur = 'Reste A FACTURERE'

meme chose si c'est pour la dernière cellule de chaque couleur ci-dessus

CAS2: Couleurs dans une colonne (Col B par exemple)
Ci-joint fichier avec les explications
Merci d'avance pour votre aide
KIM [file name=selectcoul_1.zip size=8841]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/selectcoul_1.zip[/file]
 

Pièces jointes

Bonjour kim

un exemple de code pour le cas 1, facilement adaptable au cas 2 (change la plage de la boucle for each)


Dim c As Range
Dim c6 As Byte, c10 As Byte, c41 As Byte

For Each c In Range('b5😛5')
       
Select Case c.Interior.ColorIndex
               
Case 6:
                       
If c6 = 0 Then
                                c = 'Commandes'
                                c6 = 1
                       
End If
               
Case 41:
                       
If c41 = 0 Then
                                c = 'Factures'
                                c41 = 1
                       
End If
               
Case 10:
                       
If c10 = 0 Then
                                c = 'Reste A FACTURER'
                                c10 = 1
                       
End If
       
End Select
Next c


salut
 
re

j'avais pas vu cette petite phrase.

il suffit de faire la boucle à l'envers :


Dim i As Integer
Dim c6 As Byte, c10 As Byte, c41 As Byte

For i = 16 To 2 Step -1
       
With Cells(5, i)
               
Select Case .Interior.ColorIndex
                       
Case 6:
                               
If c6 = 0 Then
                                        .Value = 'Commandes'
                                        c6 = 1
                               
End If
                       
Case 41:
                               
If c41 = 0 Then
                                        .Value = 'Factures'
                                        c41 = 1
                               
End If
                       
Case 10:
                               
If c10 = 0 Then
                                        .Value = 'Reste A FACTURER'
                                        c10 = 1
                               
End If
               
End Select
       
End With
Next i


salut
 
- 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

Discussions similaires

Réponses
4
Affichages
550
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
654
Retour