PrecedentSuivant

VBA pour Excel

VBA pour Excel - Expressions et assignations

Sur cette page

Instruction d'assignation
Expressions
Opérateurs

Instruction d'assignation

Il y a plusieurs façons d'assigner une valeur à une variable.
Les plus utilisées en VBA sont les instructions d'assignation Let et Set.

[Let] nom = expression

où:

-Let Le nom de l'instruction. Let est pratiquement toujours omis.

-nom Nom de la variable VBA ou de la propriété d'objet. nom ne doit pas désigner un objet.

-expression Une expression VBA dont le résultat sera attribué à nom. Expression ne doit pas être un objet.

Cette instruction d'assignation évalue expression et assigne la valeur résultante à la variable nom en faisant les conversions nécessaires selon les types des variables utilisées dans expression. Donc la valeur de l'expression est COPIÉE dans nom.

Attention au symbole = qui n'a pas le même sens entre nom et expression et dans expression.

Set nom = {[New] expression | Nothing}

-nom Nom de la variable ou propriété d'objet qui contiendra l'objet.
-New Crée une nouvelle instance de la classe identifiée par expression.
-expression Représentant le nom d'un objet, d'une autre variable déclarée du même type objet ou d'une fonction ou méthode renvoyant un objet du même type.
-Nothing Efface la variable nom et libère les ressources qui étaient associées.

Si New est absent, cette instruction d'assignation évalue expression et donne le nom nom à l'objet résultant. Donc nom et expression désignent LE MÊME objet.

Si New est présent, cette instruction crée un nouvel objet de la classe d'expression nommé nom. Donc nom et expression désignent deux objets DIFFÉRENTS.

D'autres instructions peuvent aussi assigner une valeur à une variable:

For, Input, Read, Get, ...

Expressions

Comme dans tout langage de programmation, les expressions VBA sont composées de variables, de propriétés d'objet, de constantes et/ou de fonctions, liées par des opérateurs et des parenthèses.

Tout ce que VBA peut évaluer est une expression et peut faire partie d'une expression.

Les règles sont presque identiques à celles des formules Excel.

Le résultat de l'évaluation d'une expression est la valeur de l'expression, dont le type dépend des éléments composant l'expression.
La valeur d'une expression peut être Null.

ATTENTION: lorsqu'on mélange les types à l'intérieur d'une expression, VBA convertit automatiquement les valeurs dans les types qui SEMBLENT les plus appropriés. Si la plupart du temps, le résultat est correct, il ne l'est pas toujours.

VBA ne détecte aucune erreur
dans le programme à droite et
il s'exécute correctement.

 

Sub exemple()
Dim sNombre As String
    sNombre = 22
    sNombre = sNombre + 2
End Sub
VBA ne détecte aucune erreur dans le programme à droite mais une erreur
"Incompatibilité de type" se produit à l'exécution

 

Sub exemple()
Dim sNombre As String
    sNombre = "Ving deux"
    sNombre = sNombre + 2
End Sub

 

Il est beaucoup plus prudent de vous assurer que les types des éléments de l'expression soient explicites.

Sub exemple()

Dim sNombre As String

sNombre = 22

If IsNumeric(sNombre) Then
    sNombre = CCur(sNombre) + 2
End If

End Sub

Sub exemple()

Dim cNombre As Currency

cNombre = 22

cNombre = cNombre + 2

End Sub

ou utilisez les fonctions de conversion.

Opérateurs

Dans les expressions VBA, vous pouvez utiliser les opérateurs suivants:

Opérateurs arithmétiques
Ces opérateurs combinent deux expressions numériques et retournent une expression numérique.

+ Addition
- Soustraction
* Multiplication
/ Division
\ Division
MOD Reste de division
^ Exposant

Opérateurs de comparaison
Ces opérateurs comparent deux expressions numériques et retournent Vrai ou Faux (type Boolean).

= Égal à
> Supérieur à
< Inférieur à
>= Supérieur ou égal à
<= Inférieur ou égal à
<> Différent de

Opérateurs de concaténation de texte
Ces opérateurs comparent deux expressions String et retournent une expression String.

& combiner (concaténer) deux Strings
+ combiner (concaténer) deux Strings ou en additionne les valeurs. L'utilisation de + pour concaténer deux expressions
crée une confusion inacceptable et doit être évitée à tout prix.

Opérateurs logiques
Ces opérateurs retournent une expression Boolean.
Pour tester si une expression vaut Null, utiliser la fonction IsNull().
Si une des expressions n'est pas de type Boolean, VBA convertit l'expression de la façon suivante:
0 donne Faux, et toute autre valeur donne Vrai (Not Faux).

And (Vrai AND Vrai) donne Vrai
(Vrai AND Faux) donne Faux
(Vrai AND Null) donne Null
(Faux AND Vrai ) donne Faux
(Faux AND Faux) donne Faux
(Faux AND Null) donne Faux
(Null AND Vrai ) donne Null
(Null AND Faux) donne Faux
(Null AND Null) donne Null
Or (Vrai OR Vrai) donne Vrai
(Vrai OR Faux) donne Vrai
(Vrai OR Null) donne Vrai
(Faux OR Vrai ) donne Vrai
(Faux OR Faux) donne Faux
(Faux OR Null) donne Null
(Null OR Vrai ) donne Vrai
(Null OR Faux) donne Null
(Null OR Null) donne Null
Xor (Vrai XOR Vrai) donne Faux
(Vrai XOR Faux) donne Vrai
(Vrai XOR Null) donne Null
(Faux XOR Vrai ) donne Vrai
(Faux XOR Faux) donne Faux
(Faux XOR Null) donne Null
(Null XOR Vrai ) donne Null
(Null XOR Faux) donne Null
(Null XOR Null) donne Null
Not (NOT Vrai) donne Faux
(NOT Faux) donne Vrai
(NOT Null) donne Null
IsNull(Null) donne Vrai
NOT IsNull(Null) donne Faux
Eqv Voir l'aide VBA
Imp Voir l'aide VBA

ATTENTION: Contrairement à ce qu'on peut penser, (NOT Null) retourne Null.
Pour tester si une expression vaut Null, on utilise le plus souvent
IF NOT IsNull(expression) THEN ...

L'opérateur TypeOf retourne aussi une valeur Boolean:

TypeOf variable Is expression

-variable est le nom d'une variable objet.
-expression est un nom de classe

TypeOf vaut Vrai si variable est de type expression et vaut Faux dans les autres cas. Voir TypeName()




 

Abonnez-vous à l'infolettre

Abonnez-vous à l'infolettre du site pour recevoir les dernières nouvelles et aussi des formations à votre courriel. Vous pouvez voir la liste des dernières infolettres ici.

Cliquez ici pour vous abonner à l'infolettre





Ce site est hébergé par 1&1.com