XL 2016 Supprimer Lignes

guellila

XLDnaute Junior
Bonjour
votre support svp , j'ai un fichier ou je veux supprimer toutes les ligne contenant les valeurs (100 , 1000 , 2000 et - ) dans la colonne F avec une macro VBA , juste le petit soucis que le fichier original contiens plus de 900000 lignes et j'aimerais bien que la macro exécute cette opération dans une duré qui ne dépasse pas une minute si possible

cdt
 

Pièces jointes

  • Supprimer Ligne VBA.xlsx
    16.6 KB · Affichages: 9

JBARBE

XLDnaute Barbatruc
Bonjour
votre support svp , j'ai un fichier ou je veux supprimer toutes les ligne contenant les valeurs (100 , 1000 , 2000 et - ) dans la colonne F avec une macro VBA , juste le petit soucis que le fichier original contiens plus de 900000 lignes et j'aimerais bien que la macro exécute cette opération dans une duré qui ne dépasse pas une minute si possible

cdt
Bonjour à tous,
900 000 lignes c'est énorme !
Hors compétence laisse cela à (macros plus rapide que la mienne) :
EXEMPLE avec LBound et UBound
VB:
Option Explicit

Option Base 0
' Test plus court
Sub test1()
Dim Montab As Variant, cmpt1 As Long, cmpt2 As Long, MacroDebut
'On Error GoTo Erreur
MacroDebut = Now
Montab = Range("A1:J65000").Value
For cmpt1 = LBound(Montab, 1) To UBound(Montab, 1)
For cmpt2 = LBound(Montab, 2) To UBound(Montab, 2)
Montab(cmpt1, cmpt2) = Montab(cmpt1, cmpt2) * 2 + 3
Next cmpt2
Next cmpt1
Range("A1:J65000").Value = Montab
MsgBox "Durée d'exécution: " & Format(Now - MacroDebut, "hh:mm:ss") '00:00:03
'Erreur:
'MsgBox "Une erreur est survenue..."
End Sub

Job75
chris
etc......
Bonne journée !
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

[Suggestion en passant]
Et en faisant la chose à l'envers?
"Filtrer" sur une autre feuille les lignes dont la cellule en F n'est pas égale aux valeurs qui pilotent la suppression des lignes sur la feuille Source.
(en passant par un tableau également)
 

Staple1600

XLDnaute Barbatruc
Re

[Une autre suggestion avant le dodo]
Le filtre avancé
(testé sur 6000 lignes, c'est immédiat)
avec comme critère cette formule (en J2)
=ET(F2<>100;F2<>1000;F2<>2000;F2<>"-")

NB: La zone de critère sera donc : $J$1:$J$2
(J1 devant resté vide)

Evidemment, avec 900 000 lignes, Excel devrait tousser.
(Je vous laisse tester)

Moi, je ne peux le faire, car tous les fichiers Excel que j'utilise in RL ne contienne que 1600 lignes. ;)
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Guellila, Jbarbe, Staple,

Le temps d'exécution dépend de votre bécane, de la version Windows, XL, de votre taille RAM etc, etc.
Sur mon PC j'obtiens :
- 10k lignes 0.125s
- 50k lignes 0.531s
- 100k lignes 1.094s

Ce qui ferait à la louche 10s pour 900k lignes, donc du même ordre de grandeur
( sur un vieux I5-2300 2.8GHz 8Go ram, Win10, XL2007 )

( mais sur mon PC 900k lignes sont impossibles à copier coller ;) surement pas suffisamment de RAM dispo pour XL )
 

Discussions similaires

Réponses
26
Affichages
896

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 536
dernier inscrit
komivi