Conditions de couleurs sur une plage large

Le
Choko
Bonsoir,

Je me retrouve à devoir colorier une plage de plus de 100 000 cellules
sans pouvoir utiliser le format conditionnel car j'ai plus de 3
conditions. J'ai pensé à cette boucle mais elle prend vraiment du
temps sur cette grande plage.
Y a t il un moyen plus rapide de lui faire colorier les cellules plus
rapidement?

Merci pour vos idées

Cdt

Choko

For Each Cell In Selection

For Each Cell In Selection

Select Case Cell

Case Is < [STOP]
Cell.Interior.ColorIndex = 1

Case Is = [STOP]
Cell.Interior.ColorIndex = 3

Case Is < [STOP]
Cell.Interior.ColorIndex = 1

Case Is = "O"
Cell.Interior.ColorIndex = 4

Case Is = "F"
Cell.Interior.ColorIndex = 15

Case IsNull(Cell)
Cell.Interior.ColorIndex = xlNone
End Select
Next
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel
Le #4593151
Bonsoir.
De toutes façons :
Application.ScreenUpdatingúlse
Découpe la plage totale en plages plus petites que tu copies sur une feuille
provisoire et applique ta macro (ce process peut être intégré à ta macro)
Tu peux peut-être aussi gagner en définissant la plage à colorier (avec ta
boucle) et à appliquer la couleur en une seule fois (pas garanti, toutefois)
Bon courage.
Daniel
"Choko"
Bonsoir,

Je me retrouve à devoir colorier une plage de plus de 100 000 cellules
sans pouvoir utiliser le format conditionnel car j'ai plus de 3
conditions. J'ai pensé à cette boucle mais elle prend vraiment du
temps sur cette grande plage.
Y a t il un moyen plus rapide de lui faire colorier les cellules plus
rapidement?

Merci pour vos idées

Cdt

Choko

For Each Cell In Selection

For Each Cell In Selection

Select Case Cell

Case Is < [STOP]
Cell.Interior.ColorIndex = 1

Case Is = [STOP]
Cell.Interior.ColorIndex = 3

Case Is < [STOP]
Cell.Interior.ColorIndex = 1

Case Is = "O"
Cell.Interior.ColorIndex = 4

Case Is = "F"
Cell.Interior.ColorIndex = 15

Case IsNull(Cell)
Cell.Interior.ColorIndex = xlNone
End Select
Next
Choko
Le #4909581
Merci pour l'idée

Cela va de soit
"De toutes façons :Application.ScreenUpdatingúlse"

Si je comprends bien, il serait intelligent de lui faire selectionner
dans ma plage nommée toutes les cellules répondant à un critère puis
de lui demander de colorier en une fois la condition.

Je ne me souviens plus de la methode pour une multi selection dans une
plage selon une valeur et je n'ai pas trouvé de fil à ce sujet...
j'ai en mémoire qu'il s'agit d'une boucle qui etend progressivement la
plage de cellules indépendantes.

Merci de votre aide

Choko


On 27 juin, 20:57, "Daniel"
Bonsoir.
De toutes façons :
Application.ScreenUpdatingúlse
Découpe la plage totale en plages plus petites que tu copies sur une fe uille
provisoire et applique ta macro (ce process peut être intégré à t a macro)
Tu peux peut-être aussi gagner en définissant la plage à colorier ( avec ta
boucle) et à appliquer la couleur en une seule fois (pas garanti, toute fois)
Bon courage.
Daniel
"Choko"
Bonsoir,

Je me retrouve à devoir colorier une plage de plus de 100 000 cellules
sans pouvoir utiliser le format conditionnel car j'ai plus de 3
conditions. J'ai pensé à cette boucle mais elle prend vraiment du
temps sur cette grande plage.
Y a t il un moyen plus rapide de lui faire colorier les cellules plus
rapidement?

Merci pour vos idées

Cdt

Choko

For Each Cell In Selection

For Each Cell In Selection

Select Case Cell

Case Is < [STOP]
Cell.Interior.ColorIndex = 1

Case Is = [STOP]
Cell.Interior.ColorIndex = 3

Case Is < [STOP]
Cell.Interior.ColorIndex = 1

Case Is = "O"
Cell.Interior.ColorIndex = 4

Case Is = "F"
Cell.Interior.ColorIndex = 15

Case IsNull(Cell)
Cell.Interior.ColorIndex = xlNone
End Select
Next


Daniel
Le #4909471
Je ne sais pas si c'est plus rapide, dans le fond, parce que ça rajoute un
test :

For Each c In TaPlage
if tes tests ok then
If Plage Is Nothing Then
Set Plage = c
Else
Set Plage = Union(c, Plage)
End If
End If
Next c

Je pense que le découpage en plages plus petites est plus payant, car plus
on s'éloigne de A et de 1 et plus on est pénalisé.
Daniel
"Choko"
Merci pour l'idée

Cela va de soit
"De toutes façons :Application.ScreenUpdatingúlse"

Si je comprends bien, il serait intelligent de lui faire selectionner
dans ma plage nommée toutes les cellules répondant à un critère puis
de lui demander de colorier en une fois la condition.

Je ne me souviens plus de la methode pour une multi selection dans une
plage selon une valeur et je n'ai pas trouvé de fil à ce sujet...
j'ai en mémoire qu'il s'agit d'une boucle qui etend progressivement la
plage de cellules indépendantes.

Merci de votre aide

Choko


On 27 juin, 20:57, "Daniel"
Bonsoir.
De toutes façons :
Application.ScreenUpdatingúlse
Découpe la plage totale en plages plus petites que tu copies sur une
feuille
provisoire et applique ta macro (ce process peut être intégré à ta macro)
Tu peux peut-être aussi gagner en définissant la plage à colorier (avec ta
boucle) et à appliquer la couleur en une seule fois (pas garanti,
toutefois)
Bon courage.
Daniel
"Choko"
Bonsoir,

Je me retrouve à devoir colorier une plage de plus de 100 000 cellules
sans pouvoir utiliser le format conditionnel car j'ai plus de 3
conditions. J'ai pensé à cette boucle mais elle prend vraiment du
temps sur cette grande plage.
Y a t il un moyen plus rapide de lui faire colorier les cellules plus
rapidement?

Merci pour vos idées

Cdt

Choko

For Each Cell In Selection

For Each Cell In Selection

Select Case Cell

Case Is < [STOP]
Cell.Interior.ColorIndex = 1

Case Is = [STOP]
Cell.Interior.ColorIndex = 3

Case Is < [STOP]
Cell.Interior.ColorIndex = 1

Case Is = "O"
Cell.Interior.ColorIndex = 4

Case Is = "F"
Cell.Interior.ColorIndex = 15

Case IsNull(Cell)
Cell.Interior.ColorIndex = xlNone
End Select
Next


Publicité
Poster une réponse
Anonyme