XL 2016 [VBA] Les boucles

shanon7

XLDnaute Junior
Bonjour,

Je débute en VBA et je tombe sur cet exercice entièrement rédigé dont je peine à comprendre une ligne :

La procédure suivante calcule la somme des n premiers entiers :
Sub SommeEntiers()
Dim somme As Integer
Dim compteur As Integer
Dim n As Integer
n = InputBox("Donner un entier :", "Saisie entier")
For compteur = 1 To n
somme = somme + compteur
Next compteur
Call MsgBox("Somme des " & n & " premiers entiers : " & somme)
End Sub

Je ne comprends pas bien la ligne que j'ai mise en gras. On dit que somme prend sa valeur + celle du compteur mais étant donné que l'on n'a jamais donné de valeur initiale à cette variable somme, je ne comprends pas comment le programme arrive à comprendre ce qu'il faut faire ?? Je ne sais pas si je suis claire, mais en tout cas j'ai vraiment du mal à comprendre cette ligne.

Merci à quiconque pourra bien me comprendre et m'éclairer lol

Shanon
 
Solution
Bonjour Shanon,
Le VBA est très permissif aux dires de beaucoup. Il permet pas mal de légèretés.
Par exemple vous n'êtes pas obliger de déclarer les variables, ou les déclarer sans les typer ....
Si vous n'initialisez pas vos variables elles prennent leurs valeurs par défaut 0 si le type est numérique, "" si elles sont de type texte ...
En toute rigueur, la bonne écriture eût été :
VB:
Dim somme As Integer
somme=0
Mais bon, ça simplifie tellement la vie ! 😅

JM27

XLDnaute Barbatruc
bonjour
la solution est la
Dim somme As Integer

donc au lancement de la macro elle est égale à zéro par défaut
Cette variable est déclarée en integer ( entier jusqu'à 32767)
attention si une valeur n'est pas entière , ca va pas le faire( erreur dépassement de capacité)
Je l'aurais déclaré en double pour éviter ce pb
pour t'aider : sélectionnes integer et touche F1 pour l'aide
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Shanon,
Le VBA est très permissif aux dires de beaucoup. Il permet pas mal de légèretés.
Par exemple vous n'êtes pas obliger de déclarer les variables, ou les déclarer sans les typer ....
Si vous n'initialisez pas vos variables elles prennent leurs valeurs par défaut 0 si le type est numérique, "" si elles sont de type texte ...
En toute rigueur, la bonne écriture eût été :
VB:
Dim somme As Integer
somme=0
Mais bon, ça simplifie tellement la vie ! 😅
 

Statistiques des forums

Discussions
312 101
Messages
2 085 297
Membres
102 855
dernier inscrit
creed