| auteur : Bidou |
Il s'agit d'une fonction normale.Par exemple
Vba |
Function InvChaine (Cellule As Range) As Variant
Dim MaChaine As String , cmpt As Long
If Len (Cellule. Value ) = 0 Then
InvChaine = CVErr (xlErrValue)
Else
MaChaine = CStr (Cellule. Value )
For cmpt = Len (MaChaine) To 1 Step - 1
InvChaine = InvChaine & Mid (MaChaine, cmpt, 1 )
Next cmpt
End If
End Function
|
Si dans votre feuille vous écrivez la formule =invchaine(E2),
la cellule contiendra la chaine retournée, ou #VALEUR.
|
| auteur : SilkyRoad |
C'est possible en utilisant la syntaxe:
Optional [NomVariable] As [TypeVariable] = [Donnée par défaut]
Vba |
Sub Test ()
MsgBox MaProcedure (5 , " fifi " )
MsgBox MaProcedure (5 )
End Sub
Function MaProcedure (lngValeur As Long, Optional strPrenom As String = " mimi " )
MaProcedure = lngValeur & vbCrLf & strPrenom
End Function
|
|
| auteur : SilkyRoad |
Utilisez la propriété Application.Caller dans votre fonction personnelle. Celle-ci renvoie
un objet Range correspondant à la cellule qui contient la formule d'appel.
Ce premier exemple renvoie les coordonnées de la cellule qui a déclenché la fonction:
Vba |
Cible = Application. Caller . Address
|
La fonction suivante identifie le nom de la feuille qui contient la formule. Elle peut aussi
servir à afficher le nom de la feuille active dans une cellule :
Vba |
Function FeuilleActive () As String
Application. Volatile
FeuilleActive = Application. Caller . Worksheet . Name
End Function
|
Et vous insérez dans une cellule:
=FeuilleActive()
|
| auteur : SilkyRoad |
Dans l'éditeur de macros:
Utilisez le raccourci clavier F2 pour afficher l'explorateur d'objets.
Sélectionnez "VBAproject" dans le menu déroulant.
Votre fonction apparait dans la fenêtre de droite.
Faites un clic droit.
Sélectionnez l'option "Propriétés".
Saisissez la description pour la fonction.
Cliquez sur le bouton OK pour valider.
Une autre solution, en passant pas la boîte de dialogue des macros:
Menu Outils
Macro
Macros
Dans le champ "Nom de la macro", saisissez le nom complet de la fonction.
Le bouton " Options" est alors accessible pour ajouter la description.
Cliquez sur le bouton OK pour valider.
Cette action peut aussi être réalisée par macro:
Cet exemple ajoute une description et place la fonction dans la catégorie 5 (Recherche et matrices).
La macro n'a besoin d'être lancée qu'une seule fois. Les paramètres seront ensuite définitivement enregistrés dans l'application.
Vba |
Application. MacroOptions Macro:= " NomFonction " , _
Description:= " La description pour ma fonction personnalisée. " , Category:= 5
|
Liste des catégories Excel2007:
1 Finances
2 Date Heure
3 Math Trigo
4 Statistiques
5 Recherche Matrices
6 Base de données
7 Texte
8 Logique
9 Information
10 Commandes
11 Personnalisation
12 Contrôle de macros
13 DDE/Externe
14 Personnalisées
15 Ingénierie
16 Cube
|
| auteur : SilkyRoad |
Utilisez ParamArray.
Les tableaux de paramètres permettent de passer un tableau d'arguments à une procédure.
Le nombre d'éléments indiqué peut être variable.
ParamArray:
* Doit obligatoirement être déclaré en type Variant.
* Ne peut pas coexister avec des arguments Optional.
* Doit être placé en dernière position dans la liste des arguments.
* Les arguments ne sont pas facultatifs.
* Chaque argument peut être d'un type de données différent.
* Le nombre d'arguments n'est pas limité.
* L'indice inférieur du tableau est toujours 0.
Lorsque l'appel de procédure est effectué, chaque argument fourni dans l'appel devient un élément indexé du tableau.
Un exemple qui supprime une série de caractères dans une chaîne:
Vba |
Option Explicit
Sub Test ()
Dim strChaine As String
strChaine = " m!im::i; "
strChaine = SupprimeCaracteres (strChaine, " ; " , " : " , " ! " )
MsgBox strChaine
End Sub
Function SupprimeCaracteres (LeTexte As String , ParamArray A_Supprimer1 ())
Dim i As Integer
For i = 0 To UBound (A_Supprimer1 ())
LeTexte = Replace (LeTexte, A_Supprimer1 (i), " " )
Next i
SupprimeCaracteres = LeTexte
End Function
|
Si vous utilisez ParamArray dans une fonction, ajoutez le chiffre 1 en fin de nom du paramètre. Ainsi
l'assistant de fonctions Excel incrémentera automatiquement chaque nouvel élément indiqué par l'utilisateur.
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2008
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|