OVH Cloud OVH Cloud

Probleme de déclaration dans une fonction

6 réponses
Avatar
Eric vallauri
Bonsoir à tous
j'ai besoin d'ecrire une fonction utilisant des types utilisateur

Type mavariable
id as integer
.....
END TYPE


function mafonction(byval val1 as double) as mavariable
mafonction.id=val1
end function

quand dans excel je tape la formule "=mafonction(2)"
j'ai un message d'erreur "type défini par utilisateur non défini"
je ne trouve pas l'erreur
merci d'avance
eric vallauri





---
Antivirus avast! : message Sortant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 20:51:29
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com

6 réponses

Avatar
michdenis
Bonjour Éric,

Essaie comme ceci :


Type mavariable
id As Integer
'.....
End Type

'----------------
Function mafonction(ByVal val1 As Double)
Dim MyVar As mavariable
MyVar.id = val1
End Function
'----------------


Salutations!



"Eric vallauri" a écrit dans le message de news: 4336f1aa$0$17233$
Bonsoir à tous
j'ai besoin d'ecrire une fonction utilisant des types utilisateur

Type mavariable
id as integer
.....
END TYPE


function mafonction(byval val1 as double) as mavariable
mafonction.id=val1
end function

quand dans excel je tape la formule "=mafonction(2)"
j'ai un message d'erreur "type défini par utilisateur non défini"
je ne trouve pas l'erreur
merci d'avance
eric vallauri





---
Antivirus avast! : message Sortant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 20:51:29
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com
Avatar
Eric vallauri
merci
mais dans mon cas, la fonction doit me renvoyer plusieurs valeurs
=mafonction.var1(2)
=mafonction.var2(2)

c'est pour cela que je veux avoir
mafonction déclarée comme une variable uilisateur
la fonction est assez grosse
*eric vallauri


"michdenis" a écrit dans le message de news:

Bonjour Éric,

Essaie comme ceci :


Type mavariable
id As Integer
'.....

End Type

'----------------
Function mafonction(ByVal val1 As Double)
Dim MyVar As mavariable
MyVar.id = val1
End Function
'----------------


Salutations!



"Eric vallauri" a écrit dans le message de news:
4336f1aa$0$17233$
Bonsoir à tous
j'ai besoin d'ecrire une fonction utilisant des types utilisateur

Type mavariable
id as integer
.....
END TYPE


function mafonction(byval val1 as double) as mavariable
mafonction.id=val1
end function

quand dans excel je tape la formule "=mafonction(2)"
j'ai un message d'erreur "type défini par utilisateur non défini"
je ne trouve pas l'erreur
merci d'avance
eric vallauri





---
Antivirus avast! : message Sortant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 20:51:29
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com






---
Antivirus avast! : message Entrant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 21:56:04
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 22:02:22
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com

Avatar
michdenis
Bonjour Éric,

Tu devrais expliciter un peu plus sur ce que tu tentes de faire ...!

En attendant, je te propose ceci :


Type mavariable
id As Integer
N As String
'.....
End Type

Public MyVar(1 To 2) As mavariable

'------------------
Sub InitialerLaVariable()

MyVar(1).id = 5
MyVar(2).id = 10

End Sub
'------------------
Sub ObtenirSonRésultat()

For a = 1 To UBound(MyVar)
MsgBox MyVar(a).id
Next

End Sub
'------------------


Salutations!







"Eric vallauri" a écrit dans le message de news: 43370246$0$1011$
merci
mais dans mon cas, la fonction doit me renvoyer plusieurs valeurs
=mafonction.var1(2)
=mafonction.var2(2)

c'est pour cela que je veux avoir
mafonction déclarée comme une variable uilisateur
la fonction est assez grosse
*eric vallauri


"michdenis" a écrit dans le message de news:

Bonjour Éric,

Essaie comme ceci :


Type mavariable
id As Integer
'.....

End Type

'----------------
Function mafonction(ByVal val1 As Double)
Dim MyVar As mavariable
MyVar.id = val1
End Function
'----------------


Salutations!



"Eric vallauri" a écrit dans le message de news:
4336f1aa$0$17233$
Bonsoir à tous
j'ai besoin d'ecrire une fonction utilisant des types utilisateur

Type mavariable
id as integer
.....
END TYPE


