Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 [VBA] Les boucles

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 ! 😅
Est-ce qu'il ne faudrait pas écrire somme = 0 pour l'initialiser, juste avant d'écrire la boucle for ?
Ou bien est-ce que par défaut, la valeur d'une variable à laquelle aucune valeur n'est affectée est 0, donc inutile de le préciser ?
 
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
 
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 ! 😅
 
Bonjour à tous,

@shanon
Ne pas hésiter à dérouler le code.
Taper successivement sur F8 dès le début du code et positionnez votre souris sur la valeur prise par une variable (comme "somme"). Quand on fait des boucles, ça reste utile.

Xl-ment
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
649
Réponses
4
Affichages
165
Réponses
10
Affichages
527
  • Question Question
Microsoft 365 macro vba sumifs
Réponses
5
Affichages
602
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…