Débuter avec Excel VBA les Variables.

1
11150

dans cette partie nous allons voir comment fonctionne les variables dans Excel VBA . nous allons voir comment déclarer ou Crée une Variable, comment afficher le contenue d’une variable. comment effectuer des calcules grâce au variable.


1 Excel une variable c’est quoi ?

une variable c’est comme un post-it ou nous allons placer une information dessus.
par exemple sur la post-it bleu nous allons afficher un phrase comme “ Apprendre Excel VBA avec Daniel sur la chaine de Rein c’est Génial”.

et quand quelque viens chez vous et vous demmande he sais tu ou je peux trouver un cours d’excel VBA.

vous allez dire oui regarde sur le post-it bleu et en language VBA ça ce traduit comme suite.

 postit_bleu = “apprendre excel vba avec daniel sur la chaine de rien c’est génial”
range(“a1”)=postit_bleu 

donc au lieu de devoir écrire le texte à chaque fois nous allons seulement placer le contenue dans une variable et par la suite nous allons faire appel à la variable.

 2 Déclarer une varialbe

si nous savons quel type de contenue une variable va avoir il faut mieux la déclaré selon le type de contenue et cela nous allons faire pour réduire la mémoire qu’Excel va utiliser et ainsi éviter que le code devient trop lourd et qui risque donc de ralentir notre petit programme. 

et je vous conseille de toujour bien déclarer vos variable. 

mais comment est-ce qu’il faut déclarer une variable. 

c’est asser simple vous allez voir. dans notre exemple de post-it nous savons qu’il contient que du texte et dans le monde de la programmation du texte ça se nomme string et donc nous allons déclarer notre varialbe comme suite:

dim postit_bleu as string.
postit_bleu = “apprendre excel vba avec daniel sur la chaine de rien c’est génial”
 range(“a1”)=postit_bleu

lé nous allons voir quelque type possible. 

String Texte exemple “un simple texte”
Integer Chiffre exemple 1234567890
date date exemple 14/01/2018
Boolean Vrai — Faux
double chiffre avec virgule exemple 0,5165464
Currency de la money 1,26€

 3 Calculé avec les variables

 

désormais nous allons voir comment nous pouvons utiliser des varialbes pour le calcule. nous allons déclaré 3 varialbe 

Sub test()
Dim H As Integer
Dim L As Integer
Dim R As Integer 
H = Sheets(« feuil1 »).Range(« a1 »).Value
L = Sheets(« feuil1 »).Range(« a2 »).Value
R = H * L
MsgBox (« la hauteur de la salle est  » & H & « m et la longeure est de  » & L & « m qui nous donne une surface total de  » & R & « m² »)
End Sub

 ici quelque chose de particulier nous n’avons pas définit la hauteur et la largeur dans le code mais nous avons fait une référence à une cellule. et donc nous avons rendu notre code un peux plus dynamique car un utilisateur peut indiquer la hauteur et la largeur depuis des cellules et le résultat changera selon la valeur des cellules.

3 Facilité le codage avec les variables. 

désormais nous allons voir comment rendre un eviter les répétition de code grâce aux variables

Private Sub CommandButton1_Click()
Dim i As Integer 
i = Range(« k1 ») 
Range(« a » & i) = Range(« a1 »)
Range(« B » & i) = Range(« b1 »)
Range(« C » & i) = Range(« c1 »)
End Sub

ici quand nous allons changer le chiffre dans K1 alors nous allons changer la ligne ou nous allons placer nos informations et ce n’est pas tout car nous pouvons aussi automatiquement changer la valeur de la variable.

 Range(“k1”)= i + 1

4 La portée des variables.

il faut savoir qu’il y a 3 portée pour une variable. il chaque portée à sa propre utilité.

la première est la portée de la procédure.

c’est celle que nous avons utilisé pour l’instant 

c’est à dire entre un sub () et un end sub, et donc une fois que la procédure est terminée la variable disparaît 

c’est à dire que si nous avons 2 procdure 

sub test1 () 
dim texte as string
texte = “bonjour”
 msgbox  texte
 end sub
 sub test2()
 msgbox texte
 end sub 

nous allons voir que dans la première procédure elle s’affiche mais pas dans le second.

 procédure privé.

nous allons devoir la rendre privé c’est à dire qu’il faut la retirer de la première procédure et désormais toute modification faite dans une procédure à la variable sera aussi visible dans les autres procedure. 

par contre si je vais sur un autre module ben la elle ne s’affiche pas. 

les procedure publique. 

une procédure publique sera utilisé partout dans le projet dans tous les modules. 

voila désormais vous savez à quoi servent les variables et surtout comment les utiliser. dans la prochaine partie nous allons nous attaquer au conditions donc ça promet d’être très intéressant et comme toujours si vous avez des question sur les variables faite le moi savoir dans les commentaire.

1 COMMENTAIRE

  1. Bonjour,
    depuis des jours je galère afin de mettre une textbox au format monétaire.
    Je veux intégrer par exemple 12.50 dans ma textbox pour que ça me donne ensuite 12.50€ dans la textbox et dans ma feuille excel au format monétaire.

    Voila ce que j’ai rentré dans mon userform:
    Sub varibales ()
    ‘Déclarations des variables prix
    Dim px_A As Currency

    ‘Valeurs des variables prix
    px_A = Textbox8
    End Sub

    Private Sub TextBox8_AfterUpdate()
    TextBox8.Value = Format(TextBox8.Value, « 0.00€ »)
    End Sub

    Private Sub TextBox8_Enter()
    If TextBox8 = « NN€ » Then
    TextBox8 = «  »
    End If
    End Sub

    Private Sub TextBox8_Exit(ByVal cancel As MSForms.ReturnBoolean)
    If TextBox8 = «  » Then
    TextBox8 = « NN€ »
    End If
    End Sub

    Private Sub TextBox8_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Not ((KeyAscii > 43 And KeyAscii < 58)) Then
    KeyAscii = 0
    End If
    End Sub

    Private Sub CommandButton1_Click()
    If TextBox1 = "" Or TextBox1 = "JJ/MM/AAAA" Or TextBox2 = "" Or ComboBox1 = "" Or ComboBox4 = "" Or TextBox4 = "" Then
    MsgBox ("Les informations essentielles du formulaire ne sont pas connues!")
    Else
    If Sheets("Tableau de contrats").Range("B3") = "" Then
    Sheets("Tableau de contrats").Range("B3") = TextBox1
    Else
    Sheets("Tableau de contrats").ListObjects(1).ListRows.Add
    End If

    dlt = Sheets("Tableau de contrats").Range("B10000").End(xlUp).Row

    TextBox1 = Format(TextBox1, "MM/DD/YYYY")
    Sheets("Tableau de contrats").Range("b" & dlt) = TextBox1.Value
    Sheets("Tableau de contrats").Range("c" & dlt) = TextBox2
    Sheets("Tableau de contrats").Range("d" & dlt) = ComboBox1
    Sheets("Tableau de contrats").Range("i" & dlt) = ComboBox4
    Sheets("Tableau de contrats").Range("s" & dlt) = TextBox4
    Sheets("Tableau de contrats").Range("t" & dlt) = TextBox5
    Sheets("Tableau de contrats").Range("u" & dlt) = TextBox6
    Sheets("Tableau de contrats").Range("v" & dlt) = TextBox7
    Sheets("Tableau de contrats").Range("x" & dlt) = TextBox8
    Sheets("Tableau de contrats").Range("z" & dlt) = TextBox10
    Sheets("Tableau de contrats").Range("ab" & dlt) = TextBox12
    Sheets("Tableau de contrats").Range("ad" & dlt) = TextBox14
    Sheets("Tableau de contrats").Range("ae" & dlt) = TextBox15
    Sheets("Tableau de contrats").Range("ag" & dlt) = TextBox17
    Sheets("Tableau de contrats").Range("ah" & dlt) = TextBox18
    Sheets("Tableau de contrats").Range("aj" & dlt) = ComboBox5
    Sheets("Tableau de contrats").Range("ak" & dlt) = TextBox20
    Sheets("Tableau de contrats").Range("am" & dlt) = TextBox22
    Sheets("Tableau de contrats").Range("an" & dlt) = TextBox23
    Sheets("Tableau de contrats").Range("ap" & dlt) = TextBox25
    Sheets("Tableau de contrats").Range("aq" & dlt) = TextBox26

    End If

    Pourriez-vous m'aider?

    Bien à vous!

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.