laurent950
XLDnaute Barbatruc
Bonjour le Forum,
J'ai une question comment ont créé des étiquettes d'aide à la saisie avec des fonctions personnalisées .
J'ai faits un code teste : Le code et l'idée sont de @Magic_Doctor
J'aimerais pouvoir compiler la fin de ce code avec les éléments qui manquent à la saisie comme en exemple sur l'image joint en fin de message :
Pour Remplacer :
Par Cela
La Boite de Dialogue personnalisé : Que j'ai placé dans ThisWokbooks
Le but est aussi de consigner l'aide de cette fonction à travers une Boîte de dialogue dynamique avec descriptif de cette fonction et suivie en complément d'une aide à la saisie (Pour en connaitre les arguments Obligatoires et de ceux Facultatifs [ ] ) dans la chaine de saisie de cette fonction. c'est une bonne aide. Mais je ne me souviens plus pour cette dernière et j'ai donc créé un Poste via un exemple demandé par @Magic_Doctor complet (un bon exemple)
Lien du poste pour aide sur cette fonction en complément :
XL 2010 - Une fonction personnalisée au comportement étonnant | Excel-Downloads (excel-downloads.com)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ci dessous l'image de la Boite
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Puis le Code (Factice Pour test) que j'ai placé dans un Module : standard
avec fichier Excel joins au message.
L'idée est d'avoir le complément sous cette même forme et donc a Ajouter des lignes de commande en en-tête de function en complément dont je ne me rappelle plus !
Complément à ajouter sur cette ligne de commande les étiquettes des arguments de cette fonction ? Public Function ConvertirDecimal(ByVal Entrée As Range, ByVal DegGrad As Boolean, Optional ByVal Max As Range, Optional ByVal Compteur As Byte = 2) As Variant
Lien :
Aide sur l'info bulle des fonctions personalisées - Macros et VBA Excel (developpez.net)
Solution ici : (info bubble function "VBA")
excel - How to put a tooltip on a user-defined function - Stack Overflow
Il suffit de taper au clavier : =MyUDF( + CTRL + Shift + A
C'est expliqué dans le lien
Il faut juste recréé un SenKey (Au clavier et hop c'est partie pas mal)
ET
=MyUDF( + CTRL + Verr.Maj + A (Affiche la boite de dialogue)
' En Détail
VBA MacroOptions to Add UDF Description - wellsr.com
' mais pas encore l'info-bull (Semble ne pas être possible !)
a suivre
Exemple en Poste #5 ci-dessous
Complément donné par @patricktoulon
sans compter aussi qu'il est possible d'ajouter des comentaires a l'interieur meme d'une formule utilisant ta fonction perso
un exemple ici : Merci @patricktoulon
Cdt
J'ai une question comment ont créé des étiquettes d'aide à la saisie avec des fonctions personnalisées .
J'ai faits un code teste : Le code et l'idée sont de @Magic_Doctor
J'aimerais pouvoir compiler la fin de ce code avec les éléments qui manquent à la saisie comme en exemple sur l'image joint en fin de message :
Pour Remplacer :
Par Cela
La Boite de Dialogue personnalisé : Que j'ai placé dans ThisWokbooks
Le but est aussi de consigner l'aide de cette fonction à travers une Boîte de dialogue dynamique avec descriptif de cette fonction et suivie en complément d'une aide à la saisie (Pour en connaitre les arguments Obligatoires et de ceux Facultatifs [ ] ) dans la chaine de saisie de cette fonction. c'est une bonne aide. Mais je ne me souviens plus pour cette dernière et j'ai donc créé un Poste via un exemple demandé par @Magic_Doctor complet (un bon exemple)
Lien du poste pour aide sur cette fonction en complément :
XL 2010 - Une fonction personnalisée au comportement étonnant | Excel-Downloads (excel-downloads.com)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
VB:
Private Sub Workbook_Open()
'Sub DescribeFunction()
' Nota site aide :
' https://excel.quebec/excel-formules-et-fonctions/excel-fonction-personnalisee/
' https://silkyroad.developpez.com/vba/fonctions/#LIII
' Créé un fichier d'aide CHM
' * https://pub.phyks.me/sdz/sdz/creer-un-fichier-chm.html
'
' Permet d'ajouter une fonction personnalisée dans l'assistant de fonction
' et dans la catégrorie de son choix
' Catégorie 0 ici
Dim FuncName As String ' Nom de la fonction
FuncName = "ConvertirDecimal"
Dim FuncDesc As String ' Description de la fonction
FuncDesc = "Retranscrit une valeur décimale en format TEXTE Avec 2 décimales après la virgule Max (En degrés & minutes ou grades)"
Dim Category As String ' Categorie de la fonction ici personnalisé
Category = 11
Dim ArgDecr(1 To 4) As String ' Tableau des descriptions des arguments de la fonction
ArgDecr(1) = "Obligatoire : " & vbCrLf & " * Entrer valeur en Cellule E4" & vbCrLf & " * On rentre la valeur décimale ici"
ArgDecr(2) = "Obligatoire Degrés/Grade: " & vbCrLf & " * Entrer Valeur 0 pour Degrés (compteur omis : 42,25 --> 42° 25')" & vbCrLf & " * Entrer Valeur 1 pour Grades (compteur omis : 42,25 --> 42,25 gr)"
ArgDecr(3) = "Optional Val Max: " & vbCrLf & " * Si valeur à ne pas dépasser pour condition en Cellule E2" & vbCrLf & " * Valeur indépassable"
ArgDecr(4) = "Optional compteur stipulé : " & vbCrLf & " * Entrer valeur 0 pour le signe - (compteur stipulé : - 42° 25' | - 42,25 gr)" & vbCrLf & " * Entrer valeur 1 pour le signe + (compteur stipulé : + 42° 25' | + 42,25 gr)"
Application.MacroOptions _
Macro:=FuncName, _
Description:=FuncDesc, _
Category:=Category, _
argumentdescriptions:=ArgDecr
End Sub
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Puis le Code (Factice Pour test) que j'ai placé dans un Module : standard
avec fichier Excel joins au message.
VB:
Option Explicit
Public Function ConvertirDecimal(ByVal Entrée As Range, ByVal DegGrad As Boolean, Optional ByVal Max As Range, Optional ByVal Compteur As Byte = 2) As Variant
'Retranscrit une valeur décimale en format TEXTE (qui ne doit pas dépasser 2 décimales après la virgule) en degrés & minutes ou grades
'- NbDec : un nombre entier ou décimal qui n'excède alors pas 2 chiffres après la virgule
'- ChxDegGr : si 1 --> degrés sous forme, par exemple : 42,75 <=> 42° 75'
' si 2 --> grades
'- compteur : un numéro de compteur (1, 2, 3...)
' si omis --> pas de signe +/- avant la chaîne de caractères
' si stipulé --> un signe +/- (suivant la valeur du compteur) avant la chaîne de caractères
' Ex : pour degrés --> compteur omis : 42,25 --> 42° 25'
' compteur stipulé (suivant la valeur de celui-ci) : + 42° 25' | - 42° 25'
' pour grades --> compteur omis : 55,75 --> 55,75 gr
' compteur stipulé (suivant la valeur de celui-ci) : + 55,75 gr | - 55,75 gr
'- max : une valeur que ne peut dépasser la variable "NbDec"
'Magic_Doctor
'
' Conversion condition si dessous : 'vérifie si NbDec est entier ou pas
' Choix : ChxDegGr
'
'
'
Dim ValTemp As String
' teste si Max est initialisé
If Max Is Nothing Then Set Max = Range(Cells(2, 5), Cells(2, 5))
' Test Valeur Compteur Optional
If IsMissing(Compteur) = False Then Compteur = Compteur
' Copteur 0 = false / Compteur 1 = True / Compteur 2 = pas remplis Optional
'
'
If DegGrad = False Then
'
If Entrée.Value Like "*" & "," & "*" Then
'
If Entrée.Value > Max.Value And Max.Value <> "" Then
ValTemp = Replace(Max.Value, ",", "° ")
If Compteur = 0 And Compteur <> 2 Then
ValTemp = "-" & ValTemp
ElseIf Compteur = 1 And Compteur <> 2 Then
ValTemp = "+" & ValTemp
End If
Else
ValTemp = Replace(Entrée.Value, ",", "° ")
If Compteur = 0 And Compteur <> 2 Then
ValTemp = "-" & ValTemp
ElseIf Compteur = 1 And Compteur <> 2 Then
ValTemp = "+" & ValTemp
End If
End If
'
ValTemp = ValTemp & "'"
Else
If Entrée.Value > Max.Value And Max.Value <> "" Then
ValTemp = Max.Value
If Compteur = 0 And Compteur <> 2 Then
ValTemp = "-" & ValTemp
ElseIf Compteur = 1 And Compteur <> 2 Then
ValTemp = "+" & ValTemp
End If
Else
ValTemp = Entrée.Value
If Compteur = 0 And Compteur <> 2 Then
ValTemp = "-" & ValTemp
ElseIf Compteur = 1 And Compteur <> 2 Then
ValTemp = "+" & ValTemp
End If
End If
'
ValTemp = ValTemp & "'"
'
End If
'
ElseIf DegGrad = True Then
'
If Entrée.Value > Max.Value And Max.Value <> "" Then
ValTemp = Max.Value & " Gr"
If Compteur = 0 And Compteur <> 2 Then
ValTemp = "-" & ValTemp
ElseIf Compteur = 1 And Compteur <> 2 Then
ValTemp = "+" & ValTemp
End If
Else
ValTemp = Entrée.Value & " Gr"
If Compteur = 0 And Compteur <> 2 Then
ValTemp = "-" & ValTemp
ElseIf Compteur = 1 And Compteur <> 2 Then
ValTemp = "+" & ValTemp
End If
End If
End If
'
ConvertirDecimal = ValTemp
End Function
L'idée est d'avoir le complément sous cette même forme et donc a Ajouter des lignes de commande en en-tête de function en complément dont je ne me rappelle plus !
Complément à ajouter sur cette ligne de commande les étiquettes des arguments de cette fonction ? Public Function ConvertirDecimal(ByVal Entrée As Range, ByVal DegGrad As Boolean, Optional ByVal Max As Range, Optional ByVal Compteur As Byte = 2) As Variant
Lien :
[Résolu] c# | La quête de la Excel fonction personnalisée
Cette question a été demandé avant, mais à chaque fois que l'on a accepté la réponse est tout simplement une démission de fournir programmation c#
prograide.com
Solution ici : (info bubble function "VBA")
excel - How to put a tooltip on a user-defined function - Stack Overflow
Il suffit de taper au clavier : =MyUDF( + CTRL + Shift + A
C'est expliqué dans le lien
Il faut juste recréé un SenKey (Au clavier et hop c'est partie pas mal)
ET
=MyUDF( + CTRL + Verr.Maj + A (Affiche la boite de dialogue)
' En Détail
VBA MacroOptions to Add UDF Description - wellsr.com
' mais pas encore l'info-bull (Semble ne pas être possible !)
a suivre
Exemple en Poste #5 ci-dessous
XL 2016 - Fonction personnalisée VBA
Bonjour à tous, la bonne année car il est encore temps, je viens d'écrire une fonction personnalisée qui à partir de deux colonnes effectues les opérations suivantes * Compare la dernière valeur de la colonne "A:A - Ligne Fabrication" pour trouver la lignes de l'avant dernière valeur qui lui...
www.excel-downloads.com
Complément donné par @patricktoulon
sans compter aussi qu'il est possible d'ajouter des comentaires a l'interieur meme d'une formule utilisant ta fonction perso
un exemple ici : Merci @patricktoulon
Ajouter un commentaire dans une formule
Bonjour à tous. J'ai redécouvert récemment cette astuce qui peut parfois s'avérer utile. Il peut arriver que certaines formules de feuilles de calcul soient difficilement lisibles "dans le texte". Il est possible d'insérer des indications dans la formule visibles dans la barre, mais qui...
www.excel-downloads.com
Pièces jointes
Dernière édition: