OPTIMISER MACRO

KTM

XLDnaute Impliqué
salut cher Forum
j'ai une table qui comporte 23 colonnes et 4500 lignes sur laquelle je dois travailler.
j'ai élaboré la macro si dessous qui doit supprimer les colonnes Q,R,S et supprimer toutes les données de cette table sauf les entêtes
le probleme est que la macro met des minutes à s'exécuter.
je ne sais pas si cette lenteur est due a mon PC ( Dual Core 4G de RAM) ou si c'est l'architecture de ma macro qui en est la cause.
Je voudrais que vous aidiez a optimiser la macro si possible.

Application.ScreenUpdating = False
Dim a As Integer
Sheets("E").select
Columns("Q:S").Delete Shift:=xlToLeft
a = Sheets("E").Range("A" & Rows.Count).End(xlUp).Row
Sheets("E").Range("A2:T" & a).Delete
Application.ScreenUpdating = True
 

Staple1600

XLDnaute Barbatruc
Re

Même punition ;)
01Erreur13.jpg
 

job75

XLDnaute Barbatruc
Bonjour KTM, JM, eriiiic,

En général je teste Application.Version avec Val => If Val(Application.Version) >= 12 Then

Cela dit toute cette gymnastique est probablement inutile, il devrait suffire que KTM nous donne les infos nécessaires sur son fichier.

A+
 

eriiic

XLDnaute Barbatruc
Ca y est , j'ai eu un flash
Le mystère est donc résolu :)

Cela dit toute cette gymnastique est probablement inutile, il devrait suffire que KTM nous donne les infos nécessaires sur son fichier.
Peut-être. Il n'en reste pas moins qu'en cas de lenteur la 1ère chose à faire est de désactiver tout ce qui peut entraîner des recalculs.
Sinon il lui reste la solution de supprimer la feuille et de la recréer depuis un modèle vierge.
eric
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Salut à tous,

Surtout pour tous vous saluer ;):

Je suis sur 2010 et il me renvoie un String "14.0"
En fait c'est le séparateur décimal système.
Je suis en "." donc pas d'erreur, et tu dois être en ","
Du coup je vais ajouter Val() dans le post

A mon humble avis, le séparateur décimal du système ou d'Excel n'a rien à voir (je suis en virgule sur les deux et MsgBox Application.Version renvoie 14.0).
 

Staple1600

XLDnaute Barbatruc
Bonjour mapomme

Et tu avais aussi un message d'erreur avec OptimiseVBA (1ère version) ?
cad avec :
If Application.Version>= 12 Then .EnableFormatConditionsCalculation = Not ok

By the way, si tu testes ma macro du message#6, chez toi aussi la phase de suppression est quasi-immédiate. ?
 

eriiic

XLDnaute Barbatruc
Bonjour mapomme,
A mon humble avis, le séparateur décimal du système ou d'Excel n'a rien à voir (je suis en virgule sur les deux et MsgBox Application.Version renvoie 14.0)
Application.Version seul fonctionne, c'est Application.Version >= 12 qui pose problème si on compare une chaine non convertible à un nombre.
J'ai pu reproduire l'erreur de Staple en changeant dans Région et langue.
Et changer dans les options Excel n'est pas suffisant, ça passe
 

KTM

XLDnaute Impliqué
Bonjour KTM, JM, eriiiic,

En général je teste Application.Version avec Val => If Val(Application.Version) >= 12 Then

Cela dit toute cette gymnastique est probablement inutile, il devrait suffire que KTM nous donne les infos nécessaires sur son fichier.

A+
Salut Job75
Mon fichier pèse 14Mo
La feuille en question contient formules et MFC
20COLONNES
4500LIGNES

merci.
 

Discussions similaires

Statistiques des forums

Discussions
312 165
Messages
2 085 881
Membres
103 009
dernier inscrit
dede972