Macro copier coller sous conditions

Bonjour à tous et à toutes,

Je souhaite copier et coller dans une autres feuilles des lignes entières en fonction du caractère vide ou non d'une des colonnes constituant la ligne.

J'ai écris, en piochant des lignes dans divers forum, la macro suivante:

Sub Copytri()

 Dim iLI As Date
    Dim iRE As Date
    Dim LI As Worksheet
    Dim RE As Worksheet
     Set LI = Worksheets("Extraction")
    Set RE = Worksheets("BS rendu via Sirius")
     iRE = 2
     For iLI = 2 To 65536
        If LI.Cells(iLI, 6).Text <> "" Then
        LI.Range(iLI & ":" & iLI).Copy RE.Range(iRE, 1)
            iRE = iRE + 1
        End If
    Next

End Sub

Cependant, lorsque je lance la macro, une erreur d'execution '1004' apparaît!

Elle concerne la ligne:

LI.Range(iLI & ":" & iLI).Copy RE.Range(iRE, 1)

Si vous avez des idées de raisons pour laquelle cette ligne est fausse, n'hésitez pas!

Merci d'avance!

Bonjour

Il faut quelques précisions

D'un coté tu déclare iRE comme date puis plus tu lui attribues le chiffre 2

Dans cette instruction --> RE.Range(iRE, 1), tu devrais avoir RE.cells(iRE, 1)

Mais bon là aussi vu que ce sont des dates...

Pourquoi aussi aller jusque 65536 lignes ?

Je pense que le mieux serait d'avoir un fichier exemple pour te répondre correctement

A te relire

Re,

Dans l'attente de la réponse à mes questions dans mon post précédent, essaie comme ceci

Sub Copytri()
Dim iLI, iRE
Dim LI As Worksheet, RE As Worksheet
Set LI = Worksheets("Extraction")
Set RE = Worksheets("BS rendu via Sirius")
iRE = 2
For iLI = 2 To 65536
    If LI.Cells(iLI, 6).Value <> "" Then
        LI.Rows(iLI & ":" & iLI).Copy RE.Cells(iRE, 1)
        iRE = iRE + 1
    End If
Next
End Sub

Si ok, reste le 65536 à changer, sinon tu boucles jusqu'en bas de ta feuille même si pas de valeur.

Amicalement

Bonjour! Tout d'abord, merci de ta réponse!

Pour tout te dire, je ne sais pas comment définir mon iRE car en fait, il correspond à une date, mais sous la forme "15/05/2014 - 13:42" qui n'est donc pas reconnue par Excel en tant que date.

Dans mon code, je suis allé jusqu'à 65536 car certaines cases sont vides et je n'ai pas envie de faire une boucle qui s'arrête dès qu'elle tombe sur une case vide!

Je te joins mon fichier pour que tu comprennes mieux mon problème. La macro dont nous parlon s'appelle "copytri", "copytri2" étant une variant que j'ai essayé en attendant mais qui ne fonctionne pas non plus >.<

Lien :


Génial! Je viens d'essayer ce que tu m'a conseillé et ça fonctionne! Merci beaucoup

Par contre pour éviter de faire l'action jusqu'à la ligne 65536 je ne vois pas trop comment faire... pourraîs-tu m'aiguiller?

Re

Vois le code complete adapter pour éviter toutes les lignes. On se base sur la colone A

Sub Copytri()
Dim iLI, iRE
Dim LI As Worksheet, RE As Worksheet
Set LI = Worksheets("Extraction")
Set RE = Worksheets("BS rendu via Sirius")
iRE = 2
For iLI = 2 To LI.Range("A" & LI.Rows.Count).End(xlUp).Row
    If LI.Cells(iLI, 6).Value <> "" Then
        LI.Rows(iLI & ":" & iLI).Copy RE.Cells(iRE, 1)
        iRE = iRE + 1
    End If
Next
End Sub

Amicalement

Oui c'est parfait merci

Entre temps je m'étais penché dans des codes sur internet pour trouver la solution.

Celle -ci est plus simple!

Encore merci Dan!

Rechercher des sujets similaires à "macro copier coller conditions"