Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 à 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 !
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Guellila,
Un essai en PJ.
J'utilise de façon temporaire la colonne I. Si elle est occupée dans votre fichier je ferais un peu plus complexe.
Je serais curieux de voir quel temps vous mettez.
 

Pièces jointes

  • Supprimer Ligne VBA.xlsm
    29.8 KB · Affichages: 25

JBARBE

XLDnaute Barbatruc
Bonsoir à tous,
Un exemple de fichier avec 16083 lignes en 12,688 s !
Plus de 900 000 lignes en peut de temps est impossible !
Bonne nuit !
 

Pièces jointes

  • Supprimer-Ligne-VBA-3-1.xlsm
    806 KB · Affichages: 6

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.
 

guellila

XLDnaute Junior
Bonjour JBARBE
je confirme que la solution de sylvanu a bien exécuté l'opération en seulement 13 Sec pour plus de 900000 lignes , si vous voulez je peux partager avec vous le fichier en question et vous pouvez faire le test et me donner votre resultat

cdt
 

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
983
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…