comment ce debarasser d'une boucle (loop) ?

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

Poto

XLDnaute Occasionnel
bonjour a tous,

je cherche a me debarasser d'une boucle afin d'optimiser l'execution de plusieur macro...

voici la boucle :

Dim Var As Integer
Var = 30 'par exemple

Cells.EntireRow.Hidden = False

For i = 5 To Range("a" & Application.Rows.Count).End(xlUp).Row
If IsNumeric(Cells(i, 1).Value) And Cells(i, 1).Value > Var Then
Cells(i, 1).EntireRow.Hidden = True
End If
Next i

cette boucle permet de cacher les lignes ayant une valeur supérieur à "Var" (30 dans l exemple actuel) dans la colonne A en partant de la cell A5;
le probleme c est que ma feuille fait pres de 4500 lignes, donc je cherche vraiment à optimiser cette étape ...

quelqu'un aurait il une petite idée ??


merci d'avance à tous
 
Re : comment ce debarasser d'une boucle (loop) ?

Re


Tu as essayé l'AdvancedFilter avec une formule comme critère ?

Voir ici un exemple d'utilisation.
Lien supprimé

Cela fonctionne sans problème et de façon quasi-instantanée pourtant

salut Staple,

quand je dis que ca regle pas mon probleme, je veux dire que ce que je pensais poser probleme il y a quelques jours (une loop), n'en pose aucun en fait ...
mais j'ai toujours une perte radicale de perf lorsqu'une certaine serie d'action est effectuer...
je ne sais plus vers ou regarder ...
j'ai disséquer mon code dans tout les sens sans rien trouver qui puisse justifier cet etat de fait, donc je bloque 🙁
 
Re : comment ce debarasser d'une boucle (loop) ?

Poto,
Comme nous n'avons pas encore eu le privilège de voir un exemple précis de ton classeur, il est difficile de te répondre justement.

Cela peut provenir, d'évènements en cascade, des limites de la machine, d'excel, ou de macro complémentaires intallées etc....

A+
 
Re : comment ce debarasser d'une boucle (loop) ?

Re


cette boucle permet de cacher les lignes ayant une valeur supérieur à "Var" (30 dans l exemple actuel) dans la colonne A en partant de la cell A5;
le probleme c est que ma feuille fait pres de 4500 lignes, donc je cherche vraiment à optimiser cette étape
1) Je t'invite juste à tester Lien supprimé (en l'adaptant à ta problématique) sur 4500 lignes en lieu et place de ta boucle (sur un classeur vierge contenant 4500 lignes) et à comparer sa vitesse d'exécution avec ta boucle.

2) Pour pouvoir t'aider plus avant, il faudrait qu'on dispose de ton code VBA complet afin de tester dans des conditions similaires au tiennes.

edition : bonjour Hasco 😉 (je te rejoins sur ton dernier message)
 
Dernière édition:
Re : comment ce debarasser d'une boucle (loop) ?

@Hasco et Staple

voici le propjet en question :

Free - Envoyez vos documents

l'appli comporte des mdp (enfin surtout 1 important pour le code), si vous me le permettez, je peux vous les communiquer par mp (je prefererai vraiment eviter de balancer les mdp des mes applis ici, j'espere que vous comprendrez...)

merci encore 😉
 
Re : comment ce debarasser d'une boucle (loop) ?

Re


Ton fichier Excel faisant plus de 10 méga 😱

je ne suis pas étonné que tu aies des problèmes de lenteur


ah mais il a ete enormement reduit, il y a, a mon humble avis, que l'essentiel ...
comme je disais plus haut, c'est plus un classeur, ca tient plus de l'appli...

c'est une appli gerant le planning quotidien du personnel d'une entreprise de 50 personnes jusqu'en 2015 avec exportation/importation des donnees

et puis c'est pas tout qui ramme, d'ailleurs tu verra que ca ramme pas du tout tant que tu n'essaye pas de changer d'annee puis de revenir en 2010
 
Dernière édition:
Re : comment ce debarasser d'une boucle (loop) ?

Re


J'ai converti ton fichier en xls
et il est passé à 24 méga

et quand je l'ai ouvert dans Excel 2000

Excel a hoqueté et a agonisé dans un dernier souffle
voila ce qu'il m'a dit
error.gif


Je suis désolé mais je ne peux pas pousser plus loin (en tout cas ce week-end) les tests car mon PC avec Excel 2010 n'est pas ici.
 

Pièces jointes

  • error.gif
    error.gif
    13 KB · Affichages: 59
  • error.gif
    error.gif
    13 KB · Affichages: 60
Re : comment ce debarasser d'une boucle (loop) ?

Re


J'ai converti ton fichier en xls
et il est passé à 24 méga

et quand je l'ai ouvert dans Excel 2000

Excel a hoqueté et a agonisé dans un dernier souffle
voila ce qu'il m'a dit
Regarde la pièce jointe 156154


Je suis désolé mais je ne peux pas pousser plus loin (en tout cas ce week-end) les tests car mon PC avec Excel 2010 n'est pas ici.


merci quand meme, je savais deja que cet appli marche que sous 2007...
pt etre un autre jours, et puis tu aura peut etre besoin du mdp pour acceder au code ??

cordialement
 
Re : comment ce debarasser d'une boucle (loop) ?

Re



A propos de mdp protégeant ton projet VBA, j'espère que tu sais que cette protection est inefficace et facilement contournable ?

C'est pour cela que je mets pas de mdp sur mes projets VBA.

PS: je ne sais toujours pas si tu as testé mon code VBA avec advancedfilter ou pas ?
 
Dernière édition:
Re : comment ce debarasser d'une boucle (loop) ?

Re



A propos de mp protégeant ton projet VBA, j'espère que tu sais que cette protection est inefficace et facilement contournable ?

C'est pour cela que je mets pas de mdp sur mes projets VBA.

oui, c'est vrai qu'en general ca sert pas a grand chose mais ca evite aux personnes qui vont utiliser l'appli d aller farfouiller dans le code...

le code que tu m'a filer efface des lignes si j'ai bien compris, alors que je souhaite juste les cacher ...
 
Dernière édition:
- 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

W
  • Résolu(e)
Réponses
17
Affichages
2 K
D
Réponses
4
Affichages
1 K
Réponses
8
Affichages
1 K
K
Réponses
9
Affichages
1 K
Retour