réduire temps de purge ligne sur excel

lily1612

XLDnaute Nouveau
bonjour le forum

une autre question pour les experts que vous êtes :

est-il possible de réduire le temps de traitement en ce qui concerne la purge de cellule vide sur un fichier excel.

ci dessous ma macro de purge qui suprrime les lignes vides une à une et cela prend donc environ 1.45min :

Sub purger()

Workbooks("TEST bon cde CODE BARRE Master 2012.xls").Activate
Application.DisplayAlerts = True
Dim NomFich As String, WkbC As Workbook, Wkb As Workbook
If MsgBox("Attention, voulez allez supprimer toutes les données saisies!", vbOKCancel + vbExclamation + vbDefaultButton2, "Suppression de toutes les données") = vbOKCancel Then
With Sheets("ORDER")
.Range("A20:A702").ClearContents
With Sheets("ORDER")
.Range("E13,E14,E15,E16,C708,C709,C710,C711,C712,C713").ClearContents
With Sheets("ORDER")
.Range("D20:D702").ClearContents
With Sheets("ORDER")
.Range("G20:G702").ClearContents
With Sheets("ORDER")
.Range("E13:G13").ClearContents
With Sheets("ORDER")
.Range("C708:F713").ClearContents
End With
End With
End With
End With
End With
End With
MsgBox "Toutes les données ont été supprimées"
End If
End Sub


gratitude _
 

Pierrot93

XLDnaute Barbatruc
Re : réduire temps de purge ligne sur excel

Bonjour,

essaye peut être comme ceci :
Code:
Sheets("ORDER").Range("A20:A702,E13,E14,E15,E16,C708,C709,C710,C711,C712,C713,D20:D702,G20:G702,E13:G13,C708:F713").ClearContents

bon après midi
@+
 

lily1612

XLDnaute Nouveau
Re : réduire temps de purge ligne sur excel

j'ai modifié comme indiqué mais le traitement met toujours autant de temps , en fait plus de 3 minutes avec toutes les modif que j'ai faites je n'ai pas recalculé

avez vous d'autres solutions?

merci
 

Efgé

XLDnaute Barbatruc
Re : réduire temps de purge ligne sur excel

Bonjour lily1612, Salut Pierrot :),
Peut être en suspendant le calcul des formules...
VB:
Sub test()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Sheets("ORDER").Range("A20:A702,E13,E14,E15,E16,C708,C709,C710,C711,C712,C713,D20:D702,G20:G702,E13:G13,C708:F713").ClearContents
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Cordialement
 

lily1612

XLDnaute Nouveau
Re : réduire temps de purge ligne sur excel

cela ne fonctionne pas , nous sommes toujours au delà des 3 minutes.

petite précision, mon projet est un bon de commande. il y a donc certaines cellules en pied de page qu'il ne doit pas supprimer et il les traîne lors du traitement. mes cellules sont supprimées une à une en se dirigeant vers le haut de mon bon de commande !

est ce normal?

toutes les prog que j'ai modifié font la même chose !

merci pour votre temps
 

Pierrot93

XLDnaute Barbatruc
Re : réduire temps de purge ligne sur excel

Re, bonsoir fg:)

peut être avec ceci en début de procédure :
Code:
With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    .EnableEvents = False
End With

A réinitialiser à la fin....
 

Efgé

XLDnaute Barbatruc
Re : réduire temps de purge ligne sur excel

Re à tous, Bonsoir flyonets44,
Après avoir mieux regardé:
On peux commencer par ne pas vider plusieures fois les même cellules...:rolleyes:, ça sera toujours ça de gagné :D.
Après on peux traiter toutes les cellules comme une seule plage.
Pour finir on peux désactiver / réactiver pas mal de choses.

VB:
Sub test()
Dim Plg As Range

With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    .EnableEvents = False
End With
 
With Sheets("ORDER")
    Set Plg = Application.Union(.Range("E13:E16"), .Range("F13:G13"), .Range("A20:A702"), .Range("D20:D702"), .Range("G20:G702"), .Range("C708:F713"))
End With
 
Plg.ClearContents
 
With Application
    .ScreenUpdating = True
    .Calculation = xlCalculationAutomatic
    .EnableEvents = True
End With
End Sub

Mais le mieux serait, comme d'habitude, d'avoir le fichier, annonymisé, sous les yeux.

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 495
Messages
2 088 964
Membres
103 992
dernier inscrit
Christine 974