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
	
	
		
			
				
					
						 
					
				
			
			
				
					
						
							 www.excel-downloads.com
						
					
					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
	
	
		
			
				
					
						 
					
				
			
			
				
					
						
							 www.excel-downloads.com
				
			
		
	
Cdt
						
					
					www.excel-downloads.com
				
			
		
	
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 FunctionL'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
						
					
					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
						
					
					www.excel-downloads.com
				Pièces jointes
			
				Dernière édition: 
			
		
	
								
								
									
	
		
			
		
		
	
	
	
		
			
		
		
	
								
							
							 
	 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		