Bonjour tout le monde,
j'ai un gros problème avec ma VBA car elle met beaucoup beaucoup trop de temps à s’exécuter. Sa fonction est :
( j'ai deux feuilles excel, la 1er contient des données de chiffres de colonne A à E; et la 2eme feuilles des donnée de chiffres de colonne A à C )
de supprimer tout les lignes de la feuille 1 qui contient les 3 chiffres des 3 colonnes de la feuille 2, puis de passer à la suivant ligne de la feuille 2.
j'ai aussi remarquer que lorsque dans la feuille 1 il n'y a pas présence des conditions de la feuille 2 alors au lieu de terminer directement l'execution car rien à supprimer elle se met à buger.
La feuille 1 contient 100 000 lignes
la feuille 2 contient 4 000 lignes
si quelqu'un aurait une solution à mon problemme je lui en serrais reconnaissant merci !
bonne journée à tous
Voici ma macro :
Dim i As Integer, j As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.DisplayStatusBar = False
Application.EnableEvents = False
With Sheets("Feuil2")
For i = 1 To .Range("A" & Rows.Count).End(xlUp).Row
For j = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
If WorksheetFunction.CountIf(Range("A" & j & ":E" & j), .Range("A" & i)) > 0 And WorksheetFunction.CountIf(Range("A" & j & ":E" & j), .Range("B" & i)) > 0 And WorksheetFunction.CountIf(Range("A" & j & ":E" & j), .Range("C" & i)) > 0 Then
Rows(j).EntireRow.Delete
End If
Next j
Next i
End With
Application.ScreenUpdating = True
Application.Calculation = xlCalculationManual
Application.DisplayStatusBar = True
Application.EnableEvents = True
End Sub
j'ai un gros problème avec ma VBA car elle met beaucoup beaucoup trop de temps à s’exécuter. Sa fonction est :
( j'ai deux feuilles excel, la 1er contient des données de chiffres de colonne A à E; et la 2eme feuilles des donnée de chiffres de colonne A à C )
de supprimer tout les lignes de la feuille 1 qui contient les 3 chiffres des 3 colonnes de la feuille 2, puis de passer à la suivant ligne de la feuille 2.
j'ai aussi remarquer que lorsque dans la feuille 1 il n'y a pas présence des conditions de la feuille 2 alors au lieu de terminer directement l'execution car rien à supprimer elle se met à buger.
La feuille 1 contient 100 000 lignes
la feuille 2 contient 4 000 lignes
si quelqu'un aurait une solution à mon problemme je lui en serrais reconnaissant merci !
bonne journée à tous
Voici ma macro :
Dim i As Integer, j As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.DisplayStatusBar = False
Application.EnableEvents = False
With Sheets("Feuil2")
For i = 1 To .Range("A" & Rows.Count).End(xlUp).Row
For j = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
If WorksheetFunction.CountIf(Range("A" & j & ":E" & j), .Range("A" & i)) > 0 And WorksheetFunction.CountIf(Range("A" & j & ":E" & j), .Range("B" & i)) > 0 And WorksheetFunction.CountIf(Range("A" & j & ":E" & j), .Range("C" & i)) > 0 Then
Rows(j).EntireRow.Delete
End If
Next j
Next i
End With
Application.ScreenUpdating = True
Application.Calculation = xlCalculationManual
Application.DisplayStatusBar = True
Application.EnableEvents = True
End Sub