Dans le chapitre précédent, vous avez appris à déclarer une variable, c'est-à-dire à en créer une en mémoire. Avec le code que vous connaissez, vous savez réserver un emplacement dans la mémoire, en lui donnant un nom.
Seulement voilà, c'est bien beau de déclarer des variables à tout va, mais si on ne leur donne pas une valeur, elle n'ont aucun intérêt.
Dans un premier temps, nous allons voir comment modifier la valeur d'une variable. Ensuite, nous verrons quelques opérations de base que VB est capable d'effectuer...
L'affectation d'une valeur est l'opération qui modifie la valeur d'une variable. Par exemple, une variable a pour nom intVolume, et elle est de type Integer. Elle a donc été déclarée comme nous l'avons appris (ici dans une procédure) :
Sub MaSub() Dim intVolume As Integer End Sub
![]() |
Avec VB, les espaces ainsi que les entrées comme ci-dessus ne comptent pas. Ils sont là pour la présentation, pour rendre le code plus clair. |
![]() |
Par ailleurs, il existe une sorte de "convention" facultative qui consiste à faire précéder le nom des variables par leur type (en 3 lettres). Pour Integer, on met int... ; pour String, c'est str... Ainsi, on reconnaît de suite le type de la variable. |
Notez que vous pouvez aussi bien déclarer la variable à l'extérieur de la procédure, cela n'aura pas d'effet sur ce que nous allons apprendre. Le code ci-dessous marche aussi bien :
Public intVolume As Integer Sub MaSub() End SubBien, jusqu'ici rien de vraiment nouveau, on a déclaré la variable. Vous connaissez son nom : intVolume. Oui, mais maintenant quelle est sa valeur ? Rappelez-vous qu'une variable possède un nom et une valeur, et c'est cette valeur qui nous intéresse le plus.
Selon le type de variable, les valeurs ne sont pas les mêmes. Mais au départ, lorsque vous avez déclaré votre variable, elle est en mémoire et elle a forcément une valeur. Quelle est-elle ?
C'est la valeur nulle. Pour le type Integer, ainsi que tous les types stockant des nombres, la valeur nulle est 0. intVolume a donc pour l'instant la valeur 0.
![]() |
Si le type de données n'est pas numérique, la valeur nulle n'est pas 0, comme vous le verrez plus bas. |
L'objectif est de modifier la valeur de intVolume. Pour cela, vous allez apprendre une nouvelle instruction : l'instruction d'affectation.
Vous devez utiliser le signe égal : =. A gauche du signe, tapez le nom de la variable à modifier. A droite, tapez la nouvelle valeur. Voici un exemple :
intVolume = 4La variable intVolume a changé de valeur : elle est passée de 0 à 4. Bien entendu, comme toute instruction, l'instruction d'affectation ne peut se trouver qu'à l'intérieur d'une procédure :
Sub MaSub() Dim intVolume As Integer intVolume = 4 End SubComme la déclaration de la variable n'est pas une instruction, elle peut se trouver à l'extérieur. Mais l'affectation DOIT se passer à l'intérieur de la procédure. Voici le code illustrant cela :
Public intVolume As Integer Sub MaSub() intVolume = 4 End SubComme vous pouvez le voir, c'est extrêmement simple.
![]() |
Mais faites-moi le plaisir de ne pas faire d'erreur si une instruction aussi simple. C'est-à-dire, n'essayez pas d'affecter la valeur 6,2 à une variable Integer, elle ne peut stocker que des entiers. |
Allez, on va se faire plaisir, on va compliquer un peu la chose :-). On va travailler sur deux variables au lieu d'une. Essayez de comprendre le code suivant (je mettrai dorénavant les déclarations à l'intérieur des procédures, mais vous pouvez toujours le faire à l'extérieur sans aucun problème) :
Sub MaSub() Dim intVolume As Integer Dim intSuper As Integer intVolume = 4 intSuper = intVolume End SubQue s'est-il passé ? C'est très simple : après avoir déclaré les deux variables, j'ai affecté la valeur 4 à intVolume. Puis, j'ai affecté la valeur de intVolume à intSuper, qui prend du coup la valeur 4.
Si j'avais écrit l'instruction à l'envers, j'aurais affecté la valeur de intSuper (0) à intVolume :
intVolume = intSuper
![]() |
Le sens a vraiment de l'importance. La ligne : 7 = intVolume demande à l'ordinateur d'affecter au nombre 7 la valeur de intVolume... ce qui est impossible, et génère une erreur. |
Avec le type String
Nous avons vu jusqu'ici comment affecter une valeur à une variable de type Integer : c'est valable pour tous les types de données stockant des nombres.
Or, comme nous l'avons vu, on peut stocker autre chose que des nombres. Le type String, par exemple, stocke une suite de caractères alphanumériques. Une phrase quoi...
Si vous affectez une phrase à une variable String, vous devez l'entourer de guillemets, comme ceci :
strPhrase = "Bonjour, je suis une phrase."C'est la seule règle à respecter lorsqu'on manipule ce type de données.
Pour le type String, la valeur nulle, c'est du vide. On la note avec deux guillemets : "".
Avec le type Boolean
Le type Boolean, lui, stocke... un booleen. Ce type de données, je vous le rappelle, sert à savoir si quelque chose est Vrai (True) ou Faux (False). Ce sont les deux seules valeurs qu'il accepte.
Remarquez que, si vous déclarez un boolean et que vous tentez de lui affecter une valeur, VB vous propose une liste de choix. Bien entendu, il n'y en a que 2. Vous devriez voir ceci :
Vous pouvez soit double-cliquer sur la valeur qui vous intéresse, soit continuer à taper le mot-clé vous-même. L'instruction doit ressembler à cela :
bolVraiOuFaux = TrueEn ce qui concerne la valeur nulle du type Boolean, c'est False. Tous les Booleans sont Faux par défaut.
Voilà, vous avez tout vu sur l'affectation de valeur, et même un peu plus ;-)
Nous allons à présent faire des petits calculs en utilisant les variables.
Qu'est-ce qu'une constante ? C'est comme une variable, mais ça n'en est pas une puisqu'elle a une valeur unique qu'il est impossible de changer. Par exemple, la constante datMidi, de type Date, a la valeur 12:00:00. Cette valeur est susceptible de ne pas changer (en effet, midi c'est toujours 12 heures).
Quel intérêt alors si la variable ne change pas de valeur ? Cela vous évite d'avoir à retenir un nombre ou une phrase, et d'avoir à la retaper à chaque fois en entier. Il suffit juste de taper le nom de la constante qui a cette valeur.
Pour déclarer une constante (on ne dira plus variable dans ce cas, puisqu'elle ne peut pas "varier"), cela ressemble un peu à la déclaration d'une variable :
Const sinNombrePi As Single = 3.14159265358979Le mot-clé Const remplace Public et Dim. On peut déclarer une constante à l'intérieur ou à l'extérieur d'une procédure.
Ainsi, à chaque fois que vous devrez faire référence au nombre Pi, il vous suffira de taper sinNombrePi. Avouez que c'est plus court et plus facile à retenir que 3.14159265358979 !
![]() |
Attention ! Sous VB, pour écrire des nombres décimaux, il faut utiliser le point et non pas la virgule ! |
Il existe 4 opérations de base. Vous les avez apprises au primaire, alors ne me dites pas que vous ne les connaissez pas :-p. Bon, comme vous êtes un zéro, je vous les rappelle ;-) :
Tout d'abord, les signes à utiliser ne sont pas exactement les mêmes que ceux que vous avez appris. Vous les retrouverez sur le pavé numérique (tout à droite de votre clavier). Voici un petit tableau que vous devez connaître par coeur :
Opération | |
---|---|
Addition | |
Soustraction | |
Multiplication | |
Division |
Le "Moins" est un tiret, le "Multiplier par" est une étoile, et le "Diviser par" est un slash (/).
L'opération se fait dans une instruction d'affectation. C'est en fait une instruction d'affectation un peu plus complexe. Le mieux pour l'expliquer est d'avoir un exemple :
intVolume = 6 * 4intVolume prend alors la valeur... 24 ! Je vois que vous connaissez encore les tables de multiplication, c'est bien, c'est très bien :-p
La règle de priorité des calculs s'applique ici. Quoi, vous ne vous en rappelez pas ? Bon, alors voilà comment cela fonctionne : les multiplications et les divisions sont effectuées en priorité. Devinez combien fait :
intVolume = 3 + 5 * 4Eh bien, ça ne fait pas 32 ! Ca fait 23 ! En effet, l'ordi calcule d'abord 5 * 4, puis il calcule les additions. Si vous tenez vraiment à faire d'abord 3 + 5, il faut mettre des parenthèses :
intVolume = (3 + 5) * 4Voilà, comme ça vous savez vraiment tout. Bien entendu, vous pouvez faire le calcul directement sur une variable (ce qui arrivera dans 99,9 % des cas) :
intVolume = ((intSuper + 6) / intEuros) - 5) * 8Ce calcul est complexe certes, d'autant plus qu'il dépend des valeurs de intSuper et intEuros. C'est là pourtant tout l'intérêt de la programmation.
Un peu de calcul mental, ça ne peut pas faire de mal. Nous supposerons que intNombre1 = 5 et que intNombre2 = 2. Pour chacune des 3 premières questions, vous devrez trouvez la valeur de intResultat.
intResultat = intNombre1 - intNombre2 * intNombre2
intResultat = (intNombre2 + intNombre2 * intNombre2) - intNombre1 * 2 + intNombre2
intResultat = intNombre1 / (intNombre2 - intNombre2)
Quelle est la valeur nulle du type Boolean ?
Pour finir, déclarez une constante de type Integer, de nom intDoigts, ayant pour valeur 10.
Vous avez bien manipulé les variables dans ce chapitre. Mine de rien, on avance et on apprend pas mal de choses. Vous allez voir que tout ça vous sera vraiment très utile par la suite.
Si vous êtes un peu matheux, vous pouvez vous entraîner à faire des calculs sur des variables dans votre tête, en complexifiant encore un peu les instructions... Ca ne peut que vous faire du bien ;-)