formateur informatique

Enregistrer les fonctions VBA dans la bibliothèque Excel

Accueil  >  Bureautique  >  Excel  >  Excel VBA  >  Enregistrer les fonctions VBA dans la bibliothèque Excel
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux, voici son url absolue :

Pour l'intégrer sur votre site internet ou blog, vous pouvez l'embarquer :

Sujets et formations similaires :


Fonctions VBA Excel portables avec descriptions

Dans la formation précédente, nous avons créé deux nouvelles fonctions de feuille de calcul, grâce au code Visual Basic Excel. A l'instar des fonctions conditionnelles Nb.si et Somme.Si, ces fonctions permettent de dénombrer et sommer en fonction de la couleur de remplissage des cellules. Nous les avons respectivement nommées nbCouleurs et sommeCouleurs. Cependant, à ce stade, ces fonctions étant attachées au classeur dans lequel elles ont été créées, ne sont disponibles que pour ce dernier.

Nouvelles fonctions de calcul intégrées dans bibliothèque Excel avec descriptions dans assistant



L'objectif de cette formation consiste à les rendre disponibles pour toute utilisation d'Excel, quel que soit le classeur. Et comme l'illustre la capture ci-dessus, nous souhaitons qu'un descriptif apparaisse dans l'assistant fonctions d'Excel. Ainsi, l'utilisateur saura comment les exploiter, sans même les connaître.

Sources et présentation
Il n'est pas question ici de reconstruire ces fonctions. Nous proposons de les récupérer avec le classeur à partir duquel elles ont été construites. Ce classeur est constitué des feuilles Classement et Sommes_couleurs sur lesquelles nous avions testé les fonctions créées par le code VBA. La seconde feuille notamment avait permis de tester la version surchargée de la fonction sommeCouleurs. En effet, à l'instar de la fonction Somme.Si, nous avions déclaré son troisième argument comme facultatif. De fait, elle peut être exploitée pour réaliser des additions sur une plage où le critère est compté. Mais elle peut aussi calculer la somme sur une plage de cellules en fonction des couleurs décelées sur une autre plage.
  • Réaliser le raccourci clavier ALT + F11 pour basculer dans l'éditeur de code VBA Excel,
  • Dans l'explorateur de projet sur la gauche, déployer l'affichage du dossier Modules,
  • Puis, double cliquer sur l'élément Module1 pour afficher sa feuille de code,
Code VBA des fonctions conditionnelles Excel de calcul sur les couleurs de fond

Vous y notez effectivement la présence des fonctions VBA nbCouleurs et sommeCouleurs. Dans le classeur actif, si vous débutez le calcul dans une cellule vierge par le symbole égal et que vous tapez les premières lettres de l'une ou l'autre, Excel les propose contextuellement, sous forme d'info-bulle.
  • Revenir sur la feuille du classeur (ALT + F11),
  • Créer un nouveau classeur à l'aide du raccourci clavier CTRL + N par exemple,
  • Dans une cellule, taper le symbole = pour débuter le calcul,
  • Puis, saisir les premières lettres de la fonction nbCouleurs,
Fonctions VBA Excel non reconnues car non portables

Comme l'illustre la figure ci-dessus, dans ce nouveau contexte, nos fonctions ne sont pas reconnues par Excel. Seule la fonction NbCar qui commence par les mêmes lettres, est proposée.



Le classeur de macros personnelles
Une solution pour rendre ces fonctions portables, consisterait à les enregistrer dans le classeur de macros personnelles, soit le fichier personal.xlsb. C'est d'ailleurs ce que nous avions fait dans la formation pour personnaliser l'environnement de travail, afin que les boutons du nouveau ruban restent fonctionnels, pour toutes les utilisations d'Excel.
  • Fermer le nouveau classeur (CTRL + W) pour revenir sur le précédent,
  • Puis, basculer dans l'éditeur de code VBA Excel (ALT + F11),
Dans l'explorateur de projet sur la gauche de l'éditeur, vous devriez noter la présence du projet associé au classeur de macros personnelles (Personal.xlsb).

Présence du modèle du classeur de macros personnelles dans le projet VBA pour enregistrer les fonctions partout

Si tel n'est pas le cas, deux actions permettent d'y remédier. Soit depuis le ruban Affichage d'une feuille Excel, vous cliquez sur le bouton Afficher. Dans la boîte qui suit, vous sélectionnez Personal.xlsb et vous cliquez sur Ok. Soit, vous créez une nouvelle macro automatique temporaire que vous enregistrez dans le classeur de macros personnelles. Cette dernière action aura aussi pour effet de le réactiver.
  • Dans l'éditeur VBA Excel, sélectionner le code des deux fonctions nbCouleurs et sommeCouleurs (Du Sub au End Sub pour les deux),
  • Couper les éléments sélectionnés grâce au raccourci clavier CTRL + X,
  • Dans l'explorateur de projet sur la gauche, sélectionner VBAProject (Personal.xlsb),
  • Ensuite, cliquer sur le menu Insertion en haut de l'éditeur,
  • Puis, choisir Module dans la liste,
  • Dans la feuille de code du nouveau module qui apparaît, coller (CTRL + V) le code VBA précédemment coupé,
  • Enregistrer les modifications (CTRL + S) et basculer sur la feuille Excel (ALT + F11),
  • Créer un nouveau classeur (CTRL + N),
  • Dans une cellule, taper le symbole = pour débuter le calcul,
  • Puis taper les premières lettres de l'une des deux fonctions,
Comme vous le remarquez, Excel ne les suggère toujours pas. Elles ne semblent pas être reconnues. Pourtant, nous les avons bien collées dans le modèle Excel, celui qui porte toutes les préférences pour toutes les utilisations du tableur.

En réalité, elles sont bien présentes mais sont préfixées. C'est ce que nous proposons de constater.
  • Cliquer sur l'onglet Formules en haut de la fenêtre Excel pour activer son ruban,
  • Tout à fait à gauche du ruban, cliquer sur le bouton Insérer une fonction,
  • Dans la boîte de dialogue qui suit, choisir la catégorie Personnalisées à l'aide de la liste déroulante,
Fonctions de calcul VBA enregistrées dans le modèle Excel pour disponibilités permanentes

Comme vous le remarquez et comme l'illustre la capture ci-dessus, les deux fonctions font désormais bien partie de la librairie des fonctions de feuille de calcul Excel. Mais un problème de taille surgit. Elles sont préfixées du nom du modèle Excel, soit Personal.xlsb!. Et, pour des raisons d'ergonomie et de simplicité, nous souhaitons les exploiter directement par leur nom.



Créer un complément de fonctions Excel
Le classeur de macros personnelles n'est donc pas une solution satisfaisante pour rendre disponibles nos fonctions, par leurs noms, pour chaque classeur Excel. La solution consiste à créer un complément Excel puis à l'ajouter en référence de l'application. Comme nous l'avait appris la formation VBA pour créer des fonctions disponibles partout, une fois la référence ajoutée, les fonctions s'exploitent naturellement par leur nom et pour tout classeur.
  • Fermer la boîte de dialogue des fonctions,
  • Conserver le nouveau classeur ouvert,
  • Basculer dans l'éditeur de code VBA Excel,
  • Sélectionner de nouveau l'intégralité des deux fonctions précédemment collées dans le nouveau module du classeur de macros personnelles,
  • Les couper à l'aide du raccourci clavier CTRL + X,
  • Dans l'explorateur de projet, sélectionner l'élément VBA Project du nouveau classeur,
  • Cliquer sur le menu Insertion en haut de l'éditeur puis sur Module dans la liste,
  • Dans la feuille de code vierge qui apparaît, coller le code VBA des deux fonctions (CTRL + V),
Pour que le complément soit pleinement fonctionnel, nous souhaitons réaliser quelques opérations avant de l'enregistrer. Il s'agit de décrire les deux nouvelles fonctions afin que des indications soit fournies à l'utilisateur depuis la boîte de dialogue des fonctions Excel.
  • Cliquer sur le menu Affichage en haut de l'éditeur de code VBA,
  • Dans la liste, choisir Explorateur d'objets,
Une nouvelle fenêtre apparaît. Elle offre la liste complète de tous les objets, propriétés, méthodes et fonctions disponibles en VBA Excel.
  • Faire défiler la liste de droite vers le bas jusqu'à trouver la fonction nbCouleurs,
  • Cliquer avec le bouton droit de la souris sur cette dernière,
  • Dans le menu contextuel, choisir Propriétés,
  • Dans la zone Description de la boîte de dialogue qui apparaît, saisir l'indication suivante :
Compte les cellules de la couleur portée par la cellule définie en deuxième argument. -1er argument : Plage de cellules où compter. - 2nd argument : Cellule avec la couleur de fond de référence.
  • Puis, cliquer sur Ok pour valider,
Décrire de nouvelles fonctions VBA pour ajouter les descriptions dans assistant fonction Excel

De la même façon, il s'agit d'ajouter une description pour la seconde nouvelle fonction.
  • Faire défiler la liste de droite vers le bas jusqu'à trouver la fonction sommeCouleurs,
  • Cliquer avec le bouton droit de la souris sur cette dernière,
  • Dans le menu contextuel, choisir Propriétés,
  • Dans la zone Description de la boîte de dialogue qui apparaît, saisir l'indication suivante :
Somme les valeurs des cellules possédant la même couleur que la cellule définie en deuxième argument. 1er argument : Plage de cellules où chercher la couleur. 2ème argument : Cellule de couleur de référence - 3ème argument [Facultatif] : Plage de cellules correspondantes où sommer. Si ce troisième argument n'est pas défini, la somme est réalisée sur la première.
  • Valider cette description par le bouton Ok,
  • Fermer l'explorateur d'objets en cliquant sur sa croix en haut à droite,
  • Réaliser le raccourci clavier CTRL + S pour enregistrer ce nouveau classeur,
  • Dans la zone Type, en bas de la boîte de dialogue qui suit, choisir Complément Excel (*.xlam),
Classeur Excel comme complément xlam pour enregistrer les fonctions VBA pour tous les classeurs

Comme vous le remarquez et comme l'illustre la barre d'adresse de la capture ci-dessus, Excel vous redirige vers l'emplacement centralisé des compléments. Il convient d'accepter cette destination pour que le complément soit reconnu sans difficulté par Excel.
  • Dans la zone Nom de fichier, saisir fct-couleurs.xlam,
  • Puis, cliquer sur le bouton Enregistrer pour valider,
De retour dans l'éditeur de code, vous remarquez que le nom du classeur n'a pas changé. Nous avons en effet enregistré une déclinaison de ce dernier. Le complément existe mais pour qu'il soit fonctionnel, il doit être lié à l'application Excel. Nous devons donc l'ajouter en référence. Mais avant cela, pour éviter toute confusion, il s'agit de fermer les classeurs ouverts.
  • Basculer sur l'application Excel (ALT + F11),
  • Fermer le nouveau classeur (CTRL + W) sans l'enregistrer,
  • Fermer le classeur source fonctions-vba-couleurs.xlsm, sans l'enregistrer,
  • Créer un nouveau classeur Excel (CTRL + N),
  • Cliquer sur l'onglet Développeur en haut de la fenêtre Excel pour activer son ruban,
  • Dans la section Compléments, cliquer sur le bouton Compléments Excel,
  • Dans la boîte de dialogue qui apparaît, cocher la case fct-couleurs,
Il s'agit du nom que nous avons attribué au complément que nous avons créé lors de l'enregistrement. Il est directement reconnu car nous avons accepté la destination centralisée que nous a proposée Excel.
  • Cliquer sur le bouton Ok pour valider,
Désormais et jusqu'à nouvel ordre, la référence est ajoutée. Le lien avec le complément existe pour toutes les utilisations d'Excel sur ce poste, sans exception. Nos fonctions doivent désormais être disponibles et exploitables directement par leurs noms.

Ajouter référence au complément Excel pour exploiter les fonctions de calcul conditionnelle VBA partout et tout le temps

Pour tester la désormais portabilité des fonctions de calculs que nous avons créées en VBA, il s'agit de réaliser un petit test, comme illustré par la capture ci-dessous.

Appel fonction VBA Excel utilisable partout grâce à la référence au complément Xlam

Nous avons inscrit quelques valeurs d'essai en colonne B, entre les lignes 2 et 10. Nous avons attribué une couleur de remplissage, seulement à certaines d'entre elles. En Cellule D6, après le symbole égal, nous avons tapé les premières lettres de la fonction nbCouleurs. Celle-ci a été reconnue et proposée par Excel, grâce au complément. Nous l'avons sélectionnée. En premier argument, nous avons défini la plage de cellules B2:B10. En deuxième argument, nous avons désigné la cellule D3 que nous avions remplie de la couleur à trouver. La fonction a retourné le chiffre 4, prouvant qu'elle a bien réussi à comptabiliser toutes les cellules portant la couleur de référence, dans la plage désignée.

De la même façon, si vous tapez les premières lettres de la fonction sommeCouleurs après le symbole égal, dans une nouvelle cellule, vous constatez qu'elle est aussi reconnue et ce, indéfiniment. Mais plus intéressant encore, les manipulations que nous avons réalisées depuis l'explorateur d'objets VBA, ont permis de leur ajouter des descriptions. Ces indications doivent aider l'utilisateur non-averti à les exploiter.
  • Cliquer sur l'onglet Formules en haut de la fenêtre Excel pour activer son ruban,
  • Tout à fait à gauche de ce dernier, cliquer sur le bouton Insérer une fonction,
  • Dans la boîte de dialogue qui suit, choisir la catégorie Personnalisées,
Descriptions des nouvelles fonctions créées en VBA depuis assistant fonctions de calcul Excel

Comme vous le constatez, les nouvelles fonctions de calcul sont proposées et accompagnées d'une indication précieuse pour savoir comment les exploiter. Nous avons donc réussi à ajouter des nouvelles fonctions dans la bibliothèque des fonctions Excel. Elles seront désormais disponibles tout le temps. Si d'aventure vous ne les souhaitiez plus, il suffirait de décocher la case du complément Excel, à partir du ruban Développeur.

 
Sur Facebook
Sur G+
Sur Youtube
Les livres
Contact
Mentions légales



Partager la formation
Partager sur Facebook
Partager sur Google+
Partager sur Twitter
Partager sur LinkedIn