Rechercher : dans
Par :

Function VBA avec des arguments nommes

irr, le 3 jui 2009 à 01:12:47 
 Signaler ce message aux modérateurs

Bonjour,

Soit une fonction VBA comme celle-ci

Function VolumeCylindre(Dia, Haut)
    Application.Volatile
    VolumeCylindre = Application.Pi() * Dia ^ 2 / 4 * Haut
End Function


Une telle fonction ne marche pas si les paramètres Dia et Haut sont des champs segments de lignes ou colonnes nommes (par exemple Diametre=A1:A100 Hauteur=B1:B100 et que en colonne C de 1 à 100 on ecrit
=VolumeCylindre(Diametre, Hauteur)

Pour que cela marche je fais l'analyse des variables (valeur numerique constante, cellule unique, colonne ou ligne) à travers par exemple de la fonction suivante


Function VdeX(xXx)
'Application.Volatile
    VdeX = xXx                  ' au cas ou xXx est une constante
    If TypeOf xXx Is Range Then
       With Application.Caller
          If xXx.Cells.Count = 1 Then                         'cellule unique
             VdeX = xXx
'             vdex = xXx(.Row - xXx.Row + 1)
          ElseIf xXx.Columns.Count = 1 Then                   'colonne
             VdeX = xXx(.Row - xXx.Row + 1)
          ElseIf xXx.Rows.Count = 1 Then                      'ligne
             VdeX = xXx(.Column - xXx.Column + 1)
          Else
             VdeX = ""
          End If
       End With
    End If
End Function


et je dois modifier la fonction cylindre de la maniere suivante


Function VolumeCylindre(Dia, Haut)
    Application.Volatile
    Dia = VdeX(Dia)
    Haut = VdeX(Haut)  
    VolumeCylindre = Application.Pi() * Dia ^ 2 / 4 * Haut
 End Function



QUESTION
y a t il une méthode plus COURTE pour ecrire une fonction avec passage des arguments nommes
Configuration: Windows XP
Firefox 3.5

Meilleures réponses pour « Function VBA avec des arguments nommes » dans :
[VBA] Fonction qui retourne la couleur active d'une MFC VoirCette fonction retourne la valeur du format actif d'une mise en forme conditionnelle. Avec la fonction de la démo, deux valeurs peuvent êtres retournées. Mode = 0 : retourne la valeur de Interior.ColorIndex Mode = 1 : retourne la valeur de...
VBA et les collections d'objets. VoirVBA et les collections d'objets Quand plusieurs (beaucoup de) contrôles sont mis sur une feuille ou un Userform il est parfois fastidieux d'écrire du code dans chaque évènement des contrôles. Ce Tuto vous permet de traiter vos contrôles comme...
VB6/VBA Transformer nombre en texte VoirIntroduction Préliminaires VB6 Dans le module de la forme Dans Module1 Introduction La fonction peut transformer des nombres de l'unité jusqu'à 999 tera. Prend en compte la syntaxe pour le français de France, de Belgique et de...
VBScript - Les fonctions et les procédures VoirLa notion de procédure On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction (ou procédure)...
Javascript - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction...
Fonction scientifiques VoirÀ SAVOIR Vous devez, tant avec Excel qu’avec Calc, installer le module complémentaire d’analyse pour pouvoir employer ces fonctions. BESSELIRenvoie la fonction de Bessel modifiée pour des arguments imaginaires=BESSELI(x;n)BESSELJRenvoie la...
Collection CommentÇaMarche.net