Lenteur macro

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
With Sheets("E").select
.Columns("Q:S").Delete Shift:=xlToLeft
a =.Range("A" & Rows.Count).End(xlUp).Row
.Range("A2:T" & a).Delete
End with
Application.ScreenUpdating = True

Bonjour,

Si tu as beaucoup de formules dans cette feuille ou se référent à cette feuille...

À tester :

- au début > Application.Calculation = xlCalculationManual

- à la fin > Application.Calculation =xlCalculationAutomatic

ric

Bonsoir,

Essayer juste cette instruction :

Range("A1").CurrentRegion.Offset(1).Clear

Bonjour,

Essaie ainsi, en supprimant les données avant de supprimer les colonnes (si calculs !...).

Cdlt.

Public Sub CleanData()
Dim lastRow As Long, modeCalc As Long
    With Application
        modeCalc = .Calculation
        .Calculation = xlCalculationManual
        .ScreenUpdating = False
    End With
    With Worksheets("E")
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        .Cells(1).Offset(1).Resize(lastRow, 20).Clear
        .Columns("Q:S").Delete
    End With
    Application.Calculation = modeCalc
End Sub

Merci pour tous vos efforts

Mais c'est le même probleme

j'ai exploré toutes les pistes que vous m'avez proposées. je ne comprends plus ce qui se passe avec cette table.

4500 lignes et 20 colonnes c'est pas aussi énorme que ça !!

Bonjour Ktm

As-tu des MFC, des formules ?

Quel poids fait ton fichier ?

Re,

Quand tu parles de table, tu parles d'un tableau structuré ?

Cdlt.

Encore Merci à vous tous

  • mon fichier il faut le reconnaître pèse 14Mo
  • ma macro en question doit agir sur la table (non d'un tableau) de ma feuille E
  • Oui la table contient formules et MFC
Encore merci de vous soucier de mon problème.

bonjour à tous

sur le principe, on ne doit jamais supprimer de données

(le pire étant qu'Excel garde + ou - moins la mémoire des dimensions et de la taille du fichier. Si on réécrit, il enfle ! )

donc ne rien effacer

il vaut bien mieux ajouter des données, sans fin !

4500 lignes, c'est de la broutille

bonne journée et amitiés à tous

Dans le traitement de mon fichier je dois supprimer les données sur cette feuille et y copier de nouvelles depuis une autre feuille.

re

pourquoi dois-tu le faire ?

je travaille sur tableur depuis longtemps, je n'efface jamais rien (sauf les erreurs de saisie)

Je voudrais dire grand merci à tous ceux qui sont intervenus dans cette discussion

Jai découvert que le probleme était ma feuille et je vous avoue que toutes vos solutions marchent parfaitement

Encore merci et que les Dieux du VBA vous fortifient.

Rechercher des sujets similaires à "lenteur macro"