Création Fonction. Problème avec nouveau type

Bonjour, je suis nouveau sur le forum (et également en VBA). J'espère avoir votre aide sur ce petit problème !

Je souhaiterais créer un Type "Matériel" qui prend différents arguments. J'aimerais ensuite créer une fonction Prix(Materiel) qui prend en entrée le type Matériel et me renvoie le prix du matériel .

Voici un exemple du code que j'ai créé. Il ne fonctionne pas et je ne comprends pas pourquoi.

Type Materiel

Matos As String

Couleur As String

Prix As Currency

End Type

Sub proc()

Dim test As Materiel

test.Matos = "Cartes"

test.Couleur = "rouge"

test.Prix = 10

End Sub

Function Prix2(Mater As Materiel) As Currency

Prix2 = Mater.Prix

End Function

Tout ça est dans un module. Quand je viens sur la feuille Excel et que j'utilise la fonction Prix2(test), cela retourne #VALEUR!

Merci d'avance pour votre aide !

bonjour,

le problème vient du fait que Mater n'a pas été instancié, l'objet mater de type matériel n'existe pas.

voir ci-dessous

lancer proc pour créer l'objet test

lancer testmatériel pour voir le résultat de l'execution de prix2 avec l'objet test

Type Materiel
Matos As String
Couleur As String
Prix As Currency
End Type

Dim test As Materiel

Sub proc()
'l'objet test est crée
test.Matos = "Cartes"
test.Couleur = "rouge"
test.Prix = 10
End Sub

sub testmateriel
msgbox "prix du matériel test " & prix2(test)
end

Function Prix2(Mater As Materiel) As Currency
Prix2 = Mater.Prix

End Function

Bonjour H2so4,

Merci pour cette réponse. Malheureusement ce code ne réalise pas ce que je voudrais.

J'aimerais rentrer dans une cellule d'une feuille excel la fonction Prix2 pour qu'elle me renvoie le prix d'un matériel.

Par exemple si je tape dans une cellule "=Prix2(test)", j'aimerais qu'il soit inscrit "10" dans la cellule.

Comment modifier le code VBA pour réaliser ceci ?

Merci pour votre aide.

Bonsoir,

en général on gère ce genre d'infos dans un tableau excel et on y accède via la fonction rechercheV.

je t'ai fait un exemple avec une fonction personnalisée et un exemple avec recherchev

10produits.xlsm (16.32 Ko)

Bonsoir,

La fonction RECHERCHEV me permet effectivement de résoudre mon problème. Ca m'oblige à refaire toute une feuille Excel du coup.

Je vais me rabattre sur cette solution à moins de trouver une solution avec déclaration d'un type et son utilisation dans une fonction (comme réalisé dans mon premier post).

Merci pour l'aide !

Bonjour,

dans le fichier je t'ai également proposé une solution avec une fonction personnalisée prix2, avec le code et une exemple de l'appel de la fonction.

Bonjour,

Effectivement je n'avais pas vu la présence de cette fonction. Merci pour l'aide ça correspond entièrement à ce que je recherchais !

Bonne soirée.

Rechercher des sujets similaires à "creation fonction probleme nouveau type"