Calculer la factorielle, Excel VBA
Voici un exemple détaillé de code VBA pour calculer la factorielle d’un nombre dans Excel, accompagné d’explications.
Qu’est-ce que la factorielle ?
La factorielle d’un nombre entier positif n est le produit de tous les entiers de 1 à n, soit :
n!=n × (n−1) × (n−2) × ⋯ × 1
Exemple : 5! = 5 × 4 × 3 × 2 × 1 = 120
Code VBA pour calculer la factorielle
Sub CalculerFibonacci() ' Déclare les variables Dim n As Integer Dim fib1 As Long, fib2 As Long, fib3 As Long Dim i As Integer ' Demande à l'utilisateur le nombre de termes à afficher n = InputBox("Combien de termes de la suite de Fibonacci voulez-vous afficher ?", "Entrée", 10) ' Vérifie si le nombre demandé est valide If n <= 0 Then MsgBox "Veuillez entrer un nombre supérieur à 0.", vbExclamation Exit Sub End If ' Initialisation des deux premiers termes de la suite fib1 = 0 fib2 = 1 ' Affiche les deux premiers termes Range("A1").Value = fib1 Range("A2").Value = fib2 ' Calcul des termes suivants et affichage dans la colonne A For i = 3 To n ' Le terme suivant est la somme des deux précédents fib3 = fib1 + fib2 ' Affiche le terme dans la cellule correspondante de la colonne A Cells(i, 1).Value = fib3 ' Met à jour les valeurs des deux derniers termes fib1 = fib2 fib2 = fib3 Next i MsgBox "Calcul terminé pour " & n & " termes de la suite de Fibonacci.", vbInformation End Sub
Explication du code :
1. Déclaration des variables :
- n : Variable pour stocker le nombre dont on veut calculer la factorielle.
- resultat : Variable pour stocker le résultat de la factorielle, déclarée comme Long pour pouvoir gérer des valeurs assez grandes.
- i : Variable de contrôle pour la boucle.
2. Demande d’entrée utilisateur :
n = InputBox("Entrez un nombre entier pour calculer sa factorielle :")
- Utilisation de la fonction InputBox pour demander à l’utilisateur d’entrer un nombre.
3. Validation de l’entrée :
If n < 0 Then MsgBox "La factorielle n'est pas définie pour les nombres négatifs.", vbExclamation Exit Sub End If
- Si l’utilisateur entre un nombre négatif, un message d’erreur apparaît, et l’exécution du code est arrêtée avec Exit Sub.
4. Initialisation du résultat :
resultat = 1
- La variable resultat est initialisée à 1, car la multiplication commence avec cette valeur (c’est le cas pour la multiplication de la factorielle).
5. Calcul de la factorielle avec une boucle :
For i = 1 To n resultat = resultat * i Next i
- La boucle For itère de 1 à nnn, multipliant resultat par chaque valeur de i à chaque itération.
5. Affichage du résultat :
MsgBox "La factorielle de " & n & " est : " & resultat
- Une fois le calcul terminé, un message pop-up affiche le résultat de la factorielle de n.
Utilisation du code :
- Ouvrez Excel et appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
- Dans l’éditeur VBA, insérez un nouveau module :
- Cliquez sur Insertion dans la barre de menu et sélectionnez Module.
- Copiez et collez le code ci-dessus dans ce module.
- Pour exécuter le code, appuyez sur F5 ou allez dans le menu Exécuter et sélectionnez Exécuter Sub/UserForm.
Un message apparaîtra vous demandant d’entrer un nombre, et après cela, un autre message vous donnera la factorielle de ce nombre.
Exemple d’exécution :
Si vous entrez 5 dans la boîte de dialogue, le programme calculera 5! et affichera le message :
La factorielle de 5 est : 120