OVH Cloud OVH Cloud

Macro trop lourd

1 réponse
Avatar
serge
Bonjour à tous,

J'ai un petit soucis qui devient vite important. J'ai 3 feuilles excel qui
sont uploader automatiquement avec des lignes de ventes de produits
(plusieurs infos : prix, references, sous references, pays...)
J'ai une autre feuille excel qui est un résumé suivant différent critères de
ces 3 dernières.
Jai le code suivant intégré dans chaque pages afin d'alléger mes formules :
Dim derlig1 As Long
If target.Column < 14 Then
With Sheets("op week monday").Range("A:N")
On Error Resume Next
derlig1 = .Find(what:="*", LookIn:=xlFormulas, _
searchorder:=xlByRows, searchdirection:=xlPrevious).Row
If derlig1 > 1 Then
Sheets("op week monday").Range("B3:B" & derlig1).Name = "opnumber1"
Sheets("op week monday").Range("A3:A" & derlig1).Name = "country1"
Sheets("op week monday").Range("N3:N" & derlig1).Name = "opppipe1"
Sheets("op week monday").Range("C3:C" & derlig1).Name = "install1"
End If
On Error GoTo 0
End With
End If
Derrière çà, j'ai des formules du type suivant :
=SOMMEPROD(('op week-1 thursday'!$A$3:$A$19932=$B6)*('op week-1
thursday'!$C$3:$C$19932=$B$3)*(('op week-1
thursday'!$N$3:$N$19932=$B$372)+('op week-1
thursday'!$N$3:$N$19932=$B$373)+('op week-1
thursday'!$N$3:$N$19932=$B$374)+('op week-1
thursday'!$N$3:$N$19932=$B$375)+('op week-1
thursday'!$N$3:$N$19932=$B$376)+('op week-1
thursday'!$N$3:$N$19932=$B$377)=1)*('op week-1 thursday'!$AA$3:$AA$19932))

le problème est que çà me prend 40 minutes à updater mes infos. Je sais que
ce n'est pas facile comme çà d'y répondre ; mais si quelqu'un veut bien se
pencher sur mon probleme, j'en serais vraiement ravi.
Voici mon adresse mail : sergekaramsov@hotmail.com


Merci d'avance,

Serge

1 réponse

Avatar
LeSteph
Bonjour Serge,
A supposer qu'il s'agisse d'une
Private Sub worksheet_Change
...on dirait...donc pour exemple sur cet évennement:
si quelquepart cela modifie la feuille elle m^me
(ce qui n'apparaît pas vraiment dans ton mail)
il faut empêcher de boucler sur l'évennement avec
'*****
Application.EnableEventsúlse
'ici les instructions qui modifient puis quand c'est fait
Application.EnableEvents=true

'*****
Si je peux me permettre
utilise le On error resume next avec prudence et modération
et surtout tant que tu ne sais pas ce qui va ou non dans ton code
laisse les erreurs survenir et envisages d'abord les autres solutions.
Si en fin de compte seul un On error resume next résoud
correctement les problèmes , ne t'en prives pas quand c'est LA solution.
Pour sauter les messages erreurs tu peux aussi utiliser:
Application.DisplayAlertsúlse ....et remettre ensuite à true.

lSteph

"serge" a écrit dans le message de news:

Bonjour à tous,

J'ai un petit soucis qui devient vite important. J'ai 3 feuilles excel qui
sont uploader automatiquement avec des lignes de ventes de produits
(plusieurs infos : prix, references, sous references, pays...)
J'ai une autre feuille excel qui est un résumé suivant différent critères
de
ces 3 dernières.
Jai le code suivant intégré dans chaque pages afin d'alléger mes formules
:
Dim derlig1 As Long
If target.Column < 14 Then
With Sheets("op week monday").Range("A:N")
On Error Resume Next
derlig1 = .Find(what:="*", LookIn:=xlFormulas, _
searchorder:=xlByRows, searchdirection:=xlPrevious).Row
If derlig1 > 1 Then
Sheets("op week monday").Range("B3:B" & derlig1).Name = "opnumber1"
Sheets("op week monday").Range("A3:A" & derlig1).Name = "country1"
Sheets("op week monday").Range("N3:N" & derlig1).Name = "opppipe1"
Sheets("op week monday").Range("C3:C" & derlig1).Name = "install1"
End If
On Error GoTo 0
End With
End If
Derrière çà, j'ai des formules du type suivant :
=SOMMEPROD(('op week-1 thursday'!$A$3:$A$19932=$B6)*('op week-1
thursday'!$C$3:$C$19932=$B$3)*(('op week-1
thursday'!$N$3:$N$19932=$B$372)+('op week-1
thursday'!$N$3:$N$19932=$B$373)+('op week-1
thursday'!$N$3:$N$19932=$B$374)+('op week-1
thursday'!$N$3:$N$19932=$B$375)+('op week-1
thursday'!$N$3:$N$19932=$B$376)+('op week-1
thursday'!$N$3:$N$19932=$B$377)=1)*('op week-1 thursday'!$AA$3:$AA$19932))

le problème est que çà me prend 40 minutes à updater mes infos. Je sais
que
ce n'est pas facile comme çà d'y répondre ; mais si quelqu'un veut bien se
pencher sur mon probleme, j'en serais vraiement ravi.
Voici mon adresse mail :


Merci d'avance,

Serge