Effacement MFC par macro très lent - solution ?

Mi_

XLDnaute Occasionnel
Bonjour le forum,

Sur une feuille Excel, j'ai plein de MFC différentes. Je voudrais effacer en masse uniquement les MFC qui ont la condition de motif rose (ColorIndex = 22).

Actuellement, j'utilise

On Error Resume Next
macolonne = ActiveSheet.Range('A1').SpecialCells(xlCellTypeLastCell).Column
maligne = ActiveSheet.Range('A1').SpecialCells(xlCellTypeLastCell).Row
For x = 1 To maligne
For y = 1 To macolonne
If ActiveSheet.Cells(x, y).FormatConditions(1).Interior.ColorIndex = 22 Then ActiveSheet.Cells(x, y).FormatConditions.Delete
Next
Next
On Error GoTo 0


MAIS C'EST TRES LENT !!!

Auriez-vous une solution plus rapide ?

Merci pour tout conseil,
Mi_
 

michel_m

XLDnaute Accro
Bonjour,

Difficille de te répondre sans voir la bête et la macro entière...

Mais peut être travailler sur la cause de la couleur rose

et effectuer une recherche par 'find' avec la boucle de type for each....next: tu trouveras un exemple dans l'aide microsoft

D'autre part, application.screenupdating=false te fera gagner du temps (si tyu ne l'as pas écrit)

A+
Michel_M
 

Mi_

XLDnaute Occasionnel
Bonjour,

La macro entière et celle ci-dessus, et oui, j'utilise ScreenUpdating = False.

Les MFC sont du gendre 'si la valeur de la cellule est égale à 1, alors motif rose'.

Et je veux effacer ces MFC. Le code que j'ai déjà, fonctionne très bien, mais avec ~5-7 secondes perdues pour une feuille.

Le même code adapté au remplacement d'un format simple de cellule (police, motif etc) est beaucoup plus rapide. Je pense que c'est la recherche de la MFC qui ralenti l'exécution.
 

michel_m

XLDnaute Accro
Re,

Ci joint proposition: mystère les temps sont très variables: de 1,1 à 5,7 secondes pour détruire environ 1200 MFC; parfois 15 pour 3000 MFC

A+
Michel_M [file name=pink.zip size=14309]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/pink.zip[/file]
 
Dernière édition:

Mi_

XLDnaute Occasionnel
Bonsoir michel_m, le forum,

J'ai adoré le chronomètre !

Mais. Sur ma feuille il y a plein de MCF, avec des motifs bleux, avec des motifs verts, avec des motifs roses comme condition. Et moi je ne veux pas effacer en masse les MFC, mais seulement les MFC avec condition de motiv rose (voire le code actuel plus haut).

Ouin donc. :side:
 

Discussions similaires

Réponses
8
Affichages
640

Statistiques des forums

Discussions
312 088
Messages
2 085 201
Membres
102 817
dernier inscrit
Nini668