éxecuter une fonction vba dans excel

dorian57290

XLDnaute Nouveau
Bonjour,
je voudrai exécuter cette fonction dans une feuille excel où il y'a 2 cellules:
n Somme_n
30 0



Function somPremEnt(ByVal n As Integer) As Integer
' Hypothèse : n >= 0.
If n >= 0 Then
' Renvoie : la somme des entiers compris entre 0 et n (inclus).
somPremEnt = (n * (n + 1)) / 2
End Function

je suis débutant sur vba j'essaye de m'auto former, merci pour votre aide !
 

dorian57290

XLDnaute Nouveau
Re : éxecuter une fonction vba dans excel

Merci de votre réponse rapide, je ne voit pas ou est le problème justement lol. Ma ligne de code n'est pas bonne ou il faut que j’affecte N à une cellule d'une feuille excel ?
Merci pour votre conseil avec long plutot que integer
 

dorian57290

XLDnaute Nouveau
Re : éxecuter une fonction vba dans excel

somme des N premier entiers.jpg voici mon petit exercice
 

Dranreb

XLDnaute Barbatruc
Re : éxecuter une fonction vba dans excel

Pas vu: manque End If avant la End Sub
Cela réparé la formule marche.
Le code doit être dans un module ordinaire.
VB:
Function somPremEnt(ByVal n As Integer) As Integer
' Hypothèse : n >= 0.
If n >= 0 Then
   ' Renvoie : la somme des entiers compris entre 0 et n (inclus).
   somPremEnt = (n * (n + 1)) / 2
   End If
End Function
 

ROGER2327

XLDnaute Barbatruc
Re : éxecuter une fonction vba dans excel

Bonjour à tous.


Autres propositions :​
Code:
Function somPremEntRoger_1(d)

'Respecte la condition : "... une fonction qui, étant donné
'un entier naturel n, renvoie la somme des n premiers entiers
'naturels non nuls..."
'
'Cette condition impose que :
'   - si n n'est pas entier, la fonction ne renvoie rien (ou
'     une valeur d'erreur) ;
'   - si n n'est pas strictement positif, la fonction ne
'     renvoie rien (ou une valeur d'erreur).

    somPremEntRoger_1 = ""
    If Not IsEmpty(d) And IsNumeric(d) Then
        If d = Int(Abs(d)) Then
            If d > 0 Then somPremEntRoger_1 = d * (d + 1) / 2
        End If
    End If

End Function
Code:
Function somPremEntRoger_2(d)

'Respecte la condition : "... une fonction qui, étant donné
'un entier naturel n, renvoie la somme des n premiers entiers
'naturels non nuls..."
'
'Cette condition impose que :
'   - si n n'est pas entier, la fonction renvoie une valeur
'     d'erreur (ou rien) ;
'   - si n n'est pas strictement positif, la fonction
'     renvoie une valeur d'erreur (ou rien).

    somPremEntRoger_2 = "argument invalide"
    If IsEmpty(d) Then
        somPremEntRoger_2 = ""
    Else
        If IsNumeric(d) Then
            If d = Int(Abs(d)) Then
                If d > 0 Then somPremEntRoger_2 = d * (d + 1) / 2
            End If
        End If
    End If

End Function


Bonne journée.


ℝOGER2327
#7744


Lundi 16 Gueules 142 (Saint Münchhausen, baron - fête Suprême Quarte)
22 Pluviôse An CCXXIII, 5,9616h - thyméle
2015-W07-2T14:18:28Z
 

Pièces jointes

  • Somme d'entiers.xlsm
    19.5 KB · Affichages: 29
  • Somme d'entiers.xlsm
    19.5 KB · Affichages: 36
  • Somme d'entiers.xlsm
    19.5 KB · Affichages: 35
Dernière édition:

Discussions similaires

Réponses
6
Affichages
227

Statistiques des forums

Discussions
312 102
Messages
2 085 304
Membres
102 857
dernier inscrit
Nony1931