Copier Coller des lignes à la suite dans une autre feuille
Bonjour,
J'essaye de coder une macro qui permettrait de copier coller des lignes de ma base de données qui se trouve en Feuil1 vers ma Feuil2 sous une condition (la 11ème colonne doit être négative). J'ai réussi à coder un code à l'aide de l'enregistreuse de macros et mes bases en vba. Le voici :
Sub Extraire_Actions()
Dim x As Integer
x = 2
With Workbooks("Gestion FSA_Forquart.xlsm")
While .Worksheets("Feuil1").Cells(x, 1) <> ""
If .Worksheets("Feuil1").Cells(x, 11) <= 0 Then
.Worksheets("Feuil1").Cells(x, 1).EntireRow.Copy
.Worksheets("Feuil2").Cells(x, 1).EntireRow.Select
ActiveSheet.Paste
End If
x = x + 1
Wend
End With
End SubMon problème est cependant le suivant: le collage se positionne au même endroit que la copie (normal me direz vous) alors que je souhaite que les lignes copiées se positionnent les unes à la suite des autres.
Je pense qu'il faut que j'utilise la fonction End(xlDown).Offset(1, 0) mais j'avoue que j'ai du mal à m'en servir.
Pourriez vous m'aider ? merci !
J'ai finalement réussi à répondre à ma question tout seul... Voici le code que j'ai trouvé pour ceux que ca intéresse:
Sub Extraire_Actions()
Dim x As Integer
Dim y As Integer
x = 2
y = 2
With Workbooks("Gestion FSA_Forquart.xlsm")
.Worksheets("Feuil1").Cells(1, 1).EntireRow.Copy
.Worksheets("Feuil2").Cells(1, 1).EntireRow.Select
ActiveSheet.Paste
While .Worksheets("Feuil1").Cells(x, 1) <> ""
If .Worksheets("Feuil1").Cells(x, 11) <= 0 Then
.Worksheets("Feuil1").Cells(x, 1).EntireRow.Copy
.Worksheets("Feuil2").Cells(y, 1).EntireRow.Select
ActiveSheet.Paste
y = y + 1
End If
x = x + 1
Wend
End With
End SubNéanmoins, il n'est vraiment pas très "sexy". Est ce que l'on pourrait m'aider à améliorer mon code afin que je progresse SVP ? Merci !