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

gros fichier - lignes à supprimer

  • Initiateur de la discussion Initiateur de la discussion gab
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gab

Guest
Bonjour,

J'ai un document Excel assez conséquent (40 000 lignes ou plus) et je souhaite effectuer une macro qui permettrait d'effacer RAPIDEMENT les lignes dont la cellule en colonne I ne contient pas 'MUT' :

j'avais fait ceci, mais cela ne marche plus, et de plus, c'était extrêmement lent... auriez vous une solution ?

Dim L As Integer
With Sheets(1)
For L = 2 To .Range('I65536').End(xlUp).Row
If Left(.Range('I' & L).Text, 3) <> 'MUT' Then
.Range('I' & L).ClearContents
End If
Next
On Error Resume Next
.Range('I2:I' & L).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With

merci beaucoup 🙂
 
Bonjour gab,

Y a t'il une raison particulière à se que tu effaces le contenu avant d'effacer la ligne ?

Sinon, essaie :

application.screenupdating=false
for c= range('I65536').end(xlup).row to 2 step -1
If Left(Range('I' & c).Text, 3) <> 'MUT' Then
Range('I' & c).EntireRow.Delete
End If
Next
application.screenupdating=true

Je n'ai pas testé mais ça doit pas être très loin.
Autre chose, ce code ne fonctionne que si 'MUT' est placé en début de chaine. C'est à dire les trois premiers caractères en partant de la gauche.
Code à placer dans la feuille (dans feuil1 ou sheet1 dans VBE).

C'est une solution. Il y en a sûrement d'autres plus rapide.
J'espère avoir bien lu le sujet.


Abel.
 
Bonjour gab, Abel,

Ci-dessous une autre façon de faire peut-être un peu plus rapide :
Compte tenu de ce que tu indiques gab : 'effacer RAPIDEMENT les lignes dont la cellule en colonne I ne contient pas 'MUT'', j'en ai conclus qu'il fallait vérifier si la cellule contenait l'expression 'MUT', quelque soit sa position dans la chaine... Si toutefois, il faut tester la chaine 'MUT' systématiquement en début de chaine, il te faudra remplacer dans le code ci-dessus '*MUT*' par 'MUT*'.

Cordialement,
 
Merci pour votre aide précieuse.
En effet, je faisais un clear car les cellules contenant 'MUT' et les autres vides étaient toutes des résultats de formules (Vlookup). J'étais obligé des virer les formules... enfin je pense...
Quoiqu'il en soit, les deux propositions sont super sympa.

Encore merci.
 
Si je peux encore me permettre......
Juste avant d'utiliser la macro que vous m'avez rédigée, j'ai ceci :

Dim EndRow As Long
Dim EndCol As Long
EndRow = Range('A65536').End(xlUp).Row
EndCol = Range('IV1').End(xlToLeft).Column
Range(Cells(2, EndCol + 1), Cells(EndRow, EndCol + 1)).FormulaR1C1 = _
'=IF(VLOOKUP(RC[-3],'C:\\COD\\[fichier.xls]tableau'!R2C2:R100C5,4,FALSE)<>''MUTUEL'','''',''MUT'')'

C'est un petit bout de code qui positionne une formule sur toutes les lignes contenant des valeurs. Cela indique MUT si il trouve la valeur MUTUEL dans le fichier interrogé en Vlookup...

Le souci, c'est que cette macro tourne assez lentement aussi (du certainement au fait qu'il y a beaucoup de lignes à traiter), y a t'il moyen que cela se fasse plus rapidement ?
 
Re gab,

Pour ma part, je n'ai jamais été fan des formules Excel qu'on insère par VBA pour obtenir un résultat... Sauf obligation (par exemple, tu souhaiterais des formules dans ces cellules pour pouvoir obtenir d'autres résultats ultérieurement sans pour autant relancer une macro VBA), je pars d'un principe simple : soit on fait tout par formules, soit on fait tout par VBA...
Et comme je ne suis pas très doué en formule Excel et que je ne comprends pas celle-ci, navré, mais je suis bien incapable de pouvoir te proposer l'équivalent en tout VBA pour améliorer ton code...

Cordialement,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
909
Réponses
4
Affichages
754
Réponses
6
Affichages
422
Réponses
4
Affichages
625
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…