Microsoft 365 VBA somme des 100 premiers entiers

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 !

Magicdog36

XLDnaute Nouveau
Bonjour,

On me demande : Créez une macro qui affiche la somme des 100 premiers entiers.

J'ai fait :

Sub ex10 ()
N = 100
x = N * (N + 1) / 2
MsgBox x
End Sub


La macro fonctionne mais mon prof me demande de calculer la somme avec une boucle plutôt qu'avec la formule n(n+1)/2. Je n'y arrive pas...
 
Si tu es es sûr que les trois sont des boucles, ça te fait trois possibilités.
Mais en réalité, il y en a un des trois qui n'est pas vraiment une boucle mais plutôt un simple test. Ne crois-tu pas ? 😉

Commence avec un FOR, c'est la plus simple.
 
Marcel j'ai réussi à faire la boucle !!
N = 100
Cells(1, 1) = 1
For i = 2 To N
Cells(i, 1) = i + Cells(i - 1, 1)
Next
MsgBox Cells(N, 1)

Mais maintenant je n'arrive pas à la lancer sans l'affecter aux cellules. Je voudrais juste avoir mon msgbox.
Il faudrait que je change les Cells par des variables mais je n'y arrive pas 🙁
 
Bonjour,

Il vaut mieux ne pas utiliser comme zone de stockage intermédiaire une ou plusieurs cellules. Écrire via une feuille de calcul, c'est très long. On peut utiliser une variable intermédiaire et l'afficher à la fin, ce qui est bien plus rapide.

VB:
Option Explicit

Sub Sommer()
Dim n As Long, Som As Currency, i As Long
   Do While Not n >= 1
      n = Int(Application.InputBox("Saisir un entier >= à 1 svp ?", Type:=1))
   Loop
   For i = 1 To n: Som = Som + i: Next i
   MsgBox "La somme des entiers de 1 à " & Format(n, "#,##0") & " est :    " & Format(Som, "#,##0")
End Sub

nota: le type Currency permet de manipuler des nombres (notamment des entiers) plus grands que le type long (si vous saisissez la borne n=100000, avec le type Long on aboutit à une erreur, avec le type currency ça passe)
 
Dernière édition:
j'ai fait ça comme macro du coup.

Sub ex10()
N = 100
For i = 1 To N
j = j + i
Next
MsgBox j
End Sub
Bravo, c'est excellent ! 😉

Tu n'es pas obligé d'utiliser une variable pour déterminer la borne haute de ton For.
Tu peux directement écrire la valeur.
Ça donnerait donc ça :
VB:
Sub ex10()
j = 0
For i = 1 To 100
    j = j + i
Next
MsgBox j
End Sub
 
- 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

Réponses
12
Affichages
431
Réponses
2
Affichages
201
Réponses
2
Affichages
274
Réponses
72
Affichages
1 K
Retour