UTILISATION DES FONCTIONS VBA

0

J'ai développé une fonction VBA

Pour l'utiliser dans une feuille EXCEL pour la première fois, je fais Formules, Insérer une fonction etc. et cela fonctionne

Malheureusement, si je modifie la valeur des paramètres, la fonction ne se recalcule pas automatiquement. Elle est devenue inconnue

Il faut recommencer Formules, Insérer un fonctionne etc.

J'ai déjà développé des fonctions VBA dans un lointain passé et je n'avais pas ce problème :la fonction se recalculait toute seule comme n'importe fonction EXCEL SOMME, NB.VAL, etc.

Merci de votre aide


    Posté le 25 septembre 2023, 13:10
    par mr06
    Répondre
    0

    Bonjour

    Lire ceci merci

    Cordialement

    Posté le 25 septembre 2023, 14:41
    0

    Bonjour mr06,

    tu as écrit « je fais Formules, Insérer une fonction etc. et cela fonctionne »
    et « Malheureusement, si je modifie la valeur des paramètres, la fonction
    ne se recalcule pas automatiquement. Elle est devenue inconnue. »

    comme tu as créé ta fonction via l'Enregistreur de macros, ça a utilisé les
    paramètres que tu as saisis au départ ; donc ensuite, c'est ça qui t'oblige
    à refaire la manip pour d'autres paramètres.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    solution n° 1 : après-coup (je veux dire après que l'Enregistreur de macros
    a créé un code VBA avec la fonction que tu as utilisée)
    , fais Alt F11 pour voir
    le code VBA (qui est dans un module standard tel que Module1) ; tu devras
    alors modifier le code VBA pour remplacer les paramètres « en dur » par
    de vrais paramètres (en utilisant des arguments de fonction adéquats ; et
    en passant les bons paramètres lors des appels de fonction depuis la
    feuille de calcul)
    .

    solution n° 2 : c'est bien plus simple d'écrire ton code VBA directement dans
    l'Éditeur VBA (= fenêtre "Microsoft Visual Basic") ; donc sans passer par
    l'Enregistreur de macros ; c'est déjà ce que tu avais fait avant, puisque tu
    as écrit « J'ai déjà développé des fonctions VBA dans un lointain passé » ;
    comme en plus tu as écrit « je n'avais pas ce problème : la fonction se
    recalculait toute seule... »
    , alors ok : fais comme avant.  :)

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    si vraiment tu n'arrives pas à adapter le code VBA créé par l'Enregistreur de
    macros, ou si tu n'arrives pas à refaire comme tu faisais avant (sans passer
    par l'Enregistreur de macros)
     : joins ton fichier Excel, via cjoint.com ; écris
    sur quelle(s) feuille(s) sont les appels de fonction ; quel est le module
    concerné (Module1 ou quel autre) ; le nom de la Function concernée
    (je parle ici du nom de ta fonction personnalisée) ; quelle est la fonction
    Excel
    utilisée
    : SOMME() ; NBVAL() ; ou autre ; à propos, n'oublie pas
    que dans le code VBA, il faut utiliser le nom anglais de la fonction Excel :
    SUM() ; COUNTA() ; ou autre. (même si tu as Excel version française)

    attention : plusieurs fonctions Excel n'ont pas d'équivalent VBA ; il faut
    alors utiliser WorsheetFunction.Nom() où .Nom() est le nom adéquat
    de la fonction Excel ; c'est aussi possible de passer par Evaluate().

    rhodo

    rhodo Posté le 26 septembre 2023, 12:15
    par rhodo

    Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
    Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :