Execution lente en VBA

apb

XLDnaute Occasionnel
:eek:
Bonjour à Tous
Merci d'avance pour votre aide.

Je vous joins mon fichier exemple pour documenter mon problème.

Dans ce fichier, en fonction des codes de la feuil2 col B saisie dans la feuille planning, je change la couleur de fond de la case grâce à une zone de saisie définie et un code VBA.

Le problème est que, quand il n'y que Janvier, c'est rapide, mais sur les 12 mois de l'année cela devient très long à l'exécution.

Je cherche de l'aide pour optimiser cette procédure.

D'avance je vous en remercie.
 

apb

XLDnaute Occasionnel
apb écrit:
:eek:
Bonjour à Tous
Merci d'avance pour votre aide.

Je vous joins mon fichier exemple pour documenter mon problème.

Dans ce fichier, en fonction des codes de la feuil2 col B saisie dans la feuille planning, je change la couleur de fond de la case grâce à une zone de saisie définie et un code VBA.

Le problème est que, quand il n'y que Janvier, c'est rapide, mais sur les 12 mois de l'année cela devient très long à l'exécution.

Je cherche de l'aide pour optimiser cette procédure.

D'avance je vous en remercie.
 

apb

XLDnaute Occasionnel
apb écrit:
:eek:
Bonjour à Tous
Merci d'avance pour votre aide.

Je vous joins mon fichier exemple pour documenter mon problème.

Dans ce fichier, en fonction des codes de la feuil2 col B saisie dans la feuille planning, je change la couleur de fond de la case grâce à une zone de saisie définie et un code VBA.

Le problème est que, quand il n'y que Janvier, c'est rapide, mais sur les 12 mois de l'année cela devient très long à l'exécution.

Je cherche de l'aide pour optimiser cette procédure.

D'avance je vous en remercie.
 

apb

XLDnaute Occasionnel
apb écrit:
apb écrit:
:eek:
Bonjour à Tous
Merci d'avance pour votre aide.

Je vous joins mon fichier exemple pour documenter mon problème.

Dans ce fichier, en fonction des codes de la feuil2 col B saisie dans la feuille planning, je change la couleur de fond de la case grâce à une zone de saisie définie et un code VBA.

Le problème est que, quand il n'y que Janvier, c'est rapide, mais sur les 12 mois de l'année cela devient très long à l'exécution.

Je cherche de l'aide pour optimiser cette procédure.

D'avance je vous en remercie.

Excuse moi pour ces doublons le fichiers joint ne voulais pas passer :eek: :eek:
 

apb

XLDnaute Occasionnel
apb écrit:
apb écrit:
apb écrit:
:eek:
Bonjour à Tous
Merci d'avance pour votre aide.

Je vous joins mon fichier exemple pour documenter mon problème.

Dans ce fichier, en fonction des codes de la feuil2 col B saisie dans la feuille planning, je change la couleur de fond de la case grâce à une zone de saisie définie et un code VBA.

Le problème est que, quand il n'y que Janvier, c'est rapide, mais sur les 12 mois de l'année cela devient très long à l'exécution.

Je cherche de l'aide pour optimiser cette procédure.

D'avance je vous en remercie.

Excuse moi pour ces doublons le fichiers joint ne voulais pas passer :eek: :eek:

Il y avait un espace !!!! [file name=essai2_20060219111121.zip size=44031]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/essai2_20060219111121.zip[/file]
 

Pièces jointes

  • essai2_20060219111121.zip
    43 KB · Affichages: 24

ERIC S

XLDnaute Barbatruc
re

le pb j epense est que dans un premier temps tu détectes la zone à gérer mais que ta macro 'condition...' balaie tous les mois

en passant un paramètre du style

Call condition_select_case_multiple_rapide_screenupdating('zone_de_saisie_Janvier')

et en le récupérant

Sub condition_select_case_multiple_rapide_screenupdating(zone)
...
For Each c In Range(zone)
Select Case c
Case Is = 'ap'
c.Interior.Color = RGB(255, 153, 204)
Case Is = 'ca', 'bd', 'jtl', 'cm', 'asa', 'rc', 'cet', 'rtt', 'tc'
c.Interior.Color = RGB(255, 255, 0)
Case Is = 'G'
c.Interior.Color = RGB(255, 102, 0)
Case Is = 'S2', 'PR', 'ast'
c.Interior.Color = RGB(51, 102, 255)
Case Is = 'S1'
c.Interior.ColorIndex = 8
Case Is = 'fx'
c.Interior.ColorIndex = 4
Case Is = 'S'
c.Interior.Color = RGB(204, 204, 255)
Case Else
c.Interior.ColorIndex = 2
End Select
Next
end sub

devrait être plus rapide

A+
 

michel_m

XLDnaute Accro
Bonjour à tous,

Si j'ai bien compris, tu déclenches ta macro sur un worksheet_change...

Dans ce cas, pourquoi ne pas traiter le cas de la cellule active (target)? cela t'éviterait de parcourir toutes les zones.

En espèrant ne pas être à coté de la plaque

Michel_M
 

apb

XLDnaute Occasionnel
Bonjour, et merci pour votre aide,

J'ai modifié mon fichier VBA, mais je pense faire une erreur, Pouvez vous m'aider à deboguer?
Merci


Bon appétit

Encore Merci [file name=essai2_20060219113851.zip size=43592]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/essai2_20060219113851.zip[/file]
 

Pièces jointes

  • essai2_20060219113851.zip
    42.6 KB · Affichages: 19

ERIC S

XLDnaute Barbatruc
re

essaie le fichier joint

effectivement une autre solution par target, sur la cellule seule est possible

A+ [file name=essai2TdB.zip size=42706]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/essai2TdB.zip[/file]
 

Pièces jointes

  • essai2TdB.zip
    41.7 KB · Affichages: 28

Discussions similaires

Réponses
12
Affichages
230
Réponses
12
Affichages
335

Statistiques des forums

Discussions
312 364
Messages
2 087 625
Membres
103 624
dernier inscrit
PhilduMorvan