Compléments Excel

Un complément Excel est un fichier (généralement avec une extension .xla ou .xlam) qu’Excel peut charger au démarrage. Le fichier contient du code VBA qui ajoute des fonctionnalités supplémentaires à Excel, généralement sous la forme de nouvelles fonctions.

Les compléments constituent un excellent moyen d’augmenter la puissance d’Excel et ils sont le véhicule idéal pour distribuer vos fonctions personnalisées. Excel est livré avec une variété de compléments prêts à être chargés et utilisés, et de nombreux compléments tiers sont également disponibles.

Cet article vous montre comment écrire une fonction personnalisée à l’aide d’Excel VBA, et comment l’enregistrer et l’installer en tant que complément. Les fonctions personnalisées sont souvent appelées UDF (User Defined Functions).

Ecriture de la fonction définie par l’utilisateur

Un complément peut contenir autant d’UDF (fonctions définies par l’utilisateur) que vous le souhaitez, et vous pouvez en ajouter plus récemment, simplement en ouvrant et en modifiant le fichier de complément.

Étape 1: Ajouter un module de code à un nouveau classeur

  1. Démarrez Excel ou, si Excel est déjà ouvert, créez un nouveau classeur vide.

  2. Ouvrez Visual Basic Editor à partir de l’onglet Développeur, accédez à l’onglet Développeur.

  3. Cliquez sur Visual Basic (touches: ALT + F11), cela ouvrira Visual Basic Editor.

  4. Dans Visual Basic Editor, sélectionnez VBAProject dans le panneau Explorateur de projet. Cela sélectionne le classeur vide.

Si l’Explorateur de projet n’est pas visible, ouvrez-le en allant dans Affichage> Explorateur de projet.

  1. Dans le menu Insertion, choisissez Module. Cela ajoute un nouveau module de code vide au classeur sélectionné. Vous verrez également le module apparaître dans le panneau Explorateur de projet.

ArrowAddingModule

Étape 2: Entrez le code de la fonction définie par l’utilisateur

Dans la fenêtre de code, tapez le code de la fonction définie par l’utilisateur selon l’âge

ArrowAddingUDFCode

Étape 3: tester la fonction

Vous pouvez essayer la fonction tout de suite. Basculez vers Excel et dans votre classeur vide (le même que celui que vous utilisez pour créer le module de code de la fonction), entrez une date dans une cellule. Dans une autre cellule, saisissez votre fonction de la même manière que vous utiliseriez l’une des fonctions intégrées d’Excel, par exemple = Âge (A1)

ArrowTestingFunction

Un UDF est disponible pour tous les classeurs ouverts chaque fois que son classeur hôte (le classeur contenant le module de code de l’UDF) est ouvert. Toutefois, si vous fermez le classeur hôte et essayez d’utiliser la fonction dans un autre classeur, vous obtiendrez une erreur. L’autre classeur ne trouve pas la fonction, donc le #NAME? une erreur apparaît.

Pour surmonter l’erreur de rencontre, il faut déclarer UDF dans un complément Excel et attribuer un complément Excel à l’application Excel.

Création d’un complément Excel

Enregistrer le classeur en tant que complément

Le classeur contenant votre module de code doit maintenant être enregistré en tant que fichier de complément Excel (.xla ou .xlam).

Dans la fenêtre Excel, allez dans Fichier> Enregistrer pour ouvrir la boîte de dialogue Enregistrer sous. Entrez un nom pour votre fichier de complément (les règles de dénomination de fichier habituelles s’appliquent) et utilisez l’option Enregistrer en tant que type: pour changer le type de fichier en complément Microsoft Excel (.xla) ou (.xlam).

Avant de cliquer sur [OK], vérifiez l’emplacement dans lequel vous enregistrez le fichier de complément.

Enfin, cliquez sur [OK] pour accepter vos modifications. Votre complément est maintenant prêt pour l’installation et peut être distribué à d’autres utilisateurs si nécessaire.

ArrowSavingAddin

Installation du complément

Accédez à Outils> Compléments pour ouvrir la boîte de dialogue Compléments. Si vous avez stocké votre complément dans l’emplacement par défaut, vous verrez son nom affiché dans la fenêtre Compléments disponibles: (si vous avez stocké votre complément dans un autre dossier, utilisez le bouton [Parcourir] pour le trouver ).

Pour installer votre complément, cochez la case à côté du nom de votre complément et cliquez sur [OK].

ArrowInstallingAddin

Dès que le complément est installé, ses fonctions seront disponibles dans Excel. Trouvez-les dans la section définie par l’utilisateur de l’assistant de fonction (outil Coller une fonction) ou tapez-les simplement dans une cellule comme vous le feriez pour n’importe quelle fonction intégrée. Le complément restera installé jusqu’à ce que vous reveniez à la boîte de dialogue Compléments et que vous le désinstalliez en supprimant la coche de la case à cocher.

Ajout de l’UDF et des modifications d’un complément

Votre fichier de complément peut contenir autant de modules et de fonctions personnalisées que vous le souhaitez. Vous pouvez les ajouter à tout moment.

Si votre complément est installé, vous le verrez répertorié dans le panneau Explorateur de projet de l’éditeur VB. Localisez le module contenant vos fonctions et effectuez les ajouts et modifications souhaités. Si votre complément n’est pas installé, recherchez le fichier de complément et double-cliquez dessus pour l’ouvrir dans Excel. Vous ne pourrez pas le voir dans la fenêtre Excel, mais il apparaîtra dans l’explorateur de projet de l’éditeur VB.

N’oubliez pas d’enregistrer vos modifications! Faites cela à partir de la fenêtre de l’éditeur VB avec Fichier> Enregistrer.

Veuillez suivre ci-dessous pour le code

'Insert below code in Addin

Option Explicit



Function Age(DoB As Date)

'Gives a name to the function and declares that a single argument is needed, which must be a date.

'Checking whether Date of Birth is zero

If DoB = 0 Then

Age = "type the correct Date of Birth"

Else

'If Date of Birth is not zero, compare the current month value with the Date of Birth

Select Case Month(Date)

'If current month is before (i.e. less than) the month of date of birth,

'then they have not had their birthday, so their age is this year minus their birth year minus 1

Case Is < Month(DoB)

Age = (Year(Date) - Year(DoB)) - 1

'If current month is same as the month of date of birth

'we need to know whether or not they have had their birthday yet

Case Is = Month(DoB)

'If today date is equal to or past the day of their birthday,

'then they have had their birthday (or it is today)

'so their age is this year minus their birth year?

'otherwise their age is this year minus their birth year minus 1

If Day(Date) >= Day(DoB) Then

Age = Year(Date) - Year(DoB)

Else

Age = Year(Date) - Year(DoB) - 1

End If

'If today?s month is after (i.e. greater than) the month of the person?s date of birth,

'they have had their birthday, so their age is this year minus their birth year.

Case Is > Month(DoB)

Age = Year(Date) - Year(DoB)

'Close the CASE statement

End Select

'Close the IF statement

End If



'Close the Function

End Function

Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.

Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer notre travail et l’améliorer pour vous. Écrivez-nous à [email protected]