VBA: macro copier coller sous condition

Résolu/Fermé
ana41 Messages postés 2 Date d'inscription dimanche 5 juin 2011 Statut Membre Dernière intervention 10 juin 2011 - 5 juin 2011 à 17:32
Koalacid Messages postés 70 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 8 mars 2016 - 30 sept. 2014 à 14:13
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

ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 5/06/2011 à 19:00
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
0
Koalacid Messages postés 70 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 8 mars 2016 2
30 sept. 2014 à 14:13
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
0