XL 2013 Passer une plage nommée de cellules comme argument d'une fonction personnalisée

  • Initiateur de la discussion Initiateur de la discussion alFassi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

alFassi

XLDnaute Nouveau
😕
Excel VBA Experts
J'essaie de passer sans succès le nom d'une plage de cellules comme argument d'une fonction personnalisée tel que l'on peut le faire avec une formule d'Excel.
Malheureusement j'obtiens le message erreur #VALEUR 😕
Je joins un exemple avec la fonction sinus.
D'avance merci de me faire profiter de votre expertise 🙂.
 

Pièces jointes

Re : Passer une plage nommée de cellules comme argument d'une fonction personnalisée

Bonjour à tous

alFassi [Bienvenue sur le forum]
J'essaie de passer sans succès le nom d'une plage de cellules comme argument
Tu as rencontré le même insuccés pour commencer ton post par un petit bonjour...🙄
(comme c'est pourtant la coutume ici)
-> voir la charte du forum à ce sujet
extrait de la charte du forum
2 – Lorsqu’on rentre sur un fil, comme dans la vie de tous les jours, on est poli en disant « Bonjour ».
 
Dernière édition:
Re : Passer une plage nommée de cellules comme argument d'une fonction personnalisée

Bonjour.

Excel est incapable de détecter si un paramètre de fonction personnalisée doit être une cellule unique ou une plage de plusieurs cellules. La solution c'est soit de prévoir la possibilité dans la fonction en récupérant le Range, soit de spécifier l'intersection avec la colonne. Ici, en B7 :
Code:
=sinus(Plage B:B)
Autre possibilité qui marche aussi: obliger Excel à constater qu'il faut une cellule unique :
Code:
=sinus(Plage+0)
 
Dernière édition:
Re : Passer une plage nommée de cellules comme argument d'une fonction personnalisée

Merci pour votre réponse
Effectivement le code qui oblige Excel à constater qu'il faut une cellule unique fonctionne 🙂
Mais je ne connaissais pas cette syntaxe +0 pouvez-vous m'en dire plus?

a
Bonjour.

Excel est incapable de détecter si un paramètre de fonction personnalisée doit être une cellule unique ou une plage de plusieurs cellules. La solution c'est soit de prévoir la possibilité dans la fonction en récupérant le Range, soit de spécifier l'intersection avec la colonne. Ici, en B7 :
Code:
=sinus(Plage B:B)
Autre possibilité qui marche aussi: obliger Excel à constater qu'il faut une cellule unique :
Code:
=sinus(Plage+0)
 
Re : Passer une plage nommée de cellules comme argument d'une fonction personnalisée

C'est évident: il ne peut ajouter 0 à la ligne, alors il l'ajoute à l'intersection avec la colonne où se trouve la formule, et le résultat peut alors être converti en un Double unique. Mais c'est une addition inutile. Je préfère spécifier l'intersection à l'aide de l'opérateur d'intersection, qui est l'espace.
 
Dernière édition:
Re : Passer une plage nommée de cellules comme argument d'une fonction personnalisée

Bonsoir,

Fonction perso matricielle qui retourne un tableau !

-sélectionner b7:R7
=sinus(Plage)
-valider avec maj+ctrl+entrée

Code:
Function Sinus(champ As Range)
'x exprimé en degrés sexagimaux
Dim pi As Double, i
Dim a(): ReDim a(1 To champ.Count)
For i = 1 To champ.Count
  pi = WorksheetFunction.pi()
  a(i) = Sin(champ(i) / 180 * pi)
 Next i
 Sinus = a
End Function

exemples Fonctions personnalisées

JB
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour