Message d'erreur : "Nombre de formats de cellule trop élevé"

Perso depuis 2019, à part prévenir que la Mosaïc risque de comporter des trous je n'ai rien trouver.

@ bientôt

LouReeD

Affiné ?
Juillet 2019, prrmier lien, j'indiquais...

je suis parti de ton post disant :

mais sinon mon test de faisabilité tourne plutôt autour des 16000 couleurs différentes de fond de cellule, alors vous avec 100 cellules, cela devrait passer, à moins que ce soit un effet visuel et que durant cet effet vous changiez la couleur de ces 100 cellules pour faire comme une vague... Excel garde peut-être en mémoire ces différents états et sature au niveau mémoire...

qui ne correspondait pas à mes constatations, tant en nombre de couleurs qu'au lien fait avec le nombre de cellules
eric

Bonjour,

Après plusieurs tests, j'ai choisi une boucle sur 16000 couleurs différentes pour tester le risque d'une mosaïque avec des trous ou pas tout en faisant que ce test ne dure pas trop longtemps.

Je n'ai pas trouver comment connaître le nombre de couleur différente composant une image. Comme dit plus haut j'ai contourner le problème de la limite à 65xxx couleurs en prévenant l'utilisateur du "risque".

@ bientôt

LouReeD

Bonjour à tous,

J'ai résolu mon problème en n'utilisant que deux paramètres de couleur à la fois [grâce à la fonction RGB(x, y, z)], soit RG soit GB soit RB et tout fonctionne parfaitement.

Mais je laisse le choix au début du programme à l'utilisateur, qui peut donc choisir soit RG, soit GB, soit RB.

Le problème c'est que si l'utilisateur relance le programme sans avoir fermé Excel entre temps et qu'il choisit une autre paire de couleurs, alors évidemment le nombre de format de cellules trop élevé plante tout en quelques secondes !

Ma question est donc la suivante : y a-t-il moyen de savoir si Excel a été fermé depuis le précédent lancement du programme ?

Car dans ce cas, s'il a été fermé, je propose à l'utilisateur le choix complet (soit RG, soit GB, soit RB) et sinon je lui impose le choix de la précédente paire de couleurs utilisée !

Merci d'avance pour vos suggestions.

Bonsoir,

Vous créez une variable dans le menu de gestion noms, si la variable différente de 0 (par exemple) c'est que le choix du menu a déjà été fait.
A la fermeture du classeur il faut passer cette variable à 0, ou bien à l'ouverture du classeur...

@ bientôt

LouReeD

Bonsoir,

pour une variable du nom "Inter", code à mettre à l'ouverture du classeur :
ThisWorkbook.Names("Inter").Value = 0

Suite au choix des couleurs : ThisWorkbook.Names("Inter").Value = 1
Avec un test avant le choix des couleurs : If ThisWorkbook.Names("Inter").Value = 0 Then choix des couleurs Else msgbox("Déjà lancé")

@ bientôt

LouReeD

Bonsoir à tous,

A priori, le nombre de 100 cellules avec format de couleur (RGB différents) ne semble pas trop élevé.

8classcolor.xlsm (17.81 Ko)

Mais peut être c'est selon l'effet escompté...

X cellus,

Ce n'est pas le nombre de cellules qui compte. Si tu fais prendre 100 000 couleurs à une seule cellule ça doit planter !

LouReed,

Je ne vois pas en quoi ton idée prouve qu'Excel a été fermé entre temps, ça prouve juste qu'on a fermé la feuille sur laquelle il y a le programme en VBA, non ?

Bonjour,

Sous Excel vous créer un NOM grâce au menu Formules puis Gestionnaire de noms.

Cliquez Nouveau, donnez le nom Inter, Zone classeur, fait référence à : =0

Dans ThisWorkbook sous VBA sub open :

ActiveWorkbook.Names("Inter").Value = 0, à l'ouverture du classeur on passe la variable à 0 car aucun lancement de fait.

Dans le code du choix de couleur vous passez cette variable à différent de 0 donc le code à déjà été lancé, avant le code de couleur vous faites un test sur cette variable : si =0 code jamais lancé, si =autre chose code déjà lancé.

@ bientôt

LouReeD

LooReeD,

J'ai fait une chose beaucoup plus simple, j'ai mis le choix du paramètre de couleur utilisé dans une case.

Le problème qui reste cependant est que si la personne enregistre le fichier en le quittant cela bloque le choix des couleurs pour la prochaine utilisation !

J'ai testé l'idée du mot de passe mais cela n'empêche pas d'enregistrer le fichier et donc cela ne résout rien.

Existe-t-il une façon de savoir à quelle heure une feuille de calcul a été ouverte dans Excel ?

Car si c'est le cas la solution serait facile !

Merci de vos suggestions...

Bonjour,

Dernière suggestion : pas de limite sur les couleurs de Shape, l'idée : des Shapes rectangulaires de taille égale aux cellules sur lesquelles ils se trouvent puis le code VBA modifie leur couleur.

Leur nom : préfixe + coordonnées en ligne et colonne =Rec07 pour le shape en ligne 1 et colonne 8 puis le code VBA avec deux boucles de 0 à 9 pour passer d'un shape à l'autre.

C'est plus lent mais les 16'777'215 couleurs sont possibles. Je ne suis pas allé aussi loin dans le test, mais j'ai dépassé les 66'000 donc je pense que c'est bon. Dans l'idée Excel a une case couleur pour le shape et il en modifie la valeur, donc il ne devrait pas y avoir de cumul de données.

@ bientôt

LouReeD

Merci LooReeD,

Ton idée me parait tout à fait jouable.

Ce sera mon prochain programme, je vous dirai si ça fonctionne avec toutes les combinaisons de couleurs...

De fait j'espère que ce ne sera pas trop lent car j'utilise finalement 36 cellules de large sur 20 de haut, soit 720 cellules !

Encore merci.

Bonsoir,

ci joint ma version :

un clic sur "Allons-y !" et les couleurs changent, la StatusBar indique le compteur des couleurs, un "re clic" arrête le processus.

@ bientôt

LouReeD

Bonsoir et bonne année !

Alors ? Ce petit code convient il à votre projet ?

@ bientôt

LouReeD

Bonjour LooReeD,

Excellente année 2022 à vous !

Je n'ai pas encore retravaillé ce projet, car je me suis lancé sur deux autres que je vais achever avant.

Je ne manquerai pas de vous dire si le code fonctionne bien mais je n'en doute pas une seconde.

Au plaisir

@ bientôt

LouReeD

Bonjour LouReeD,

Je viens de me remettre au travail et j'ai utilisé ta brillante idée de faire autant d'objets graphiques que de cellule.

J'ai notamment essayé avec des 'Label' de la taille d'une cellule positionnés juste au-dessus de chaque cellule, avec une zone d'affichage de 35 de large par 20 de haut, soit 700 cases.

Tout fonctionne techniquement, mais en fait esthétiquement c'est la catastrophe la plus totale car Excel lorsqu'il rafraichit l'écran fait absolument n'importe quoi !

Lorsque je change la couleur des 700 cases sans qu'aucune ne soit en blanc, Excel affiche d'un seul coup du blanc et montre d'autres Labels et boutons pourtant cachés derrière !!!

J'imagine que ça marche avec 50 cases mais avec 700 Excel est complètement aux fraises ! Ca fait même pitié à voir, on dirait qu'il vient d'avoir une fracture du crâne !

Moralité, je n'ai pas de solution pour utiliser toutes les couleurs possibles...

En tout cas encore merci.

Rechercher des sujets similaires à "message erreur nombre formats trop eleve"