Fonction et Type + Livre VBA - VB/VBA/VBS - Programmation
Marsh Posté le 18-03-2010 à 09:30:52
Un petit UP
Au moins pour la 2ème partie de la question : Un livre référence en VBA Excel ?
merci
Marsh Posté le 19-03-2010 à 18:36:57
Salut, à mon avis les meilleurs , malheureusement en Anglais, sur http://www.oaltd.co.uk/
Marsh Posté le 17-03-2010 à 10:14:56
Bonjour à tous,
Je ne parviens pas à créer une fonction qui renvoie plusieurs valeurs. J'aimerais passer par un type afin de renvoyer les différentes propriétés que j'ai définies ...
Voici mon code :
Le TYPE :
Public Type risk
nom As String
ligne_phase As Double
nb_parametres As Double
parametre(1 To 5) As Double
nb_risques As Double
phase As Variant
risque As Variant
nb_lignes As Double
aversion As Byte
type_contrat(1 To 2) As Double
loi As String
consequence(1 To 2) As Double
End Type
La FONCTION :
Public Function tableau_risques(phase, risque, type_contrat, consequence) As risk
With tableau_risques
Select Case phase
Case 1
.nb_risques = 7
.ligne_phase = 2
Case 2
.nb_risques = 7
.ligne_phase = 9
Case 3
.nb_risques = 7
.ligne_phase = 16
Case 4
.nb_risques = 3
.ligne_phase = 23
End Select
.phase = Range(Range("tab_risk" )(.ligne_phase, 1), Range("tab_risk" )(.ligne_phase + .nb_risques - 1, 32))
ReDim .risque(1 To 32)
For i = 1 To UBound(.phase, 2)
.risque(i) = .phase(risque, i)
Next i
'.risque = SubRange(.phase, risque, 1, risque, 32)
.aversion = .risque(5)
Select Case type_contrat
Case 1
.risque = Range(.risque(8), .risque(19))
Case 2
.risque = Range(.risque(21), .risque(32))
End Select
Select Case consequence
Case 1
.risque = xls.Range(.risque(1), .risque(6))
Case 2
.risque = xls.Range(.risque(7), .risque(12))
End Select
Select Case .risque(1, 1)
Case "Normale"
.nb_parametres = 2
Case "Exponentielle"
.nb_parametres = 1
Case "Log-normale"
.nb_parametres = 2
Case ""
.nb_parametres = 0
End Select
For i = 1 To .nb_parametres
.parametre(i) = .risque(1, i + 1)
Next i
End With
End Function
Le problème est que je ne sais comment faire appel aux propriétés .parametre(i)
Je tape tableau_risques(1,1,1,1).parametre(1) mais rien...
Je trouve assez peu d'infos sur les forums... Le problème est évoqué ici :
http://www.developpez.net/forums/d [...] r-sultats/
Mais ne le résout pas pour autant...
Je me rends compte que, plus j'avance en VBA, moins je trouve d'infos sur les forums, donc je souhaiterais m'acheter un livre sur VBA pour Excel.
Amazon regorge de livres, et avant de passer commande, je souhaitais savoir s'il y en avait un en particulier qui se démarquait !
Merci !!