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

Suppression de cellule

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

N

nomade

Guest
Bonsoir à tous,
Mon fichier contient ~50000 lignes et le temps d'exécution est trés trés long.
Ma macro (ci-dessous)pourrait-elle être amélioré, pour que le temps d'execution soit plus rapide?

Sub supprimeLigne()
Application.ScreenUpdating = False
For rwindex = 1 To 65536
For colindex = 2 To 2
With Worksheets("menu").Cells(rwindex, colindex)
If Cells(rwindex, colindex).Select <> "art" Or Cells(rwindex, colindex).Select <> "datfin" Or Cells(rwindex, colindex).Select <> "datliv" _
Or Cells(rwindex, colindex).Select <> "datmarch" Or Cells(rwindex, colindex).Select <> "datms" Or Cells(rwindex, colindex).Select <> "denofr" _
Or Cells(rwindex, colindex).Select <> "denogb" Or Cells(rwindex, colindex).Select <> "fab" Or Cells(rwindex, colindex).Select <> "marche" _
Or Cells(rwindex, colindex).Select <> "nno" Or Cells(rwindex, colindex).Select <> "ser" _
Or Cells(rwindex, colindex).Select <> "" Then Rows(rwindex).Delete
End With
Next colindex
Next rwindex
Application.ScreenUpdating = True
End Sub

Merci
Cordialement
 
Re : Suppression de cellule

bonjour nomade

une solution a tester:

Code:
Sub supprimeLigne()
Strin = "art,datfin,datliv,datmarch,datms,denofr,denogb,fab,marche,nno,ser,"
Application.ScreenUpdating = False
For rwindex = 65536 To 1 Step -1
If Cells(rwindex, 2) = "" Or InStr(Strin, Cells(rwindex, 2) & ",") <> 0 Then Rows(rwindex).Delete
Next rwindex
Application.ScreenUpdating = True
End Sub
 
Re : Suppression de cellule

Bonsoir,
Je viens de tester le code, il ne fonctionne pas, pas plus que le mien du reste.
Lorsque j'exécute aucune ligne concerné par les critères , ne s'efface.
J'ai essayé avec un petit bout de fichier idem
Je ne sais pas créer un petir fichier Excel je joins le tout au format texte.
Cordialement
Merci
 

Pièces jointes

Re : Suppression de cellule

Re

Un filtre élabore c'est une fonctionnalité native d'excel

Données/Filtre élaboré

Mais à la reflexion il semble y avoir trop de critères à prendre en compte

La solution de pierrejean semble interessante

et a première vue je ne vois pas ou est le problème avec le code
 
Re : Suppression de cellule

bonjour nomade

salut Staple1600

de l'interet d'un exemple !!!!

les pieges:

Majuscules vs minuscules

Les espaces avant le texte

et en plus je m'etais crashé : ce n'est pas <> mais =

voila donc une macro qui fonctionne avec les exemples donnés

Quant a la vitesse d'execution c'est a nomade de nous dire ce qu'il en est
 

Pièces jointes

Re : Suppression de cellule

Bonjour


J'avais pensé à la casse

mais j'avais pas eu le temps de testé


Ta solution avec une String

a t-elle des limites?

String="test,..., fin" 'combien d'items maxi?
 
Re : Suppression de cellule

Bonsoir,
Le code fonctionne mais le temps est aussi long (c'est certainement dû à la longueur du fichier 35500 lignes) .
J'exécute cette macro par un bouton clic, mais je dois cliquer sur le bouton plusieurs fois pour tout exécuter.
Je clique une première fois,une passe est effectué en ~24mn (cela supprime des lignes) aprés cela je dois à nouveau cliquez une deuxième fois, une deuxième passe est effectuer en ~12mn, est ainsi de suite, jusqu'au moment au lorsque je clique plus rien ne se passe est mon fichier est OK.
J'avais pensé à une boucle type for, next pour faire effectuer plusieurs passe sans avoir à cliquer plusieur sur le bouton.
Qu'en pensez vous?
Cordialement
Merci
 
Re : Suppression de cellule

re

il n'est pas normal d'avoir a cliquer plusieurs fois

si ce fichier est celui concernant ton post suivant (tri type ABC) la solution par tri donnera le même resultat

ne peux-tu vraiment pas mettre dans une seule Feuille disons 30 a 50 lignes significatives

cela nous aiderait vraiment

edit :

a titre indicatif j'ai testé avec 35508 lignes du type de l'exemple (en fait les mêmes repetées autant que necessaire ) et le traitement a duré moins de 5 secondes
 
Dernière édition:
Re : Suppression de cellule

bonsoir nomade

je verifie bien que la macro supprimeLigne fonctionne a une vitesse chez moi de l'ordre de quelques secondes pour 35000 lignes

il est possible que tu aies du la lancer plusieurs fois si rowindex etait declaré en integer (max 32000 environ)

par ailleurs j'ai mis un fonction test de tri mais la structure des données ne me parait pas cadrer

teste et dis-nous
 

Pièces jointes

Re : Suppression de cellule

Bonsoir,
Le temps d'exécution est toujours aussi long.
Lorsque dans la macro je désactive la fonction "screenupdating", je vois défiler l'écran et j'ai l'impression que le fichier est lu en boucle comme si l'on démarré de la colonne B1 --> B65536 puis à nouveau B1 --> B65536 et ainsi de suite cela durant les ~30 minutes, temps de traitement du fichier.
Par contre plus besoin de cliquer plusieurs fois, une seule suffit pour traiter la totalité du fichier.
Cordialement
Merci
 
- 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
910
Réponses
15
Affichages
784
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
452
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
5
Affichages
687
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…