1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| Sub Extract()
'pour info, j'ai utilisé les noms de code des feuilles. Les feuilles peuvent ainsi être déplacées ou renommées
'sans que le code ne soit impacté
Dim NbrLigBD As Long
Dim NumLigEX As Long
'on détermine la dernière ligne dans la feuille BD (j'utilise ici la fonction Excel NBVAL)
NbrLigBD = Application.CountA(Feuil1.Range("A:A"))
'on determine la dernière ligne de la feuille Extract (Autre méthode pour déterminer la dernière ligne
NumLigEX = Feuil2.Range("A" & Rows.Count).End(xlUp).Row + 1
'on parcourt le tableau BD de bas en haut
'ceci à cause de la suppression de ligne qui peut devenir génante
For Lig = NbrLigBD To 2 Step -1
'si la colonne D (N°4) de la ligne en cours de traitement est vide
If Feuil1.Cells(Lig, 4).Value = "" Then
'on transfert dans la feuille Extract les données sur la dernière ligne
Feuil2.Cells(NumLigEX, 1).Value = Feuil1.Cells(Lig, 1).Value
Feuil2.Cells(NumLigEX, 2).Value = Feuil1.Cells(Lig, 2).Value
Feuil2.Cells(NumLigEX, 3).Value = Feuil1.Cells(Lig, 3).Value
Feuil2.Cells(NumLigEX, 4).Value = Feuil1.Cells(Lig, 4).Value
'Le tablleau à 1 ligne de Plus
NumLigEX = NumLigEX + 1
'suppression de la ligne dans la feuille BD
Feuil1.Cells(Lig, 4).EntireRow.Delete
End If
Next
End Sub |
Partager