Copier Coller ligne si condition, sur une autre feuille

Bonjour à toutes et à tous,

Je sais que ce problème a été posé plusieurs fois, mais il est difficile pour moi d'arriver/d'adapter à ce que je recherche ayant une base sur VBA du niveau de zéro ahah

Voici mon problème (j'ai ajouté mon excel en PJ):

J'ai trois feuilles excel: une "overview" et 2 "projets".

Je souhaite copier coller, sur ma feuille "overview", les lignes des feuilles "projet 1" et "projet 2", pour lesquelles leur cellule B contient "Overview" ou "Transfer part". (Et souhaite donc aussi les garder sur leur feuille respective)

J'ai adapté une macro trouvée sur internet, mais j'ai trois soucis (mon niveau étant nul):

- Quand une ligne est copiée collée sur ma feuille "overview", la boucle de la macro lui superpose la ligne suivante-trouvée, au lieu de mettre cette ligne suivante-trouvée à la suite.

- Je n'arrive pas à faire la recherche sur la feuille "projet 2" (Seulement "projet 1")

- Les lignes à copier contiennent des formules. J'essaie de ne pas copier la formule, mais seulement les resultas affichés sur mes feuilles "projets".

Merci pour vos aides

Guillaume.

29essaie-macro.xlsm (63.02 Ko)

Bonjour,

Une proposition à tester ...

Cordialement.

148essai-macro.xlsm (61.57 Ko)

Bonjour Gyrus,

C'est parfait exactement ce que je cherchais ! Merci énormément !

Il me manque juste à mettre le code pour effacer les entrées de la précédente macro sur la feuille "overview" quand je veux en relancer une nouvelle (et éviter les doublons).

Re,

Tu peux ajouter en début de procédure ...

    With Sheets("overview")
        .Range("A6", .Range("A6").End(xlDown)).Resize(, 5).Clear
    End With

Cordialement.

Re,

Yes, j'ai trouvé un truc du genre. Merci

Mais je viens de m'apercevoir d'un p'tit soucis, le formatage de mes cellules après lancement de la macro ne fonctionne plus.

En regardant les formules des formats des cellules, je me suis aperçu qu'elles sont devenu: =AND(#REF!="Overview";#REF!<=G$3;#REF!>G$3).

"#REF!" à la place de "$B6" par exemple. Cellules pour lesquelles leur valeur est modifié par la macro.

Je cherche ça sur internet, mais dur à expliquer en mot clés

8essai-macro.xlsm (65.91 Ko)

Re,

Yes, j'ai trouvé un truc du genre

Oui, mais tout est question de nuance.

La méthode Range.Delete supprime l’objet.

La méthode Range.Clear efface l’intégralité de l’objet.

Essaie avec

Sub CopyData()
Dim Ws As Worksheet
Dim CelDeb As Range, CelFin As Range
    Application.ScreenUpdating = False
    With Sheets("overview")
        .Range("A6", .Range("A6").End(xlDown)).Resize(, 5).Clear
    End With
    For Each Ws In Worksheets
        If Ws.Name <> "overview" Then
            Ws.Columns("A:E").AutoFilter
            Ws.Range("$A$1:$E$208").AutoFilter Field:=2, Criteria1:="=Overview", _
            Operator:=xlOr, Criteria2:="=Transfer part"
            Set CelFin = Ws.Range("A" & Rows.Count).End(xlUp)
            Set CelDeb = CelFin.End(xlUp)
            Ws.Range(CelDeb, CelFin).Resize(, 5).Copy Sheets("overview").Range("A" & Rows.Count).End(xlUp)(2)
            Ws.Columns("A:E").AutoFilter
        End If
    Next Ws
    Application.ScreenUpdating = True
End Sub

Cordialement.

Bonjour Gyrus,

Merci pour ta réponse, l'erreur était là. Cela fonctionne parfaitement ! T'es un chef !

Je met l'excel finalisé en PJ pour ceux que ça intéresse.

Le sujet est résolu.

Guillaume.

90essai-macro.xlsm (66.12 Ko)
Rechercher des sujets similaires à "copier coller ligne condition feuille"