Appel d'un fonction(dans une Modules) sur une code(Feuille)
Bonjour tous,
J'ai écrit une fonction fnStats sur une Module, je veux l'utiliser dans un autre code (sous le même dossier Excel).
Il m'affiche le message d'erreur : End Sub attendu!
Je comprends pas....
Je vous remercie par avance!
Private Sub butt_validation_Click()
Dim titre As String
Dim debut As Date
Dim fin As Date
Dim discret As Boolean
Dim rg As Range
Dim r() As Variant
Dim fnStats As Variant
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Statistiques")
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'% 1ere partie : récupation choix de l'utilisateur
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'titre
titre = Me.combo_titres.Value
'date de début
debut = Me.combo_datesDebut.Value
'date de fin
fin = Me.combo_datesFin.Value
'nature de rendement
discret = Me.opt_discret.Value
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'%2e calcul des stats%
'calcul avec fonction codée fnStat
Function fnStats(rg As Range, titre As String, debut As Date, fin As Date, discret As Boolean)
With WorksheetFunction
fnStats = Array(.Average(r), .StDev(r), .Skew(r), .Kurt(r))
End Function
'création d 'un nouveau fichier(avec 1 feuille)
Sheets.Add
ActiveSheet.Name = "Résultat"
'report sur le fichier les stats demandés_
'(Si bouton coché alors report du résultat)
ws.Range("A20:24").Select
Selection.Cut
Selection.ThisWorkbook.Worksheet("Résultat").Paste
End Sub
tu ne peux pas coder ta fonction dans un sub...
sors la du sub..
Merci bcp de votre réponse! J'ai modifié sur votre conseil, mais de nouveau: "argument ou appel de procédure incorrecte".
je ne comprends pas que j'ai déjà défini fnStats As Variant.
Private Sub butt_validation_Click()
Dim titre As String
Dim debut As Date
Dim fin As Date
Dim discret As Boolean
Dim rg As Range
Dim r() As Variant
Dim fnStats As Variant
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'% 1ere partie : récupation choix de l'utilisateur
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'titre
titre = Me.combo_titres.Value
'date de début
debut = Me.combo_datesDebut.Value
'date de fin
fin = Me.combo_datesFin.Value
'nature de rendement
discret = Me.opt_discret.Value
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'%2e calcul des stats%
'calcul avec fonction codée fnStat
With WorksheetFunction
fnStats(rg, titre, debut, fin, discret) = Array(.Average(r), .StDev(r), .Skew(r), .Kurt(r))
End With
'création d 'un nouveau fichier(avec 1 feuille)
Sheets.Add
ActiveSheet.Name = "Résultat"
'report sur le fichier les stats demandés_
'(Si bouton coché alors report du résultat)
With WorksheetFunction
fnStats = Array(.Average(r), .StDev(r), .Skew(r), .Kurt(r)).ThisWorkbook.Worksheet("Résultat").Value
End With
End Sub