Select premiere cellule de couleur donnée

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:p5').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

  • selectcoul_1.zip
    8.6 KB · Affichages: 21

Hervé

XLDnaute Barbatruc
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:p5')
       
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
 

Hervé

XLDnaute Barbatruc
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
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 899
Membres
103 982
dernier inscrit
krakencolas