Probleme renvoi de données suite condition Si entre module et feuille VBA [Résolu]

Signaler
Messages postés
16
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
28 décembre 2009
-
chamttt
Messages postés
16
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
28 décembre 2009
-
Bonjour à tous,

Je débute en vba et ai quelques problemes...

Je souhaite récupérer une donnée provenant d'une cellule excel via la fonction blop ci-dessous et placée dans un module. Ensuite je souhaite récupérer dans ma feuille la valeur du booléen pour que quand mon client vient cliquer, le test détermine s'il faut appeler les autres procédures ou mettre un mesgbox.

Apres plusieurs essais, l'erreur affichée est type d'argument byref incompatible....

A l'aide....
******************************************************
Public Function blop(Prout As Boolean) As Boolean

'Test la valeur de la cellule poids max. Si sup à 2000 Kilos alors retourne vrai et message d'erreur

If Sheets("Outils de calcul").Range("B16").Value > 1999 Then
Prout = [True]
End If
MsgBox (Prout)

End Function
********************************************************

Public Sub bouton_valider_Click()
Dim Pinpon As Boolean

Pinpon = Vrai


Call Module1.blop(Prout)

If Pinpon = Prout Then
MsgBox ("Pour toutes commandes dont le poids est supérieur à 2000 Kilos, merci de contacter le service Import")
Else
Call gnou
Call blabla
End If


End Sub

3 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
Salut
Et quel est ton problème ?
Ta fonction blop semble correcte
Par contre, bizarre :
Tu définis blop pour qu'elle renvoie un Boolean.
Or, le résultat modifie la variable passée en paramètre.
Tu aurais pu la définir comme ça :
Public Function blop() As Boolean 
'Test la valeur de la cellule poids max. Si sup à 2000 Kilos alors retourne vrai et message d'erreur 
If Sheets("Outils de calcul").Range("B16").Value > 1999 Then 
    blop = True
End If 
End Function
en oubliant ce Prout qui n'a aucun intérêt

Et l'utiliser comme ça :
If blop = True Then
en oubliant ce Pinpon qui n'a aucun intérêt

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
Remarque, la fonction elle non plus n'a pas beaucoup d'intérêt, sauf si tu dois la réutiliser plusieurs fois dans ton code
Messages postés
16
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
28 décembre 2009

Ah Jack merci beaucoup !!

Tu avais raison, je ne sais pas pourquoi j'ai voulu passer par une fonction alors que je pouvais mettre le code en direct...

Merci cela fonctionne au poil !