Utiliser vba pour créer nouvelle formule "=..."

  • Initiateur de la discussion LUDWIG
  • Date de début
L

LUDWIG

Guest
Bonjour,

Je suis une bille en vba... mais j'ai vu dans des exemples que les fonctions vba pouvaient être appelées à l'intérieur d'une cellule comme si on appelait une formule, c'est-à-dire en utilisant '=fonction(arguments)'.

Exemple, je souhaiterais utiliser une formule qui s'appelerait 'Dé'qui aurait comme 1er argument un nombre de dé, comme 2ème argument la valeur à atteindre. La formule devrait renvoyer le nombre de dé qui a dépassé (ou égalé) la valeur à atteindre :
=Dé(5;3)

Je souhaites savoir comment procéder dans vba pour récupérer les arguments (nomencaltures), renvoyer le résultat, faire en sorte que mon appel '=Dé(arguments)' soit connu.

Merci d'avance de votre aide...
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour LudWig, Le Forum

J'ai vraiment du mal à comprendre ton Histoire de Dé !!!

Mais pour faire Une Fonction Personalisée, ça donnerait ceci :

Public Function DE(ByRef Cell As Range, ByVal MyValMax As Double) As Double
Dim MyDE As Double

Application.Volatile

MyDE = Cell.Value

   
If MyDE >= MyValMax Then
        DE = MyDE - MyValMax
   
End If

End Function


Et donc dans une Cellule en Tapant

=DE(E17;100)

Et si en E17 tu as 150, Et bien dans cette cellule tu auras 50...

Bon Appétit
[ol]@+Thierry[/ol]
 
L

LUDWIG

Guest
Merci Thierry,

Peu importe la fonction (en fait c'était un lancer de dé, avec utilisation de randomize).

J'ai compris déjà pas mal de chose avec ton exemple (je répète, je suis une bille en vba !) :
- pas besoin de mettre une nomenclature particulière, toute fonction peut être appelée dans une cellule par '=' (je ne savais pas)
- la nomenclature pour appeler les arguments ('Public function FONCTION(TYPE NOM as TYPE) as TYPE
- Le résultat doit être mis dans le nom de la fonction (DE = ... ; ça a l'air évident, mais je ne savais pas).

Donc merci encore, ce petit exemple va bien me servir...
 

Discussions similaires

Statistiques des forums

Discussions
312 362
Messages
2 087 637
Membres
103 621
dernier inscrit
breizhyoda