2017-02-27 1 views
0

J'utilise un adn excel pour gérer un addin Excel. Là, j'applique un format numérique à une cellule en utilisant Range.NumberFormat = myformat;. Je ne connais pas à l'avance la chaîne myFormat, elle est définie dans un backend. Dans les bons cas myFormat est quelque chose comme "0.00; (0.00)" ou "# ## 0,00 \ _ €; [Red] - # ## 0,00 \ _ €", dans d'autres quelque chose comme "toto". Dans le dernier cas, l'affichage dans la cellule Excel est ########## ou quelque chose qui n'a pas de sens. Donc, y a-t-il un moyen de vérifier que la chaîne myFormat est un format numérique valide pour Excel avant d'appliquer le format à la cellule?Valider le format Chaîne pour les valeurs numériques dans Excel (ADN)

Merci, Mario.

+0

Je suis assez sûr que '#######' signifie juste que la cellule n'est pas assez large pour afficher la valeur. Vos exemples de formats ont renvoyé des valeurs pour moi. –

+0

Oui, avec les exemples de format corrects, Excel affiche la valeur correctement formatée et il tient dans une demi-cellule. Mais avec l'exemple de format incorrect, excel affiche #### parfois et la valeur du format (par exemple, "toto") d'autres fois. – Mario

+0

Quels sont les exemples de formats incorrects? Si vous formatez "toto", alors oui, vous obtiendrez 0 = toto, 1 = toto, -1 = -toto. –

Répondre

0
Sub tester() 
Dim rng1 As Range, rng2 As Range 

Set rng1 = Range("F1")' Formatted with 2 decimal places 
Set rng2 = Range("G1")' Formatted with 6 decimal places 

If rng1.NumberFormat <> rng2.NumberFormat Then 
Beep 
End If 

End Sub 
+0

cela est bon de vérifier si nous avons deux formats différents dans deux gammes, mais je veux vérifier si une chaîne donnée est un format numérique valide à appliquer à une cellule – Mario

+0

Je vous donne juste la logique dont vous avez besoin. Je n'essayais pas d'écrire le code pour toi Mario. si variable.numberformat = myformat alors faites quelque chose, sinon; faire autre chose. –

+0

ouais, mais ma question est très différente. Je veux vérifier si myformat est valide avant d'appliquer le format. Si je fais rng1.NumberFormat = "toto", Excel affichera quelque chose qui n'a pas de sens. Donc, je veux vérifier si myFormat est valide ou non avant d'aller à la ligne rng1.NumberFormat = myFormat – Mario