Microsoft 365 La même mais en plus rapide

  • Initiateur de la discussion Initiateur de la discussion jean123
  • 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 !

jean123

XLDnaute Occasionnel
Bonjour,
J'ai fait une petite macro simple mais pas efficace en terme de temps de traitement. Si quelqu'un peut améliorer la macro car sur une feuille contenant peu de donnes ça va, mais j'ai un onglet de 90 colonne et 150 000 lignes. Et la, ça coince.
Voici la macro
VB:
Sub test ()
For i = 2000 To 1 Step -1
For j = 90 To 1 Step -1
If Not Cells(i, j).Value Like "*jean*" Then Cells(i, j).Delete Shift:=xlToLeft
Next j
Next i
End Sub
 
Dernière édition:
Bonjour.
Moi je l'écrirais comme ça :
VB:
Sub test()
   Dim T(), L&, C1&, C2&
   T = Cells(1, 1).Resize(2000, 90).Value
   For L = 1 To 2000
      C2 = 0
      For C1 = 1 To 90
         If T(L, C1) Like "*jean*" Then C2 = C2 + 1: T(L, C2) = T(L, C1)
         Next C1
      While C2 < 90: C2 = C2 + 1: T(L, C2) = Empty: Wend
      Next L
   Cells(1, 1).Resize(2000, 90).Value = T
   End Sub
 
- 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

Discussions similaires

Réponses
5
Affichages
703
Réponses
2
Affichages
185
Réponses
4
Affichages
580
Réponses
8
Affichages
647
Retour