VBA: macro copier coller sous condition

Résolu
Bonjour,

Je débute tout juste en VBA.
Je souhaite créer une macro qui copie une ligne sous 3 conditions (cellule enF ocuppée alors que cellule B et C sont vides).
Je veux ensuite repertorier les lignes concernées dans une autre feuille ("Annnexe 2").

Ci dessous le code qui me pose problème.

Sub BC1()

Dim i as integer
For i= 1 to 500

If Not IsEmpty(Range("F"&i)) And Range("B"&i).Value="" And Range("C"&i).Value=""

Then Row("i").copy
        Sheets("Annexe2").Select
        Derlig=Range(A1048576).End(xlUp).Row+1
        Cells(Derlig,1).Activate
        Selection.Paste
        Sheets("Feuilled'origine").Activate

End If
End Sub


Merci par avance pour votre aide.

3 réponses

  1. bonjour

    un code a adapter à ta situation

    Public Sub BC1()  
    Dim i As Integer, derlig As Long  
    With Sheets("feuil1")  
      For i = 1 To 10  
        If Not IsEmpty(.Range("F" & i)) And .Range("B" & i).Value = "" And .Range("C" & i).Value = "" Then  
          derlig = Sheets("feuil2").Range("A65536").End(xlUp).Row + 1  
          .Rows(i).Copy Sheets("feuil2").Range("A" & i)  
        End If  
      Next i  
    End With  
    End Sub


    bonne suite
    1. Merci pour la rapidité de ta réponse ccm!
      Je teste de suite.

      Bonne soirée
      1. Bonjour ccm81,

        Je souhaiterai adapter ta macro qui correspond à ce que je recherche. C'est-à-dire:

        Une macro qui copie une plage d'une feuille sur une autre feuille (copier/coller en valeurs) mais à la suite de la plage précédente occupée. C'est pour créer un historique des données.

        Ta macro me convient bien mais quand je la fait fonctionner elle ne colle qu'une ligne. Pourrais-tu m'expliquer les étapes de ton code pour que je l'adapte selon ce que j'ai?

        Je te remercie pour ton aide,

        Koala