Se connecter avec
S'enregistrer | Connectez-vous

Selection.Delete Shift:=xlUp trop long!

Dernière réponse : dans Programmation

Bonjour !

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

  1. Rows(e).Select
  2. Selection.Delete Shift:=xlUp


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!
Lassé par la pub ? Créez un compte
Expert Programmation

Beurk.

Voilà qui est plus joli :
Rows(e).Delete Shift:=xlUp

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.

Citation :
Beurk.

Voilà qui est plus joli :
Rows(e).Delete Shift:=xlUp

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
  1. Application.ScreenUpdating = False

(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
Lassé par la pub ? Créez un compte