Boucler une commande "copier" par la couleur de la cellule

Bonjour a tous,

je me permets de vous demander de l'aide car là, je sais même pas par ou commencer :S

je récupère tt les semaines une extraction d'un logiciel du travail (non modifiable)qui est un peu mal fait, en tt cas qui me facilite pas la tache

2mise-en-forme.xlsx (23.11 Ko)

comme vous verrez ci dessous et avec la PJ (onglet départ), les lignes entête de sous groupes sont en bleu (des fois vide des fois plusieurs lignes) et dessous les lignes de données constituantes.

depart

J'aimerai pouvoir insérer une colonne (ca, ca va :d) et coller en face de chaque ligne de donnée sont titre de ligne d'entête. (cf. pj. onglet résultat)

resultat

je vois pas comment boucler sur la couleur et coller tant que c'est "blanc" ou jusqu'au prochain bleu, tu colle la valeur A puis au prochain "bleu" de change de variable et tu repart a coller...

Je sais pas si j'ai été clair...mais la PJ devrait aider

Merci de votre aide

rebjr, avec le code c'est mieux, desolé...

ca insert bien le titre sur les lignes bleues mais ca fait pas le collage sur les données constituantes...lignes blanches

Sub test()
'insertion colonne
Columns("A:A").Select
    'Application.CutCopyMode = False
    'Selection.Copy
    Selection.Insert Shift:=xlToRight

Range("b3").Select

Dim derniere_ligne As Long
Dim valeur As String

derniere_ligne = Range("b65000").End(xlUp).Row
For i = 3 To derniere_ligne
If Range("b" & i).Interior.Color = RGB(17, 185, 214) Then ' test si bleu(r17;v185;b214)
    valeur = Range("b" & i).Value '(je fais ca pour pouvoir m'en resservir plus bas mais ca marche pas trop)
    Range("b" & i).Offset(0, -1).Value = valeur

    ''la methode est peu ete pas bonne, je refait un test ligne+1 ici pour voir si c'est blanc en dessous...pour copier une 1er fois le tite
    ' ca me semble mieux pour le test si intrieur blanc au prochain tour de boucle

            If Range("b" & i).Offset(1, 0).Interior.Color = RGB(0, 0, 0) Then
            Range("b" & i).Offset(1, -1).Value = valeur
            Else
            End If

Else
'teste si blanc
        If Range("b" & i).Interior.Color = RGB(0, 0, 0) Then ' "cellule blanche"
        Range("b" & i).Offset(0, -1).Value = Range("b" & i).Offset(-1, -1).Value '(la ligne du dessus sensé etre bleu)
        Else
        End If
End If
Next i

End Sub

bon bah l'erreure etait dans la declaration de couleur (j'suis bete)

Sub test()
'insertion ligne
Columns("A:A").Select
    'Application.CutCopyMode = False
    'Selection.Copy
    Selection.Insert Shift:=xlToRight

Range("b3").Select

Dim derniere_ligne As Long
Dim valeur As String

derniere_ligne = Range("b65000").End(xlUp).Row
For i = 3 To derniere_ligne

If Range("b" & i).Interior.Color = RGB(17, 185, 214) Then ' test si bleu(r17;v185;b214)
valeur = Range("b" & i).Value
    Range("b" & i).Offset(0, -1).Value = valeur

Else
'teste si blanc
        If Range("b" & i).Interior.ColorIndex = xlColorIndexNone Then ' "cellule vide - blanche"
            If Range("b" & i).Offset(-1, 0).Interior.Color = RGB(17, 185, 214) Then
            valeur = Range("b" & i).Offset(-1, -1).Value '(la ligne du dessus sensé etre bleu)
            Range("b" & i).Offset(0, -1).Value = valeur
            Else
            Range("b" & i).Offset(0, -1).Value = Range("b" & i).Offset(-1, -1).Value
            End If

        Else
        End If

End If
Next i

End Sub

voici le code si ca peu servir a d'autre.

CDT

Rechercher des sujets similaires à "boucler commande copier couleur"