Selection.Delete Shift:=xlUp trop long!

  • Auteur de la discussion adri1l
  • Date de début

adri1l

Habitué
Bonjour !

J'utilise le code suivant pour supprimer une ligne si elle repond a certaines conditions:

[cpp] Rows(e).Select
Selection.Delete Shift:=xlUp
[/cpp]

Le probleme c que la macro prends plusieurs secondes sur cette deletion.
Au final le programme peut prendre plus d'une heure au lieu de 10 min pour tourner.

Est ce qu il aurait un code qui supprime une ligne plus rapidement?

Merci!
 

zeb

Modérateur
Beurk.

Voilà qui est plus joli :
[fixed]Rows(e).Delete Shift:=xlUp[/fixed]
Et surtout plus efficace !

Il n'y a pas de façon de faire plus rapide pour supprimer une ligne, mais en supprimant l'étape INUTILE de sélection, tu économises beaucoup de temps : La sélection, c'est du scroll pour aller à la bonne cellule, et donc du rafraîchissement pour réafficher toutes les cellules nouvellement affichées. S'il y a des événements sur la sélection, c'est du code qui est exécuté, etc.

NE PAS FAIRE DE Select/Selection NI DE Activate/ActiveMachin INUTILES.
 

adri1l

Habitué
Beurk.

Voilà qui est plus joli :
[fixed]Rows(e).Delete Shift:=xlUp[/fixed]
Et surtout plus efficace !

Il n'y a pas de façon de faire plus rapide pour supprimer une ligne, mais en supprimant l'étape INUTILE de sélection, tu économises beaucoup de temps : La sélection, c'est du scroll pour aller à la bonne cellule, et donc du rafraîchissement pour réafficher toutes les cellules nouvellement affichées. S'il y a des événements sur la sélection, c'est du code qui est exécuté, etc.

NE PAS FAIRE DE Select/Selection NI DE Activate/ActiveMachin INUTILES.

Bon a savoir
Merci Zeb

Ce qui me saoule c que cette page est deja active a cause d'une autre operation auparavant
meme si je suis en [cpp]Application.ScreenUpdating = False[/cpp]
(donc il ne devrait pas avoir de réaffichage de toutes les cellules nouvellement affichées?), la suppression de la ligne prend de plus en plus de temps!
:heink:
Adri
 

KangOl

Grand Maître
ce ne serait pas plus rapide de sélectionner tout ce qui doit etre supprimer puis de supprimer la selection après ?
 

adri1l

Habitué
ce ne serait pas plus rapide de sélectionner tout ce qui doit etre supprimer puis de supprimer la selection après ?


Le nombre de colonnes est variable ...

Merci KangOl
 

zeb

Modérateur
L'idée de KangOl est à creuser...

Tu peux construire dynamiquement la liste des lignes à supprimer, puis les supprimier en une seule fois.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 129
Messages
6 717 853
Membres
1 586 373
Dernier membre
https://forum.tomshardwar
Partager cette page
Haut