Copies de lignes d'une feuille à l'autre si une condition est "vrai"

Lucabelga

XLDnaute Nouveau
Bonjour,
Dans une simple liste j'ai placé un bouton de sélection qui génère un TRUE ou FALSE en colonne 9.
L'idée est de copier toutes les lignes de la Feuille1 ayant en colonne 9 "TRUE" vers la feuille 2 sans laisser de lignes vides.
Ici je le fais avec un bouton de commande mais ce pourrait être systématique aussi.
Ceci de manière à reprendre en Feuille2 uniquement les articles sélectionnés (exemple en Feuille3 "Devraitfaire").
Une solution semblait se dessiner avec un exemple sur youtube qui fonctionne effectivement dans le cas d'une liste d'exemples sans formatage mais si on reprend l'idée dans une vrai feuille avec mise en page et lignes vides, le système retourne systématiquement un "RUN TIME ERROR".
Quelqu'un aurait une solution plus simple (peut-être sans VBA) ou une idée pour résoudre cet exemple qui devrait aider pas mal d'utilisateurs?
En vous remerciant.
Voici le code:
a= worksheets("sheet1").Cells(Rows.Count,1).End(x1up).Row
For i=2 to a
If Worksheets("Sheet1").Cells(i,9).Value="TRUE" then

Worksheets("Sheet1").Rows(i).copy
Worksheets("sheet2").Activate
b=Worksheets("worksheet2").Cells(Rows.Count,1).End(x1Up).Row
Worksheets("sheet2").Cells(b+1,1).Select
ActiveSheet.Paste
Worksheets("sheet1").Activate
End If
Next

Application.CutCopyMode = False
ThisWorkbook.worksheets("Sheet1".Cells(1,1).Select
End Sub
 

Pièces jointes

  • Test case.xlsx
    17.1 KB · Affichages: 6

don_pets

XLDnaute Occasionnel
Hello,

Tu peux peut être partir sur une idée comme ça :

VB:
Sheets("Sheet1").Activate

For i = 2 To Range("A6553").End(xlUp).Row

        If Cells(i, 9) = "truc" Then ' Ici tu mets ta condition
        
        Range(Cells(i, 1), Cells(i, 8)).Copy
        derligne = Sheets(2).Range("A65535").End(xlUp).Row + 1
          
        Sheets(2).Activate
        Sheets(2).Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteAll, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
        
        End If
Next i

Enjoy
 

Discussions similaires

Statistiques des forums

Discussions
312 149
Messages
2 085 772
Membres
102 970
dernier inscrit
JMaurice