« Macros-commandes VBA/Manipulation des variables » : différence entre les versions

Contenu supprimé Contenu ajouté
m Robot : Remplacement de texte automatisé (-\n(==={0,3})(?: *)([^\n=]+)(?: *)\1(?: *)\n +\n\1 \2 \1\n)
Ligne 23 :
{{exemple
| contenu =
<sourcesyntaxhighlight lang="vb">
Dim Nom As String
Dim Age As Integer
</syntaxhighlight>
</source>
déclare une chaîne de caractères <code>Nom</code> et un entier <code>Age</code>
 
Attention
<sourcesyntaxhighlight lang="vb">
Dim B1, B2, B3 As Boolean
</syntaxhighlight>
</source>
déclare <code>B1</code> et <code>B2</code> comme variant et uniquement <code>B3</code> comme booléen.
}}
Ligne 47 :
{{exemple
| contenu =
<sourcesyntaxhighlight lang="vb">
Dim Nom As String
</syntaxhighlight>
</source>
placé en début d'une procédure, déclare une chaîne de caractères <code>Nom</code> pour la procédure courante uniquement.
 
<sourcesyntaxhighlight lang="vb">
Dim Nom As String
</syntaxhighlight>
</source>
placé en début de formulaire, déclare une chaîne de caractères <code>Nom</code> pour toutes les procédures de celui-ci.
 
<sourcesyntaxhighlight lang="vb">
Public Nom as String
</syntaxhighlight>
</source>
placé dans un module, déclare une chaîne de caractères <code>Nom</code> pour tout le projet.
}}
Ligne 70 :
{{exemple
| contenu =
<sourcesyntaxhighlight lang="vb">
Dim x As Integer
Dim y As Boolean
Ligne 76 :
x = 3
y = True
</syntaxhighlight>
</source>
 
<code>x</code> vaut 3 et <code>y</code> vaut Vrai
Ligne 87 :
{{exemple
| contenu =
<sourcesyntaxhighlight lang="vb">
a = 52
b = 8
Ligne 95 :
e = a * b 'e vaut 416
f = a / b 'f vaut 6,5
</syntaxhighlight>
</source>
}}
 
Ligne 102 :
{{exemple
| contenu =
<sourcesyntaxhighlight lang="vb">
a = 52
b = 8
c = a Mod b 'c vaut 4
</syntaxhighlight>
</source>
}}
 
Ligne 141 :
==== Arrondir un nombre ====
Il existe par défaut quatre fonctions pour arrondir :
<sourcesyntaxhighlight lang="vb">
Sub arrondir()
a = "5,5"
Ligne 157 :
MsgBox Format(a, 0) ' 5
End Sub
</syntaxhighlight>
</source>
 
===== Au supérieur =====
<sourcesyntaxhighlight lang="vb">
a = 1,33
msgbox round(a+0.5)
</syntaxhighlight>
</source>
 
===== À l'inférieur =====
<sourcesyntaxhighlight lang="vb">
a = 1,66
msgbox round(a-0.5)
</syntaxhighlight>
</source>
 
=== Opérations logiques ===
Ligne 183 :
{{exemple
| contenu =
<sourcesyntaxhighlight lang="vb">
Dim a, b As Boolean
a = True
Ligne 192 :
e = a Xor b 'e contient True
f = Not a 'f contient False
</syntaxhighlight>
</source>
}}
 
Ligne 202 :
 
{{Propriété|contenu=En début de module, la commande <code>OPTION COMPARE TEXT</code> change ce mode de comparaison des chaines et ignore la casse (a = A). De plus, "B > " et "A > B" renvoient vrai dans ce mode. Pour y comparer des chaines sans avoir à le faire caractère par caractère, il faut utiliser <code>StrComp()</code>. Exemple :
<sourcesyntaxhighlight lang="vb">
StrComp("A", "B", vbBinaryCompare)
</syntaxhighlight>
</source>
Qui donne le même résultat (un booléen faux, soit "-1") que :
<sourcesyntaxhighlight lang="vb">
OPTION COMPARE BINARY
A > B
</syntaxhighlight>
</source>
}}
 
Ligne 238 :
{{exemple
| contenu =
<sourcesyntaxhighlight lang="vb">
c1 = "minuscule"
c2 = "VisualBasic"
Ligne 250 :
c = a <> b 'c contient False
c = a = b 'c contient True
</syntaxhighlight>
</source>
}}
 
{{attention|taille=100px|Avec_fond = oui|couleurFond=#FAFAFA;|Les chaines de caractères contenant des nombres ne sont pas converties automatiquement en nombre lors des comparaisons :<br/>
<sourcesyntaxhighlight lang="vb">
a = "1"
MsgBox a > 2 ' True
MsgBox 1 > 2 ' False
MsgBox CInt("1") > 2 ' False
</syntaxhighlight>
</source>
}}
 
Ligne 268 :
{{exemple
| contenu =
<sourcesyntaxhighlight lang="vb">
a = "abcdefghi"
b = Len(a) 'b contient 9
</syntaxhighlight>
</source>
}}
 
Ligne 280 :
{{exemple
| contenu =
<sourcesyntaxhighlight lang="vb">
a = "abcd"
b = "efgh"
c = a + b 'c contient la chaîne "abcdefgh"
</syntaxhighlight>
</source>
}}
 
Ligne 296 :
{{exemple
| contenu =
<sourcesyntaxhighlight lang="vb">
a = " abcd "
b = " efgh "
Ligne 304 :
b1 = RTrim$(b) 'b1 contient la chaîne " efgh"
c1 = Trim$(c) 'c1 contient la chaîne "abcd efgh"
</syntaxhighlight>
</source>
}}
 
Ligne 315 :
{{exemple
| contenu =
<sourcesyntaxhighlight lang="vb">
a = "BlAbLa"
b = LCase$(a) 'b vaut "blabla"
c = UCase$(a) 'c vaut "BLABLA"
</syntaxhighlight>
</source>
}}
 
Ligne 331 :
{{exemple
| contenu =
<sourcesyntaxhighlight lang="vb">
a = "123456789"
b = Right$(a, 5) 'b contient les 5 caractères les plus à droite de a, c'est-à-dire "56789"
Ligne 338 :
d = Mid$(a, 3, 4) 'd contient 4 caractères à partir du troisième, c'est-à-dire "3456"
'Attention aux paramètres : Mid$(chaîne, départ, longueur)
</syntaxhighlight>
</source>
}}
 
Ligne 347 :
{{exemple
| contenu =
<sourcesyntaxhighlight lang="vb">
t1 = "45"
t2 = "w"
Ligne 354 :
b1 = InStr(s, t1) 'b1 vaut 4 car "45" commence au quatrième caractère de s
b2 = InStr(s, t2) 'b2 vaut 0 car "w" est introuvable dans s
</syntaxhighlight>
</source>
}}
 
Ligne 363 :
{{exemple
| contenu =
<sourcesyntaxhighlight lang="vb">
a = "23"
b = "17.5 ans"
Ligne 371 :
d = Val(b) 'd vaut 17.5
z = Val(y) 'z vaut 0
</syntaxhighlight>
</source>
}}
 
Ligne 386 :
{{exemple
| contenu =
<sourcesyntaxhighlight lang="vb">
Dim a As Integer
Dim b As Integer
Ligne 392 :
a = 2.51
b = 2.49
</syntaxhighlight>
</source>
 
Après l'exécution de ces lignes, <code>a</code> contiendra en réalité 3 et <code>b</code> contiendra 2.
Ligne 401 :
{{exemple
| contenu =
<sourcesyntaxhighlight lang="vb">
Dim s As String
Dim a As Integer
Ligne 409 :
b = 17.2
s = "a+b vaut " & (a + b) & " !"
</syntaxhighlight>
</source>
 
Avec '''&''', s contient "a+b vaut 31.2 !"
 
<sourcesyntaxhighlight lang="vb">
Dim s As String
Dim a As Integer
Ligne 421 :
b = 17.2
s = "a+b vaut " + (a + b) + " !"
</syntaxhighlight>
</source>
 
Avec '''+''', on obtient l'erreur d'exécution 13 : Types incompatibles