Calculer la factorielle, Excel VBA

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 : 

  1. Ouvrez Excel et appuyez sur Alt + F11 pour ouvrir l’éditeur VBA. 
  2. Dans l’éditeur VBA, insérez un nouveau module : 
  3. Cliquez sur Insertion dans la barre de menu et sélectionnez Module
  4. Copiez et collez le code ci-dessus dans ce module. 
  5. 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 

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x