Comment aller plus vite

  • Initiateur de la discussion Pias
  • Date de début
P

Pias

Guest
Bonjour, le Forum

Dans une application j’utilise le code ci-dessus pour envoyer les valeurs d’une feuille de commande vers une autre feuille.
Ça fonctionne très bien pour des petites quantités, mais c’est claire que sur une feuille de commande de environ 500 lignes, c’est pas l’idéal, c’est beaucoup trop long.
Alors si quelqu’un a une idée comme je pourrais modifier le code de manière a que l’opération puisse se réaliser plus vite, ça serais très sympa.

Merci beaucoup d’avance
Pias

---------------------------------------------------------------------
Private Sub CommandButton1_Click()
Dim Ligne As Integer
Dim CL As Range
Ligne = Worksheets("commandes").Range("A65536").End(xlUp).Row + 1
For Each CL In Range("C13:C511")
If CL.Value > 0 Then
Worksheets("commandes").Range("C" & CStr(Ligne)) = CL.Offset(0, -2)
Worksheets("commandes").Range("A" & CStr(Ligne)) = Range("B7")
Worksheets("commandes").Range("B" & CStr(Ligne)) = Range("B8")
Worksheets("commandes").Range("D" & CStr(Ligne)) = Range("B9")
Worksheets("commandes").Range("D" & CStr(Ligne)).NumberFormat = Range("B9").NumberFormat
Worksheets("commandes").Range("E" & CStr(Ligne)) = CL
CL.Value = ""
Ligne = Ligne + 1
End If
Next
Range("B7").Value = ""
Range("B8").Value = ""

Call Feuil7.Masquerinv

End Sub
 
T

Tony

Guest
Tu peux essayer ça, à placer au début de ton prog:

Function FastRun(Setting)
'Peter Fossey, mpep

Application.StatusBar = "Updating Excel settings, please wait..."
Application.EnableCancelKey = xlDisabled
Application.ScreenUpdating = Setting
Application.DisplayAlerts = Setting
Application.Interactive = Setting
If Setting = False Then Application.Calculation = xlCalculationManual
If Setting = False Then Application.Cursor = xlWait
If Setting = True Then Application.Calculation = xlCalculationAutomatic
If Setting = True Then Application.Cursor = xlDefault
Application.StatusBar = False

End Function


Puis, tu rajoute

FastRun False

au début de ta fonction (juste après private sub), puis

FastRun True

à la fin (juste avant end sub)


Voilà voilà, dis moi si ça marche!


Tony
 
P

Pias

Guest
Bonsoir Tony et le Forum,

Tout d’abord excuse moi de seulement répondre maintenant, mais ce matin quand j’ai posé la question, je pensais passer un lundi de pentecôte tranquille a la maison et profiter de faire un peu d’informatique mais voilà des invités surprise sont arrivé.

Alors voila je te répond maintenant pour te dire un grand merci car je viens de tester et ça marche très bien.

Demain je vais essayer au boulot ( au boulot Excel 2000 a la maison XP) et j’espère que ça fonctionne aussi .

Dans tous le cas MERCI BEAUCOUP Tony

Amicalement

...On se lasse de tout sauf d’apprendre !..
 

Discussions similaires

Statistiques des forums

Discussions
312 503
Messages
2 089 053
Membres
104 013
dernier inscrit
VELONDAHY Mickaël