Copier une ligne sur un autre onglet

Résolu
chrisdemontigny Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   -  
chrisdemontigny Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je souhaiterais copier une ligne d'un onglet pour la rajouter sur un autre onglet à condition que la case de la ligne concernée en colonne A comprenne la valeur "Ok". (pour information, il peut y avoir aussi "en cours", auquel on ne fait rien).
Je pense qu'il faut faire un FOR EACH pour aller tester toutes les valeurs sur la colonne A puisqu'il n'y a pas d'espace.
Par contre, je n'arrive pas à coller la ligne. En fait, je n'arrive pas à avoir la forme de code pour copier une ligne.

Voici ci-dessous ce que j'ai commencé mais ça bloque au niveau de la ligne de copie.

Sub test()
Set etatmission = Range(Range("A1").offset(1,0), Range("A1").End(xlDown))
    For Each etat In etatmission
        Select Case etat.Value
            Case "ok"
                Sheets("second tableau").Range("a1").End(xlDown).Offset(1, 0).Row = etat.row
        End Select
    Next
End Sub


Merci de votre aide par avance.
A voir également:

3 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bpnjour,

Combien as tu de lignes (environ) ?

quelle est la dernière colonne (toujours très lourd de trimbaler une ligne entière) ?

Au besoin, mettre le classeur sans données confidentielles en pièce jointe sur http://cijoint.fr/
et coller le lien proposé dans le message de réponse

Dans l'attente

0
chrisdemontigny Messages postés 64 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Michel,

en effet, nous ne sommes pas obligés de recopier la ligne puisque je n'ai besoin que des des colonnes A à M.
J'aurais je pense au plus 20 lignes à transférer au cours d'une journée.
Si sur la case A18 est marqué "ok", alors je devrai copier les cases A18 à M18.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
on ne boucle que sur le nomnre de "ok"
"ok" sensible à la casse
Option Explicit
'----------
Sub copier_si_ok()
Dim Derlig As Byte, Nbre As Byte, Cptr As Byte, Lig1 As Byte, Lig2 As Byte, T_ok

Application.ScreenUpdating = False
Sheets(2).Range("A2:M30").ClearContents

With Sheets(1)
Derlig = .Columns("A").Find("*", , , , , xlPrevious).Row
Nbre = Application.CountIf(.Range("A2:A" & Derlig), "ok")
Lig1 = 1
Lig2 = 1
For Cptr = 1 To Nbre
Lig1 = .Columns("A").Find("ok", .Cells(Lig1, "A"), xlValues).Row
T_ok = .Range(.Cells(Lig1, "A"), .Cells(Lig1, "M"))
Lig2 = Lig2 + 1
Sheets(2).Range("A" & Lig2).Resize(1, 13) = T_ok
Next
End With
Sheets(2).Activate
End Sub

0
chrisdemontigny Messages postés 64 Date d'inscription   Statut Membre Dernière intervention  
 
merci beaucoup!
Je ne connaissais pas trop les tableaux et la méthode find.
Maintenant, c'est ok!
0