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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| Sub SuppLign()
Dim Tblo() As Variant
Dim orders As ListObject
Dim cel As range
Dim F As Long
'*********************** ENLEVER LES LIGNES DONT LA CELLULE DE LA COLONNE f EST À 0 *****************************
Workbooks("01 GENERAL.xlsx").Activate '>>>>>>>>>>>>NOM DU CLASSEUR
Application.ScreenUpdating = False
'Sheets("Feuil1").Activate
Set orders = Sheets("Sheet1").ListObjects("Tableau1") '>>>>>>>>>>>> NOM DE LA FEUILLE
For Each cel In orders.DataBodyRange.Columns(7).Cells '»»»»»»»»»»»»»»»»»»» sélectionne les lignes à conserver
If cel = "1" Then
F = F + 1
ReDim Preserve Tblo(1 To 23, 1 To F)
Tblo(1, F) = cel.Offset(0, -6).Value
Tblo(2, F) = cel.Offset(0, -5).Value
Tblo(3, F) = cel.Offset(0, -4).Value
Tblo(4, F) = cel.Offset(0, -3).Value
Tblo(5, F) = cel.Offset(0, -2).Value
Tblo(6, F) = cel.Offset(0, -1).Value
Tblo(7, F) = cel.Value
Tblo(8, F) = cel.Offset(0, 1).Value
Tblo(9, F) = cel.Offset(0, 2).Value
Tblo(10, F) = cel.Offset(0, 3).Value
Tblo(11, F) = cel.Offset(0, 4).Value
Tblo(12, F) = cel.Offset(0, 5).Value
Tblo(13, F) = cel.Offset(0, 6).Value
Tblo(14, F) = cel.Offset(0, 7).Value
Tblo(15, F) = cel.Offset(0, 8).Value
Tblo(16, F) = cel.Offset(0, 9).Value
Tblo(17, F) = cel.Offset(0, 10).Value
Tblo(18, F) = cel.Offset(0, 11).Value
Tblo(19, F) = cel.Offset(0, 12).Value
Tblo(20, F) = cel.Offset(0, 13).Value
Tblo(21, F) = cel.Offset(0, 14).Value
Tblo(22, F) = cel.Offset(0, 15).Value
Tblo(23, F) = cel.Offset(0, 16).Value
End If
Next cel
Cells.EntireRow.Delete
' s'arrête ici
range("A1:W" & F) = Application.WorksheetFunction.Transpose(Tblo) 'pour les feuilles de plus de 250k lignes
' il apparaît un message d'erreur 13 Incompatibilité de type ???
ActiveWorkbook.Save
Application.ScreenUpdating = True
End Sub |
Partager