dépassement du nombre de formats de cellule

  • Initiateur de la discussion Initiateur de la discussion yacc
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Y

yacc

Guest
J'ai développé une macro qui entre autres insère des feuilles de classeurs externes et je dois faire face à l'erreur EXCEL :
'nombre de formats de cellule différents trop important'

Afin de tenter de pister le problème, y a-t-il un moyen de mesurer le nombre courant de tels formats existants dans le classeur?
Sur la base d'une réponse à un précedentmessage dans ce forum, j'ai utilisé la méthode 'SpecialCells' de l'objet Range, mais cela ne correspond pas à mon besoin, car cette méthode retourne le nombre de cellules dans le Range qui possèdent le format spécifié, alors que moi, je voudrais connaître le nombre total de formats de cellule différents dans le classeur.

Merci d'avance pour votre aide

PS. Je suis en EXCEL 2000
 
Bonjour,
Merci pour le tuyau, mais malheureusement je ne pense pas que ce soit cela : lorsque le système se plante (parce que cette erreur fait planter EXCEL), le nombre de style du classeur est à 101.
J'avais effectivement lu cette limite à environ 4000 sur un forum Microsoft, qui semble bien associée au nombre de formats de cellule différents, et non au nombre de styles : il semble que ce soient deux concepts différents, le premier étant lié aux attributs de format courant pour les cellules du classeur ( concept dynamique), tandis que le second définit un ensemble d'attribut standards qu'il est possible d'appliquer à un ensemble de cellule en utilisant un nom (concept statique)
Mon problème est peut-être lié au fait que dans les feuilles que j'importe, j'affecte à un ensemble de cellules (parfois important) un format de mise en forme conditionnelle, du style 'si ce n'est pas une formule, alors mettre en couleur'. Le point ici est que le test de formule ou non est fait par macro VBA (je n'ai pas trouvé comment le faire par fonction EXCEL directe) et que donc le texte de la condition est particulier pour chaque cellule, e.g.
'isFormula($A$1)' pour la cellule A1, où ma macro VBA est isFormula(aRange)
Peut-être que du fait que le texte diffère pour chaque cellule (à cause de l'adresse), EXCEL considère avoir affaire à des formats différents (alors qu'en fait c'est le même).
J'en veux pour preuve l'essai que j'ai fait en insérant toujours la même feuille : dans ce cas, je n'ai pas l'erreur, même après un nombre d'insertions bien plus grand que dans le cas de feuilles différentes.
A suivre
Merci encore
 
Bonjour,
Pour info et si cela peut servir à quelqu'un d'autre.
Sans avoir compris réellement le problème, je crois avoir trouvé un semblant d'explication et surtout une solution:
la source de mon problème tient dans le fait que le style Normal des feuilles insérées est différent de celui du classeur d'accueil. Dans ce cas pour une feuille insérée issue du classeur XXX, EXCEL crée automatiquement dans le classeur d'accueil un nouveau style Normal_XXX. Or si j'insère une seconde feuille venant d'un autre classeur YYY, bien que le style Normal de XXX soit identique au style Normal de YYY, EXCEL crée dans le classeur d'accueil un troisième style Normal_YYY, car je comprends qu'EXCEL, lors de l'insertion, compare les styles de même nom, et si différent, importe le style attaché à la feuille insérée, en le renommant (l' autre style Normal_XXX ne portant pas le même nom, EXCEL ne cherche pas à savoir si il est identique au style Normal de la feuille insérée)
Ce qui fait qu'au bout d'une dizaine d'insertion, toutes à partir d'un classeur différent, je me retrouve dans le classeur d'accueil avec 11 formats Normal (celui d'origine Normal plus les 10 nouveaux Normal_ créés automatiquement par EXCEL).
Or chaque feuille insérée possède de nombreuses cellules baties sur le style Normal, mais avec des petites différences => explosion rapide du nombre de formats de cellules.
La solution trouvée a consisté à ouvrir, avant l'insertion, le classeur d'accueil et un des classeurs sources contenant une feuille qui sera insérée, et à appliquer, dans le contexte du classeur d'accueil, l'opération de Fusion de styles (Format->Styles->Fusion), ce qui a pour effet d'écraser tous les styles du classeur d'accueil par les styles du classeur source qui ont le même nom, ce qui fait que le style Normal du classeur d'accueil devient alors identique à celui de tous les classeurs sources.
Cordialement
 
Re : Re:dépassement du nombre de formats de cellule

Bonjour Yacc, le forum.
Je suis confronté au meme problème, (insertion de plusieurs onglets de manière répétée), j'ai suivi les proposition de Yacc et ait tenté de systématisé cela en fusionnant les styles par Macro.
Que pensez-vous de cette ligne de code dans le Workbook_NewSeet

ActiveWorkbook.Styles.Merge Workbook:=Workbooks("Base de donnée TCDessai.xls" _
)
Selection.Style = "Normal"

J'essaie et je vous tiens au courant.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour