Bonjour à tous,
Je cherche un moyen d'optimiser un code VBA car mon classeur prend de plus en plus de volume a chaque exécution de la macro et celle ci met de plus en plus de temps à s'exécuter. Quand le fichier repart à 0, 20 secondes, quand je l'ai utilisé 2 ou trois fois, 15 min voir plus ou plantage. (Je traite 1 000 000 de lignes potentiellement)
Celui ci tourne mais je pense qu'il n'est pas très optimisé.
Merci d'avance à tous.
Je cherche un moyen d'optimiser un code VBA car mon classeur prend de plus en plus de volume a chaque exécution de la macro et celle ci met de plus en plus de temps à s'exécuter. Quand le fichier repart à 0, 20 secondes, quand je l'ai utilisé 2 ou trois fois, 15 min voir plus ou plantage. (Je traite 1 000 000 de lignes potentiellement)
VB:
Sub Ventes()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Sheets("Export_ventes").Range("a2:f1000000").Clear
Sheets("Fichier facture client").Select
L = Sheets("Fichier facture client").Range("B" & Rows.Count).End(xlUp).Row + 1
For X = 2 To L
v = Sheets("Export_ventes").Range("A" & Rows.Count).End(xlUp).Row + 1
If Sheets("Fichier facture client").Range("AK" & X) = "FR" Then
Sheets("Export_ventes").Range("A" & v) = Sheets("Fichier facture client").Range("L" & X).Value
Sheets("Export_ventes").Range("B" & v) = Sheets("Fichier facture client").Range("M" & X).Value
Sheets("Export_ventes").Range("C" & v) = Sheets("Fichier facture client").Range("N" & X).Value
Sheets("Export_ventes").Range("D" & v) = Sheets("Fichier facture client").Range("O" & X).Value
Sheets("Export_ventes").Range("E" & v) = Sheets("Fichier facture client").Range("U" & X).Value
Sheets("Export_ventes").Range("A" & v + 1) = Sheets("Fichier facture client").Range("L" & X).Value
Sheets("Export_ventes").Range("B" & v + 1) = Sheets("Fichier facture client").Range("M" & X).Value
Sheets("Export_ventes").Range("C" & v + 1) = Sheets("Fichier facture client").Range("R" & X).Value
Sheets("Export_ventes").Range("D" & v + 1) = Sheets("Fichier facture client").Range("O" & X).Value
Sheets("Export_ventes").Range("F" & v + 1) = Sheets("Fichier facture client").Range("P" & X).Value
Sheets("Export_ventes").Range("A" & v + 2) = Sheets("Fichier facture client").Range("L" & X).Value
Sheets("Export_ventes").Range("B" & v + 2) = Sheets("Fichier facture client").Range("M" & X).Value
Sheets("Export_ventes").Range("C" & v + 2) = "44571000"
Sheets("Export_ventes").Range("D" & v + 2) = Sheets("Fichier facture client").Range("O" & X).Value
Sheets("Export_ventes").Range("F" & v + 2) = Sheets("Fichier facture client").Range("T" & X).Value
Else:
If Sheets("Fichier facture client").Range("BB" & X) = "oui" Then
Sheets("Export_ventes").Range("A" & v) = Sheets("Fichier facture client").Range("L" & X).Value
Sheets("Export_ventes").Range("B" & v) = Sheets("Fichier facture client").Range("M" & X).Value
Sheets("Export_ventes").Range("C" & v) = Sheets("Fichier facture client").Range("N" & X).Value
Sheets("Export_ventes").Range("D" & v) = Sheets("Fichier facture client").Range("O" & X).Value
Sheets("Export_ventes").Range("E" & v) = Sheets("Fichier facture client").Range("U" & X).Value
Sheets("Export_ventes").Range("A" & v + 1) = Sheets("Fichier facture client").Range("L" & X).Value
Sheets("Export_ventes").Range("B" & v + 1) = Sheets("Fichier facture client").Range("M" & X).Value
Sheets("Export_ventes").Range("C" & v + 1) = Sheets("Fichier facture client").Range("R" & X).Value
Sheets("Export_ventes").Range("D" & v + 1) = Sheets("Fichier facture client").Range("O" & X).Value
Sheets("Export_ventes").Range("F" & v + 1) = Sheets("Fichier facture client").Range("P" & X).Value
Sheets("Export_ventes").Range("A" & v + 2) = Sheets("Fichier facture client").Range("L" & X).Value
Sheets("Export_ventes").Range("B" & v + 2) = Sheets("Fichier facture client").Range("M" & X).Value
Sheets("Export_ventes").Range("C" & v + 2) = "44520000"
Sheets("Export_ventes").Range("D" & v + 2) = Sheets("Fichier facture client").Range("O" & X).Value
Sheets("Export_ventes").Range("E" & v + 2) = Sheets("Fichier facture client").Range("T" & X).Value
Sheets("Export_ventes").Range("A" & v + 3) = Sheets("Fichier facture client").Range("L" & X).Value
Sheets("Export_ventes").Range("B" & v + 3) = Sheets("Fichier facture client").Range("M" & X).Value
Sheets("Export_ventes").Range("C" & v + 3) = "44529000"
Sheets("Export_ventes").Range("D" & v + 3) = Sheets("Fichier facture client").Range("O" & X).Value
Sheets("Export_ventes").Range("F" & v + 3) = Sheets("Fichier facture client").Range("T" & X).Value
Else:
Sheets("Export_ventes").Range("A" & v) = Sheets("Fichier facture client").Range("L" & X).Value
Sheets("Export_ventes").Range("B" & v) = Sheets("Fichier facture client").Range("M" & X).Value
Sheets("Export_ventes").Range("C" & v) = Sheets("Fichier facture client").Range("N" & X).Value
Sheets("Export_ventes").Range("D" & v) = Sheets("Fichier facture client").Range("O" & X).Value
Sheets("Export_ventes").Range("E" & v) = Sheets("Fichier facture client").Range("U" & X).Value
Sheets("Export_ventes").Range("A" & v + 1) = Sheets("Fichier facture client").Range("L" & X).Value
Sheets("Export_ventes").Range("B" & v + 1) = Sheets("Fichier facture client").Range("M" & X).Value
Sheets("Export_ventes").Range("C" & v + 1) = Sheets("Fichier facture client").Range("R" & X).Value
Sheets("Export_ventes").Range("D" & v + 1) = Sheets("Fichier facture client").Range("O" & X).Value
Sheets("Export_ventes").Range("F" & v + 1) = Sheets("Fichier facture client").Range("P" & X).Value
Sheets("Export_ventes").Range("A" & v + 2) = Sheets("Fichier facture client").Range("L" & X).Value
Sheets("Export_ventes").Range("B" & v + 2) = Sheets("Fichier facture client").Range("M" & X).Value
Sheets("Export_ventes").Range("C" & v + 2) = "44571000"
Sheets("Export_ventes").Range("D" & v + 2) = Sheets("Fichier facture client").Range("O" & X).Value
Sheets("Export_ventes").Range("F" & v + 2) = Sheets("Fichier facture client").Range("T" & X).Value
End If
End If
Next X
Application.ScreenUpdating = True
MsgBox ("Ecritures exportées avec succès sur la feuille 'Export_ventes'")
Application.DisplayAlerts = True
End Sub
Celui ci tourne mais je pense qu'il n'est pas très optimisé.
Merci d'avance à tous.