Fonction VB renvoyant un tableau de variant
therese94340
Messages postés
1
Statut
Membre
-
alino-91 -
alino-91 -
Bonjour,
je souhaite simplement créé une fonction VB qui me retourne un tableau de variant, je declare la fonction comme ci-dessous et je me prends l'erreur: "Erreur de compilation, argument non facultatif" .... Avez-vous une idée.
Merci pour votre aide.
Function montableau(param1 As String, param2 As String) As Variant()
Set montableau(1) = param1
Set montableau(2) = param2
End Function
Sub AppelFonc()
Dim Elem1 As Variant
Set Elem1 = montableau("Emement1", "Element2")(1)
MsgBox Elem1
End Sub
je souhaite simplement créé une fonction VB qui me retourne un tableau de variant, je declare la fonction comme ci-dessous et je me prends l'erreur: "Erreur de compilation, argument non facultatif" .... Avez-vous une idée.
Merci pour votre aide.
Function montableau(param1 As String, param2 As String) As Variant()
Set montableau(1) = param1
Set montableau(2) = param2
End Function
Sub AppelFonc()
Dim Elem1 As Variant
Set Elem1 = montableau("Emement1", "Element2")(1)
MsgBox Elem1
End Sub
A voir également:
- Fonction VB renvoyant un tableau de variant
- Tableau word - Guide
- Fonction si et - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
6 réponses
il ya des erreurs dans ton code (en plus il lui manque de la lisibilité)
Voici comment il faut faire (je l'ai testé, il marche)
Function MonTableau(Param1 As String, Param2 As String) As Variant
MonTableau = Array(Param1, Param2)
End Function
Sub AppelFonc()
Dim Elem1 As Variant
Elem1 = MonTableau("Emement1", "Element2")
MsgBox Elem1(0) & " " & Elem1(1)
End Sub
Voici comment il faut faire (je l'ai testé, il marche)
Function MonTableau(Param1 As String, Param2 As String) As Variant
MonTableau = Array(Param1, Param2)
End Function
Sub AppelFonc()
Dim Elem1 As Variant
Elem1 = MonTableau("Emement1", "Element2")
MsgBox Elem1(0) & " " & Elem1(1)
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour être un peu plus propre niveau mémoire tu peux aussi passer le tableau par référence :
Function MonTableau(Param1 As String, Param2 As String, byRef tabl() as variant)
tabl(0) = param1
tabl(1) = param2
End Function
Sub AppelFonc()
Dim Elem(2) As Variant
MonTableau "Element1", "Element2", Elem
MsgBox Elem(0) & " " & Elem(1)
End Sub
Function MonTableau(Param1 As String, Param2 As String, byRef tabl() as variant)
tabl(0) = param1
tabl(1) = param2
End Function
Sub AppelFonc()
Dim Elem(2) As Variant
MonTableau "Element1", "Element2", Elem
MsgBox Elem(0) & " " & Elem(1)
End Sub
' Une autre solution avec Split
Public Sub Randomise()
Dim str As String, i As Integer
str = Test()
MsgBox (str)
Dim Tableau() As String
Tableau = Split(str, "#")
For i = 0 To 2 - 1
MsgBox (Tableau(i))
Next i
End Sub
Public Function Test() As String
Dim s As String
s = "One"
s = s & "#Two"
Test = s
End Function