Le classeur des fonctions personnalisées VBA!

David Aubert

XLDnaute Barbatruc
Administrateur
Modérateur
Excel permet de créer des fonctions personnalisées qui viennent compléter les fonctions natives d'Excel que l'on peut retrouver dans les feuilles de calcul.
L'objectif de ce forum est de partager des fonctions personnalisées que vous avez créées pour vos propres besoins et qui pourraient être utiles à la communauté.

Vous pouvez voter pour les fonctions que vous trouvez particulièrement utiles afin de les mettre en avant dans ce forum.
Lorsqu'il y aura suffisamment de fonctions, je créerai un fichier Excel regroupant les meilleures fonctions qui auront été partagées au sein de ce forum.
Cela permettra aux visiteurs du site de retrouver toutes ces fonctions au sein d'un seul et même classeur!

N'hésitez pas à collaborer à ce projet et à publier vos fonctions créées en VBA.
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
Bonjour David,

j'étrenne ce forum avec cette fonction personnalisée :

VB:
Function XLD() As String
  XLD = "Le site XLD est le meilleur forum pour Excel !"
End Function

l'utilisation est très simple car elle ne requiert pas de paramètre, tout comme la fonction AUJOURDHUI() : il suffit de mettre dans une cellule : =XLD() ; résultat garanti ! 😊

soan
 

patricktoulon

XLDnaute Barbatruc
bonsoir
perso je ne veux pas jouer les trouble fait
mais je sais pas si mélanger les fonctions personnalisées par lambda et celle de vba soient une bonne idée
David j'ai bien compris que tu adhère a ces nouvelles techniques mais tout le monde n'a pas lamda et ou une version d'office pouvant l' accueillir
un forum dédié aux fonctions persos avec des sous forum peut être ;)
 

David Aubert

XLDnaute Barbatruc
Administrateur
Modérateur
Bonsoir,

@patricktoulon : j’ai créé un préfixe permettant de bien différencier les fonctions personnalisées créées en VBA par rapport à celles qui le seront avec Lambda.
Cela permettra de bien les différencier dans le forum 😊

Bonne soirée

David
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

Pour le fun et pour ne pas être juge et partie, je me permets cette petite variante qui permet de varier le dé ;)
VB:
Function XL(Optional D$ = "Le forum XLD est un forum dédié à Excel!")
XL = D
End Function
On pourra saisir en A1: =XL()
ou aussi =XL("Art Zoyd est bon pour les oreilles (au moins les miennes")

Sinon, cette idée me rappelle Le Chantier qu'avait tenté de créer quelques XLDiens "capés" un été où l'ennui est plus fort qu'un autre.
Ca avait bien commencé puis rapidemment périclité.
Mais à l'époque, y avait pas de Covid(*), donc cela pourrait être différent cette fois-ci ;)
(*): confinement=temps libre en plus

EDITION: C'était l'été 2011
On avait fait quand même 5 pages
 
Dernière édition:

Magic_Doctor

XLDnaute Barbatruc
Bonjour le, fil, le forum

Une petite fonction qui reporte le dernier jour (ou le nombre de jours) du mois d'une date donnée.

Bien cordialement
VB:
Function Dernier_Jour_Mois(La_Date)
    If IsDate(La_Date) Then
        Dernier_Jour_Mois = CByte(Day(DateSerial(Year(La_Date), Month(La_Date) + 1, 0)))
    Else
        Dernier_Jour_Mois = Null
    End If
End Function
Bonjour Yeahou,

Je pense que pour toute fonction (et autres Sub) il faut être "carré". Je m'explique :
Ces fonctions seront aussi destinées à ceux qui ne comprennent pas grand chose en VBA et qui voudraient progresser. En conséquence, en REM :
- écrire brièvement et intelligemment le but de la fonction ;
- déclarer tous les paramètres de la fonction d'une manière, disons, psychorigide ;
- déclarer impérativement toutes les variables (Option Explicite, même pour ceux qui n'y adhèrent curieusement pas...) ;
- indiquer le pseudo du concepteur (novice ou crac) ainsi que, par la suite, de tous ceux qui auront concrètement participé à l'amélioration de la fonction.
VB:
Function Dernier_Jour_Mois(La_Date As Date) As Byte
'Renvoie le nombre de jours du mois d'une date donnée
'- La_Date : une date (ex : 03/12/2021)
'Yeahou

    If IsDate(La_Date) Then
        Dernier_Jour_Mois = CByte(Day(DateSerial(Year(La_Date), Month(La_Date) + 1, 0)))
    Else
        Dernier_Jour_Mois = Null
    End If
 
End Function
 
Dernière édition:

David Aubert

XLDnaute Barbatruc
Administrateur
Modérateur
Bonjour,
@Dranreb : mon idée initiale était de proposer des fonctions personnalisées utilisables dans des formules (feuilles de calcul).
Je vais réfléchir à ta proposition :)
Merci
David
 

Magic_Doctor

XLDnaute Barbatruc
Bonjour à tous

L'idée est sympa mais je pense qu'il faut éviter les fonctions qui dupliquent celles d'Excel
Exemple

C'est la même chose avec la date en A2 que FIN.MOIS(A2;0)
Bonsoir,

En effet, cela paraît évident. Voilà pourquoi, toute fonction qui sera proposée, devra passer par un "comité de pairs" qui la validera ou pas. Après, libre à chacun de l'améliorer.
 

Discussions similaires

  • Suggestion
Recherche & référence RECHERCHE2D
Réponses
8
Affichages
2 K

Statistiques des forums

Discussions
314 698
Messages
2 112 016
Membres
111 395
dernier inscrit
juliendegraef