Transférer des lignes

Bonjour,

J'ai deux feuil:
feuil1: contient une base de donnéés
feuil2: vide
à chaque fois je souhaite copier des ligne de la feuill1 (juger si la 2ème colonne est 0) vers la feuils 2
Ps: la feuil2 doi être initialiser à chaque début du mmacro afin d'écraser la résultat en avale
merci

2 réponses

  1. Salut,

    essaye avec ça:

    Sub copyLigne()
    Dim cpt As Integer
    cpt = 1
    Sheets("Feuil2").Activate 'activer la feuil2
    Cells.ClearContents
    Sheets("Feuil1").Activate 'activer la feuil1
    nbliF1 = Cells(Sheets("Feuil1").Rows.Count, "A").End(xlUp).Row 'nombre de ligne de la feuil1
    For i = 1 To nbliF1
    If Cells(i, 2) = 0 Then 'cas pour cellules B1, B2, B3.....
    Rows(i).Copy 'copy la ligne
    Sheets("Feuil2").Activate 'activer la feuil2
    Rows(cpt).Select
    ActiveSheet.Paste
    cpt = cpt + 1
    End If
    Next
    Application.CutCopyMode = False
    End Sub
    1. Bonjour,

      Il faut absolument éviter d'utiliser .Select et .Activate, c'est une des premières sources d'erreur sous VBA !!!
      Éviter aussi d'utiliser le presse papier.
    2. alors comment faire !
  2. Merci beaucoup pour vos effort mail malheureusement il y a qualque chose qui cloche. En effet, voila ce que ça donne ![image:https://img-19.ccm2.net/eTIaX3zNKSaRU6--HkY3EeDgdag=/cdaf8232c9e84c1aa
    1235fba80b2bd37/tmp/q.PNG|389px||center]
    1. et le resultat
    2. Rajoute : Sheets("Feuil1").Activate
      apres : ActiveSheet.Paste