VBA call une function sur userform

Bonjour le forum,

Je veux utiliser ma fonction fnStats dans un userform"calc_stats".

Mais le call ne marche pas en raison d'erreur compilation: constante requise. L'erreur se pointe sur la ligne im fnStats(rg, titre, debut, fin, discret) As Variant et plus précisément le mot "discret" dans cette ligne.

Voulez-vous m'aider svp?

Gd merci 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(rg, titre, debut, fin, discret) As Variant

titre = Me.combo_titres.Value

debut = Me.combo_datesDebut.Value

fin = Me.combo_datesFin.Value

discret = Me.opt_discret.Value

'%2e calcul des stats%

'calcul avec fonction codée fnStat

Call calc_stats.fnStats(rg, titre, debut, fin, discret)

Sheets.Add

ActiveSheet.Name = "Résultat"

Sheets("Résultat").Range("A1:A4") = fnStats

End Sub

Bonsoir

Un début de réponse (je pense que c'est ça)

Quand tu déclares une variable avec l'instruction Dim tous les composants de cette variable (en l’occurrence le tableau fnStats) doivent être des constantes

Exemple

Dim T1(5, 3, 8, 4)            ' Déclaration valable
Dim T1(NbLg, NbCl, Nb, Pos)   ' Déclaration non valable

Ce que tu peux faire c'est déclarer ton Tableau et ensuite l'initialiser quand tu as les valeurs

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(rg, titre, debut, fin, discret) As Variant
Dim fnStats()

titre = Me.combo_titres.Value
debut = Me.combo_datesDebut.Value
fin = Me.combo_datesFin.Value
discret = Me.opt_discret.Value
ReDim fnStats(rg, titre, debut, fin, discret)
Rechercher des sujets similaires à "vba call function userform"