function mafonction(byval val1 as double) as mavariable
mafonction.id=val1
end function

quand dans excel je tape la formule "=mafonction(2)"
j'ai un message d'erreur "type défini par utilisateur non défini"
je ne trouve pas l'erreur
merci d'avance
eric vallauri





---
Antivirus avast! : message Sortant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 20:51:29
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com






---
Antivirus avast! : message Entrant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 21:56:04
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 22:02:22
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com

Avatar
Eric vallauri
j'ai des feuilles de calcul a faire, qui utilisent une une fonction. cette
fonction doit me renvoyer plusieurs valeurs. donc j'ai pensé à déclarer ma
fonction comme une variable utilisateur, de façon à n'avoir a faire qu'un
seul code.

par exemple:

function calcul_de_A(byval val1 as double,...) as double
calcul_de_A=val1
end function


function calcul_de_B(byval val1 as double,...) as double
calcul_de_B=val2
end function

function calcul_de_C(byval val1 as double,...) as double
calcul_de_C=val3
end function

dans excel, pour avoir le resculat de A,B,C je tape
"Êlcul_de_A(byval val1 as double,...) "
"Êlcul_de_B(byval val1 as double,...) "
"Êlcul_de_C(byval val1 as double,...) "

en utilisant une variable utilisateur, j'ai un seul code
type mavariable
A as double
B as double
C as double
end type
function calcul(byval val1 as double,...) as mavariable
calcul.A=val1
calcul.B=val2
calcul.C=val3
end function
et j'ai le resultat en tapant dans excel
"calcul.A(byval val1 as double,...) "
"calcul.B(byval val1 as double,...) "
"calcul.C(byval val1 as double,...) "


eric vallauri



"michdenis" a écrit dans le message de news:
%
Bonjour Éric,

Tu devrais expliciter un peu plus sur ce que tu tentes de faire ...!

En attendant, je te propose ceci :


Type mavariable
id As Integer
N As String
'.....
End Type

Public MyVar(1 To 2) As mavariable

'------------------
Sub InitialerLaVariable()

MyVar(1).id = 5
MyVar(2).id = 10

End Sub
'------------------
Sub ObtenirSonRésultat()

For a = 1 To UBound(MyVar)
MsgBox MyVar(a).id
Next

End Sub
'------------------


Salutations!







"Eric vallauri" a écrit dans le message de news:
43370246$0$1011$
merci
mais dans mon cas, la fonction doit me renvoyer plusieurs valeurs
=mafonction.var1(2)
=mafonction.var2(2)

c'est pour cela que je veux avoir
mafonction déclarée comme une variable uilisateur
la fonction est assez grosse
*eric vallauri


"michdenis" a écrit dans le message de news:

Bonjour Éric,

Essaie comme ceci :


Type mavariable
id As Integer
'.....

End Type

'----------------
Function mafonction(ByVal val1 As Double)
Dim MyVar As mavariable
MyVar.id = val1
End Function
'----------------


Salutations!



"Eric vallauri" a écrit dans le message de news:
4336f1aa$0$17233$
Bonsoir à tous
j'ai besoin d'ecrire une fonction utilisant des types utilisateur

Type mavariable
id as integer
.....
END TYPE


function mafonction(byval val1 as double) as mavariable
mafonction.id=val1
end function

quand dans excel je tape la formule "=mafonction(2)"
j'ai un message d'erreur "type défini par utilisateur non défini"
je ne trouve pas l'erreur
merci d'avance
eric vallauri





---
Antivirus avast! : message Sortant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 20:51:29
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com






---
Antivirus avast! : message Entrant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 21:56:04
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 22:02:22
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com






---
Antivirus avast! : message Entrant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 26/09/2005 07:20:07
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 26/09/2005 07:30:33
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com


Avatar
michdenis
Bonjour Éric,

Utilise plutôt le concept de Array (tableau) pour réaliser ce que tu désires.

Voici un exemple simple :
'----------------------------------
Public Function LeTableau(ByVal val1 As Double)
Dim Tblo(1 To 3) As Variant
Tblo(1) = "Traitement1"
Tblo(2) = "Traitement2"
Tblo(3) = "Traitement3"
LeTableau = Tblo
End Function
'----------------------------------

Et dans la feuille de calcul, tu sélectionnes 3 cellules sur la même ligne
un clic sur F2 pour passer en mode édition de la cellule
tu entres la fonction suivante : = Exemple(5.26) et tu valide par Maj + Ctrl + enter
Chaque élément du tableau va apparaître dans chacune des cellules de la plage.

Si tu veux afficher le résultat sur 3 cellules de la même colonne, tu modifies cette ligne
de la fonction :

LeTableau = Tblo

pour

LeTableau = WorksheetFunction.Transpose(Tblo)



Salutations!




"Eric vallauri" a écrit dans le message de news: 43378771$0$7846$
j'ai des feuilles de calcul a faire, qui utilisent une une fonction. cette
fonction doit me renvoyer plusieurs valeurs. donc j'ai pensé à déclarer ma
fonction comme une variable utilisateur, de façon à n'avoir a faire qu'un
seul code.

par exemple:

function calcul_de_A(byval val1 as double,...) as double
calcul_de_A=val1
end function


function calcul_de_B(byval val1 as double,...) as double
calcul_de_B=val2
end function

function calcul_de_C(byval val1 as double,...) as double
calcul_de_C=val3
end function

dans excel, pour avoir le resculat de A,B,C je tape
"Êlcul_de_A(byval val1 as double,...) "
"Êlcul_de_B(byval val1 as double,...) "
"Êlcul_de_C(byval val1 as double,...) "

en utilisant une variable utilisateur, j'ai un seul code
type mavariable
A as double
B as double
C as double
end type
function calcul(byval val1 as double,...) as mavariable
calcul.A=val1
calcul.B=val2
calcul.C=val3
end function
et j'ai le resultat en tapant dans excel
"calcul.A(byval val1 as double,...) "
"calcul.B(byval val1 as double,...) "
"calcul.C(byval val1 as double,...) "


eric vallauri



"michdenis" a écrit dans le message de news:
%
Bonjour Éric,

Tu devrais expliciter un peu plus sur ce que tu tentes de faire ...!

En attendant, je te propose ceci :


Type mavariable
id As Integer
N As String
'.....
End Type

Public MyVar(1 To 2) As mavariable

'------------------
Sub InitialerLaVariable()

MyVar(1).id = 5
MyVar(2).id = 10

End Sub
'------------------
Sub ObtenirSonRésultat()

For a = 1 To UBound(MyVar)
MsgBox MyVar(a).id
Next

End Sub
'------------------


Salutations!







"Eric vallauri" a écrit dans le message de news:
43370246$0$1011$
merci
mais dans mon cas, la fonction doit me renvoyer plusieurs valeurs
=mafonction.var1(2)
=mafonction.var2(2)

c'est pour cela que je veux avoir
mafonction déclarée comme une variable uilisateur
la fonction est assez grosse
*eric vallauri


"michdenis" a écrit dans le message de news:

Bonjour Éric,

Essaie comme ceci :


Type mavariable
id As Integer
'.....

End Type

'----------------
Function mafonction(ByVal val1 As Double)
Dim MyVar As mavariable
MyVar.id = val1
End Function
'----------------


Salutations!



"Eric vallauri" a écrit dans le message de news:
4336f1aa$0$17233$
Bonsoir à tous
j'ai besoin d'ecrire une fonction utilisant des types utilisateur

Type mavariable
id as integer
.....
END TYPE


function mafonction(byval val1 as double) as mavariable
mafonction.id=val1
end function

quand dans excel je tape la formule "=mafonction(2)"
j'ai un message d'erreur "type défini par utilisateur non défini"
je ne trouve pas l'erreur
merci d'avance
eric vallauri





---
Antivirus avast! : message Sortant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 20:51:29
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com






---
Antivirus avast! : message Entrant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 21:56:04
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 22:02:22
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com






---
Antivirus avast! : message Entrant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 26/09/2005 07:20:07
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 26/09/2005 07:30:33
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com


Avatar
eric vallauri
a oui! j'y avait pas pensé
merci
eric vallauri

"michdenis" a écrit dans le message de news:%
Bonjour Éric,

Utilise plutôt le concept de Array (tableau) pour réaliser ce que tu désires.

