Macro copier coller une plage de données colorée

Bonjour à tous et à toutes!

J'ai consulté quelques sujets concernant le problème qui me fait face, cela m'a permis d'écrire une macro mais celle-ci ne fonctionne pas excactement comme je le souhaite.

Je vous explique mon problème !

J'ai une plage de donnée. J'ai fais une macro qui colore les lignes selon la valeur de deux des cellules de la ligne.

Cette macro fonctionne comme je le souhaite. Mais, je veux ensuite copier ces lignes colorées afin de les coller dans ma deuxième feuille. J'ai alors écrit une macro mais celle-ci ne copie-colle que la première case en haut à gauche de ma plage de données.

Voici mon code :

Dim iRI     'On déclare iRI
    Dim RI As Worksheet     'On définie RI comme feuille
    Set RI = Worksheets("Bs rendu en Papier") 'On le nomme

            iRE = 2     'On définit la valeur de iRE

                For iRE = 2 To RE.Cells.Find("*", , , , , xlPrevious).Row
                        If RE.Range("A" & iRE).Interior.Color = RGB(225, 15, 15) Then
                        RE.Range("A" & iRE).Copy RI.Range("A2")
                        End If
                Next

Et voici mon fichier exemple pour mieu comprendre le lien avec ma macro précédente.

S'il vous plaît, une aide serait la bien venue! Je vous remercie par avance de l'interêt que vous portez envers mon problème.

Amicalement

Florian

Bonjour

D'abord :

  • évite de colorier tes lignes sur toute ta feuille lorsque tu ne l'utilises que partiellement
  • évite aussi les accents comme dans le nom du code.

Pour le nom de tes feuilles, évite aussi les espaces. Mets plutôt un caractère souligné "_" . cela évite des soucis pour la gestion des codes.

Mets ceci plutôt : "Bs_rendu_en_Papier"

Ton code adapté à ta demande

Sub probleme()

Dim iRE As Integer
Dim RE As Worksheet
Set RE = Worksheets("Extraction")

iRE = 2
    For iRE = 2 To Cells.Find("*", , , , , xlPrevious).Row
        If RE.Range("F" & iRE).Value = "" And RE.Range("K" & iRE).Value > 7 Then
            RE.Range("A" & iRE & ":K" & iRE).Interior.Color = RGB(225, 15, 15)
        End If
    Next

Dim iRI As Integer  'On déclare iRE, iRI
Dim RI As Worksheet     'On définit RE comme feuille
Set RI = Worksheets("Bs rendu en Papier") 'On le nomme

    iRE = 2     'On définit la valeur de iRE
    For iRE = 2 To RE.Cells.Find("*", , , , , xlPrevious).Row
            If RE.Range("A" & iRE).Interior.Color = RGB(225, 15, 15) Then
                RE.Range("A" & iRE).Copy RI.Range("A" & RI.Range("A" & RI.Rows.Count).End(xlUp).Row + 1)
            End If
    Next

End Sub

Si ok, n'omet pas de cloturer le fil

Cordialement

Salut Dan! Merci beaucoup pour ta réponse qui est toujours aussi satisfaisante que les autres.

Elle me convient (même si je dois adapter les modifications que tu as faites pour obtenir le résultat que je souhaite), je vais donc la valider pour cloturer le fil!

Merci beaucoup pour les conseils que tu donnes aussi.

Amicalement

Florian

Rechercher des sujets similaires à "macro copier coller plage donnees coloree"