[VBA Excel] - Variable sur deux chiffres

Résolu/Fermé
Jodko - 4 nov. 2011 à 17:55
 Jodko - 6 nov. 2011 à 00:06
Bonjour,

J'ai un problème pour initialiser une variable de mois dans une macro excel :


Impossible de l'initialiser avec un 0 pour les mois de Janvier à Septembre.

En d'autre termes :

Dim mois as Integer

mois = 09


est automatiquement corrigé en
mois = 9


Est ce que c'est possible de forcer le mois = 09 ?



Merci de votre aide !


Jodko.



A voir également:

7 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié par Patrice33740 le 5/11/2011 à 18:10
Bonjour Jodko,

A priori tu ne connais pas la différence entre un nombre entier (Integer) et du texte (String).

Un nombre représente une quantité ou un numéro d'ordre. Pour représenter les nombres, on utilise une série de caractères (les chiffres, le séparateur de décimale et parfois quelques autres caractères) qui doit respecter les conventions mathématiques. Parmi ces conventions, il y en a une qui précise qu'on n'écrit pas de zéro non significatifs devant un nombre.
On peut faire des opérations arithmétiques sur les nombres.

Un texte est une série de caractères qui peut être composé de n'importe quel caractère (y compris les chiffres et le séparateur décimal). Il est uniquement caractérisé par la quantité et la qualité des caractères qui le composent.
On ne peut pas faire des opérations arithmétiques sur les textes.
Dans VBA, pour différencier les nombres des textes on utilise un convention, d'écriture: on met le texte entre deux "

Lorsqu'on veut représenter un nombre en dérogeant aux règles mathématiques d'écriture des nombres, on est obligé d'utiliser du texte.

On peut représenter septembre par le nombre 9 (le mois numéro 9) pour faire des opérations sur ce nombre.

On peut représenter septembre par le texte 9 ou 09 mais on ne peut pas faire d'opération arithmétiques sur ce texte (il faudrait convertir le texte en nombre).
Dans ce cas, en VBA on écris "9" ou "09".

Pour transformer le nombre 9 en texte "09" tu peut utiliser la fonction Format :

Dim intMois as Integer    
Dim strMois as String    

intMois = 9    
strMois = Format(intMois, "00")


Cordialement
Patrice
7
A la fois pour faire des opérations, et à la fois des concaténations.


Jodko.
2
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 942
Modifié par Mytå le 5/11/2011 à 01:32
Re le forum

Pour les opérations pas besoin du zéro devant les nombres inférieurs à 10

Pour la concaténation utilise «format»
"A" & Format(mois, "00") & "B"

Mytå
0
Certes oui, mais ce n'est plus un "Integer"...


Jodko.
1
bonjour

comme le dit Myta, déclare la variable mois en string, tu pourras l'utiliser pour les concaténation; pour les calculs utilise alors Val(mois) pour obtenir la valeur numérique.

Bonne suite
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 942
4 nov. 2011 à 18:07
Salut le forum

Utilise une variable String
Dim mois as String
mois = "09"

Mytå
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
4 nov. 2011 à 22:31
Bonjour,
Est-il possible de savoir à quoi est destiné la valeur numérique du mois?
0
Ok, je comprends et vois comment faire ce que je veux.

Merci bcp !


Jodko.
0