Voici un exemple simple :
'----------------------------------
Public Function LeTableau(ByVal val1 As Double)
Dim Tblo(1 To 3) As Variant
Tblo(1) = "Traitement1"
Tblo(2) = "Traitement2"
Tblo(3) = "Traitement3"
LeTableau = Tblo
End Function
'----------------------------------

Et dans la feuille de calcul, tu sélectionnes 3 cellules sur la même ligne
un clic sur F2 pour passer en mode édition de la cellule
tu entres la fonction suivante : = Exemple(5.26) et tu valide par Maj + Ctrl + enter
Chaque élément du tableau va apparaître dans chacune des cellules de la plage.

Si tu veux afficher le résultat sur 3 cellules de la même colonne, tu modifies cette ligne
de la fonction :

LeTableau = Tblo

pour

LeTableau = WorksheetFunction.Transpose(Tblo)



Salutations!




"Eric vallauri" a écrit dans le message de news: 43378771$0$7846$
j'ai des feuilles de calcul a faire, qui utilisent une une fonction. cette
fonction doit me renvoyer plusieurs valeurs. donc j'ai pensé à déclarer ma
fonction comme une variable utilisateur, de façon à n'avoir a faire qu'un
seul code.

par exemple:

function calcul_de_A(byval val1 as double,...) as double
calcul_de_A=val1
end function


function calcul_de_B(byval val1 as double,...) as double
calcul_de_B=val2
end function

function calcul_de_C(byval val1 as double,...) as double
calcul_de_C=val3
end function

dans excel, pour avoir le resculat de A,B,C je tape
"Êlcul_de_A(byval val1 as double,...) "
"Êlcul_de_B(byval val1 as double,...) "
"Êlcul_de_C(byval val1 as double,...) "

en utilisant une variable utilisateur, j'ai un seul code
type mavariable
A as double
B as double
C as double
end type
function calcul(byval val1 as double,...) as mavariable
calcul.A=val1
calcul.B=val2
calcul.C=val3
end function
et j'ai le resultat en tapant dans excel
"calcul.A(byval val1 as double,...) "
"calcul.B(byval val1 as double,...) "
"calcul.C(byval val1 as double,...) "


eric vallauri



"michdenis" a écrit dans le message de news:
%
Bonjour Éric,

Tu devrais expliciter un peu plus sur ce que tu tentes de faire ...!

En attendant, je te propose ceci :


Type mavariable
id As Integer
N As String
'.....
End Type

Public MyVar(1 To 2) As mavariable

'------------------
Sub InitialerLaVariable()

MyVar(1).id = 5
MyVar(2).id = 10

End Sub
'------------------
Sub ObtenirSonRésultat()

For a = 1 To UBound(MyVar)
MsgBox MyVar(a).id
Next

End Sub
'------------------


Salutations!







"Eric vallauri" a écrit dans le message de news:
43370246$0$1011$
merci
mais dans mon cas, la fonction doit me renvoyer plusieurs valeurs
=mafonction.var1(2)
=mafonction.var2(2)

c'est pour cela que je veux avoir
mafonction déclarée comme une variable uilisateur
la fonction est assez grosse
*eric vallauri


"michdenis" a écrit dans le message de news:

Bonjour Éric,

Essaie comme ceci :


Type mavariable
id As Integer
'.....

End Type

'----------------
Function mafonction(ByVal val1 As Double)
Dim MyVar As mavariable
MyVar.id = val1
End Function
'----------------


Salutations!



"Eric vallauri" a écrit dans le message de news:
4336f1aa$0$17233$
Bonsoir à tous
j'ai besoin d'ecrire une fonction utilisant des types utilisateur

Type mavariable
id as integer
.....
END TYPE


function mafonction(byval val1 as double) as mavariable
mafonction.id=val1
end function

quand dans excel je tape la formule "=mafonction(2)"
j'ai un message d'erreur "type défini par utilisateur non défini"
je ne trouve pas l'erreur
merci d'avance
eric vallauri





---
Antivirus avast! : message Sortant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 20:51:29
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com






---
Antivirus avast! : message Entrant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 21:56:04
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 25/09/2005 22:02:22
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com






---
Antivirus avast! : message Entrant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 26/09/2005 07:20:07
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant saint.
Base de donnees virale (VPS) : 0538-7, 23/09/2005
Analyse le : 26/09/2005 07:30:33
avast! - copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com