J'ai quelques questions sur Range.NumberFormat - j'espère que quelqu'un a des réponses prêtes à l'emploi, car la recherche sur le web est difficile avec tous les termes génériques.
Un peu d'histoire : J'essaie d'éliminer le "hasard" Erreur 1004 codes : Impossible de définir la propriété NumberFormat de la classe Range est le message. L'erreur se produit lorsque j'essaie de définir le format .NumberFormat d'un fichier en retard vers un format nommé, en travaillant principalement avec "General" ou "Standard". L'objet, dans 99% des cas, est Application.Selection. Veuillez également noter que la cause la plus fréquente de cette erreur est la protection de la feuille ou du classeur. ne s'applique pas ici.
-
Entre Excel 2003 et 2007, Microsoft semble avoir introduit un bogue dans VBA. Si, dans la fenêtre immédiate, je tape
? Selection.NumberFormat
et que j'appuie sur Entrée, j'obtiens "Général". Si je fais la même chose avec certains compléments (pas tous, pas prévisibles) en exécutant une macro avec un point d'arrêt, j'obtiens généralement "Standard". Qu'est-ce que "Standard" ? D'où cela vient-il ? Je veux prendre un format de nombre dans une cellule et le déposer dans une autre ; au hasard des moments, je ne peux pas appliquer "Standard" de cette manière, et son résultat n'est pas comme Général. (Dans Excel 2003, il n'apparaît jamais dans la fenêtre immédiate, et ne s'applique pas systématiquement). -
Même si je convertis toutes les instances de "Standard" en "Général", j'obtiens encore parfois une erreur à l'adresse suivante
MyObject.NumberFormat = "General"
. J'ai lu à plusieurs endroits qu'il est préférable d'appliquer le format sous-jacent au format nommé, c'est-à-dire que General s'applique à quelque chose (comme standard, je suppose) ; quelle est la syntaxe pour faire cela dans Excel VBA ?
Merci d'avance pour votre aide.