Utiliser les formats numériques dans Excel VBA

Glen Alfaro 8 octobre 2023
  1. Implémenter la propriété NumberFormat sur les valeurs numériques VBA
  2. Obtenir le type de NumberFormat utilisé par une plage VBA
Utiliser les formats numériques dans Excel VBA

Les nombres se présentent sous différentes formes dans notre vie quotidienne. Nous avons des dates, des prix, des pourcentages, des fractions, des décimales, etc. Ils peuvent tous apparaître différemment, mais ils signifient tous une valeur.

Pareil avec Excel, nous pouvons traiter différents formats de nombres. Nous pouvons utiliser les types de données Date et Time ​​lorsqu’il s’agit d’heures et de dates, tandis que nous pouvons utiliser Percent lorsqu’il s’agit de pourcentages.

Cet article démontrera la propriété NumberFormat pour nous aider à utiliser et à traiter correctement les nombres tout au long de notre pratique Excel VBA.

Implémenter la propriété NumberFormat sur les valeurs numériques VBA

Cette section utilise la propriété NumberFormat pour modifier la mise en forme des nombres dans une cellule.

Syntaxe:

Range.NumberFormat = [FormatCodes]

Paramètres:

Range La plage à formater
[FormatCodes] Chaînes prédéterminées qui représenteront le type de format numérique à utiliser.

[codes de format] Matrice :

Nom du format Code de formatage Exemple La description
—————– ——————————————————– —————– ——————————————————
Général General 1234567.89 afficher le nombre sans format spécifique
Devise $#,##0.00 $1,234,567.89 afficher en tant que valeurs monétaires générales
Nombre 0 1234567.89 format affichera le nombre exactement tel qu’il est
Scientifique 0.00E+00 1.23E+06 convertir le nombre au format exponentiel
Comptabilité _($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_) $123.00 display the number used in Comptabilité
Date m/d/yy 11/23/2021 afficher la date et l’heure des numéros de série
Temps [$-F400]h:mm:ss am/pm 12:00:03 AM afficher la date et l’heure des numéros de série
Pourcentage 0.00% 5.23 % afficher la valeur sous forme de pourcentage
Fraction # ?/? 1/4 afficher la valeur sous forme fractionnaire
Spécial ;; 000-00-0000 formats utilisés sur les valeurs de liste et de base de données

La feuille de travail virtuelle Sheet1 sera les valeurs référencées utilisées sur tous les exemples ci-dessous pour les exemples de codes ci-dessous.

Feuille 1 :

 |    A    |      B      |      C    |
1| 1234.56 | 11/23/2021  | 93249812  |
2| 5       | 0.00004     | 0.25      |

Le bloc de code ci-dessous affichera le format General :

Sub FormatGeneral()
Range("A1").NumberFormat = "General"
Debug.Print Range("A1").Text
End Sub

Sortie FormatGénéral :

1234.56 

Le bloc de code ci-dessous affichera le format Devise :

Sub FormatCurrency()
Range("C1").NumberFormat = "$#,##0.00"
Debug.Print Range("C1").Text
End Sub

General Sortie :

$93,249,812.00

Le bloc de code ci-dessous affichera le format Scientifique :

Sub FormatScientific()
Range("C1").NumberFormat = "0.00E+00"
Debug.Print Range("C1").Text
End Sub

Sortie FormatScientific :

9.32E+07

Le bloc de code ci-dessous affichera le format Comptabilité :

Sub FormatAccounting()
Range("A1").NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
Debug.Print Range("A1").Text
End Sub

Sortie FormatAccounting :

 $ 1,234.56 

Le bloc de code ci-dessous affichera le format Date :

Sub FormatDate()
Range("A2").NumberFormat = "m/d/yy"
Debug.Print Range("A2").Text
End Sub

Sortie FormatDate :

1/5/00

Le bloc de code ci-dessous affichera le formatage Time :

Sub FormatTime()
Range("B2").NumberFormat = "$-F400]h:mm:ss am/pm"
Debug.Print Range("B2").Text
End Sub

Sortie FormatTime :

12:00:03 AM

Le bloc de code ci-dessous affichera le format Percentage :

Sub FormatPercentage()
Range("A1").NumberFormat = "0.00%"
Debug.Print Range("A1").Text
End Sub

Sortie FormatPercentage :

123456.00%

Le bloc de code ci-dessous affichera le format Fraction :

Sub FormatFraction()
Range("C2").NumberFormat = "# ?/?"
Debug.Print Range("C2").Text
End Sub

Sortie FormatFraction :

1/4

Obtenir le type de NumberFormat utilisé par une plage VBA

Nous avons renvoyé la valeur formatée de la plage spécifiée dans les exemples ci-dessus. Nous obtiendrons le type de formatage utilisé dans la plage spécifiée dans cette section.

Syntaxe:

Range.NumberFormat

Paramètres:

Range La plage de cellules pour obtenir le type de formatage

Toujours en référence à Sheet1, les exemples de blocs de code ci-dessous illustreront le retour du type de formatage utilisé par la plage spécifiée.

Sub GetFormattingType()
Debug.Print Range("B1").NumberFormat
End Sub

Sortie GetFormattingType :

m/d/yyyy