IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

macro et fonction [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut macro et fonction
    Bonjour,

    Au vu de ce que je cherche à faire (un tableau dan lequel je dois envoyé des données de textbox en paramètres), je risque de devoirs faire une fonction.

    D'après ce que j'ai lu, les fonctions sont écrites dans des modules et ensuite toujours dans le module appelés dans les instructions d'un sub qqchose().

    Est-il possible d'appelés une fonction dans le code d'un usf et de passer des paramètres se situant dans des blocs de codes différents (4 textbox différentes)?

    Bien entendu si oui, comment?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 207
    Par défaut
    Oui, il suffit de donner une portée 'Public' à ta fonction.

    Quant aux arguments, aucun problème pour les passer tant qu'ils existent dans l'espace depuis lequel tu appelles ta fonction je pense.

    Donc si tu appelles ta fonction située dans un module depuis un userform et que tu veux lui passer tes textbox en arguments, ça devrait marcher si tu appelles la fonction depuis le userform.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    En fait j'étais plutôt partis sur le passage de mes texbox dans une variable string
    puis appeler le(s) string.

    En fait mes string on été déclaré en public parce que je les utilisais ailleurs mais dans ma fonction j'ai mis un paramètre que j'utilise même pas (intérêt = 0)donc c'est sur ça va foirer.

    Par contre, je vois pas comment appeler ma fonction (vu dans un tuto du forum ou la fonction est appelé dans un sub) mais surtout ou la mettre.
    donc voilà une partie du code dans lequel je pense appelé ma (mes fonction(s)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Private Sub TextBox_ht_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        
        'Si la valeur de textbox_ht est un nombre sans virgule alors on rajoute la virgule et deux 0
        Dim vResult_ht As Variant, montant As String
    
        
        If TextBox_ht.Value = "" Then
        Else
            'vResult_ht = Replace(TextBox_ht.Value, ".", ",")
            'vResult_ht = CDbl(vResult_ht)
            vResult_ht = CDbl(Val(TextBox_ht.Value)) 'passage d'une chaine string en une valeur de type double si un nombre est rentré dans la textbox
            TextBox_ht = IIf(IsNumeric(vResult_ht), Format(vResult_ht, "###0.00"), "")
            TextBox_ht = Replace(TextBox_ht, ",", ".")
        End If
       
        If (OptionButton_lot.Value = True) Then
          min_max (montant_ht) 'changer pour une fonction
        ElseIf (OptionButton_bon_commande.Value = True) Then
            min_max() = montant_ht 'changer pour une fonction
        Else
            montant_ht = TextBox_ht 'changer pour une fonction
        End If
        
    End Sub

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 207
    Par défaut
    Avec une portée 'Public' tu peux la mettre dans le module que tu veux, elle sera appelable de n'importe où.

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    La question c'est comment l'appeler, une fois que tu sais comment l'appeler ta fonction tu peux la mettre "où tu veux".

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 207
    Par défaut
    Euh oui...disons pour l'exemple que j'écrive ma fonction dans un module perso. Dans ce module j'aurais donc seulement ma fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function maFonction(    ) As Sth
     
    End Function
    Et dans n'importe quelle autre module, userform...:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub maProcedure(   )
     
    [...]
     
    maVariable = maFonction(   )
     
    [...]
     
    End Sub

    ...mais je ne suis pas sûr qu'on se comprenne bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] Lancement d'une macro en fonction du contenu d'une cellule
    Par Zak Blayde dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/01/2007, 15h13
  2. [Macro] Exécuter une macro en fonction d'un contrôle
    Par sugan dans le forum VBA Access
    Réponses: 6
    Dernier message: 02/10/2006, 16h02
  3. Macro en fonction d'une sélection de plage de cellules.
    Par Labiche dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/08/2006, 10h23
  4. [VBA-E] macro avec fonction "TRANSPOSE"
    Par Ardeciel dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 12/06/2006, 16h11
  5. choix entre macro et fonction
    Par remi77 dans le forum C
    Réponses: 4
    Dernier message: 22/10/2003, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo