Bonjour,

J'expérimente un problème, lorsque le tableau excel dont j'exécute le code dépasse les 260,000 lignes environ. Autrement le code fonctionne très bien

Le code roule et s'arrête à: «range("A1:W" & F) = Application.WorksheetFunction.Transpose(Tblo)» . Je ne comprends pas. Avez-vous des suggestion?

Voici mon code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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