Utiliser une fonction personnalisée dans un nouveau classeur
Une question se pose : Peut-on utiliser une fonction personnalisée dans un nouveau classeur ? Nous allons chercher la réponse !
• Créez un nouveau classeur.
• Saisissez l’exemple ci-contre.
• Dans la cellule B3, saisissez =fg(
• cliquez sur la cellule B2 des ventes et tapez )
• Validez avec Entrée.
Le résultat du calcul est #NOM? : la fonction n’est pas connue d’Excel dans ce classeur.
Nous pouvons donc en conclure qu’une fonction personnalisée n’est utilisable que dans le classeur dans lequel elle a été créée.
Il est néanmoins possible de généraliser une fonction personnalisée à l’ensemble des classeurs.
• Fermez ce classeur.
Généraliser une fonction personnalisée
Pour généraliser une fonction personnalisée (et l’utiliser de n’importe quel classeur), il faut :
• mémoriser cette fonction comme macro complémentaire,
• activer la macro complémentaire.
Ouverture du classeur contenant la fonction
• Ouvrez le classeur Fonctions.xls contenant les fonctions personnalisées que vous venez de créer.
Lors de l’ouverture de ce classeur, Excel affiche un message vous alertant que ce fichier contient des macros (dans notre cas, ce fichier contient des fonctions, Excel ne fait pas la différence).
Attention : Tout « programme » peut contenir un virus !
Pas de danger avec le contenu de ce classeur puisque vous en êtes le créateur.
• Vous pouvez cliquer sur le bouton Activer les macros.
Remarque : il est recommandé de ne pas désactiver la case « Toujours demander confirmation avant d’ouvrir des classeurs contenant de macros », surtout si vous manipulez des fichiers Excel que vous n’avez pas créé.
Ajout de commentaires
Lorsque nous avons utilisé la fonction depuis l’Assistant Fonction, celui-ci n’affiche aucun commentaire (voir page 9). L’utilisateur ne sait pas forcément ce que fait la fonction.
• Ouvrez Visual Basic Editor (Alt + F11)
• Affichez l’Explorateur d’objets
• Choisissez d’afficher les objets de votre classeur (VBAProject)
Les trois fonctions personnalisées que vous avez créées apparaissent :
• Faites un clic droit sur la fonction fg et choisissez la commande Propriétés…
• Dans la zone Description : saisissez le texte qui apparaîtra dans l’Assistant Fonction
Par exemple :
Renvoie les Frais généraux à partir des Ventes (= Ventes * Taux) [CTRL]+[ENTREE]
Taux = 5 % si Ventes < 80 000 F ; Taux = 7 % si 80 000 F <= Ventes <= 100 000 F ; Taux =10 % si Ventes > 100 000 F
• Fermez la fenêtre Explorateur d’objets
• Fermez la fenêtre Module1 et toutes les autres.
• Quittez Visual Basic Editor
Remarques :
Vous pouvez visualiser la description saisie en cliquant dans la cellule contenant la fonction (ici, la cellule B2) puis en cliquant sur le bouton Assistant Fonction
Le message est identique lorsque vous collez la fonction dans une cellule vide.
Vous pouvez créer un commentaire pour les deux autres fonctions si vous le désirez.
Un commentaire plus général peut être saisi dans le fichier Excel.
Depuis Excel,
• Fichier
• Propriétés
• Saisissez le commentaire souhaité dans la zone Commentaires de l’onglet Résumé.
Enregistrement de la macro complémentaire
• Fichier
• Enregistrer sous…
• Choisissez comme type de fichier : Macro complémentaire Microsoft Excel.
Excel place automatiquement ce fichier dans le dossier C:\WINDOWS\Application Data\Microsoft\Macros complémentaires
• Changez, éventuellement le nom : Fonctions Ventes.
Remarque : le chemin par défaut est utilisé pour un enregistrement sur votre disque dur (en local). Vous pouvez enregistrer un fichier Macro complémentaire (.xla) sur un serveur.
• Fermez le fichier Fonctions.
Activation de la macro complémentaire
• Créez un nouveau classeur
• Outils
• Macros complémentaires…
• Activez la case de la macro complémentaire désirée (ici, la macro Fonctions Ventes)
Vos fonctions personnalisées sont désormais utilisables de n’importe quel classeur.
Remarques :
Notez la présence du message dans cette fenêtre.
Cliquez sur Parcourir… si le fichier .xla est enregistré ailleurs que dans le dossier Macros complémentaires de votre disque dur.
Utilisation d’une fonction personnalisée complémentaire
• Dans le nouveau classeur, saisissez l’exemple ci-contre.
• Dans la cellule B3, saisissez =fg(B2)
• Validez avec Entrée.
• Fermez le fichier.
Les macros
Enregistrer une macro
Nous allons concevoir une macro qui permet d’afficher automatiquement un titre que nous utilisons régulièrement. Ce titre comporte un texte et la date du jour. Il est encadré et centré sur 7 colonnes et 2 lignes.
Définition des actions
Pour créer ce titre, vous réalisez les actions suivantes :
• Saisie du texte dans une cellule
• Saisie de la date du jour dans la cellule du dessous
• Sélection d’une plage de 7 colonnes et 2 lignes
• Centrage des titres dans cette plage
• Encadrement de cette plage
• Annulation de la sélection en cours
C’est cette suite d’actions que nous allons enregistrer dans une macro.
Enregistrement de la macro
• Lancez Excel
• Outils
• Macro
• Nouvelle macro…
• Saisissez MonTitre1 comme nom de macro
• Cliquez sur OK pour lancer l’enregistrement de la macro
Excel affiche une barre d’outils contenant les boutons :
• Arrêter l’enregistrement
• Références relatives
A partir de maintenant, toutes les actions que vous faites sont enregistrées dans la macro, y compris les mauvaises manipulations.
• En A1 saisissez SITUATION AU
• Cliquez en A2 et saisissez la formule =AUJOURDHUI()
• Sélectionnez la plage A1:G2
• Format Cellule…
• Alignement : Centré sur plusieurs colonnes (horizontal)
• Bordure : Contour
• OK
• Cliquez en A4 pour désactiver la sélection
• Outils Options Affichage : désactivez la case Quadrillage OK
• Cliquez sur le bouton Arrêter l’enregistrement
• Enregistrez le classeur sous le nom Macros.
Exécuter une macro
Nous allons tester la macro dans une nouvelle feuille.
• Activez la feuille Feuil2 et cliquez en A1
• Outils
• Macro
• Macros…
• Choisissez la macro MonTitre1
• Exécuter
La macro s’exécute et lorsque l’exécution est terminée, la feuille Feuil2 est semblable à la feuille Feuil1.
Introduction
1. Les fonctions personnalisées
2. Les macros ou procédures
3. L’éditeur VBA et les modules
Les fonctions personnalisées
1. Créer une fonction personnalisée
1. 1. Généralités
1. 2. Création d’une fonction simple
1. 3. Utilisation de la fonction
1. 4. Création d’une fonction conditionnelle à une condition
1. 5. Utilisation de la fonction
1. 6. Exercice
1. 7. Création d’une fonction conditionnelle à plusieurs conditions
1. 8. Utilisation de la fonction
1. 9. Exercice
2. Utiliser une fonction personnalisée dans un nouveau classeur
3. Généraliser une fonction personnalisée
3. 1. Ouverture du classeur contenant la fonction
3. 2. Ajout de commentaires
3. 3. Enregistrement de la macro complémentaire
3. 4. Activation de la macro complémentaire
3. 5. Utilisation d’une fonction personnalisée complémentaire
Les macros
1. Enregistrer une macro
1. 1. Définition des actions
1. 2. Enregistrement de la macro
2. Exécuter une macro
3. Examiner le code de la macro
3. 1. Procédure
3. 2. Instructions
4. Modifier le code
4. 1. Supprimer le code inutile
4. 2. Code utile
4. 3. Modifier une propriété
5. Exécuter une macro
6. Enregistrer une macro avec des références relatives
7. Examiner le code de la macro
8. Exécuter une macro
9. Supprimer une macro
10. Rendre la saisie interactive
11. Obliger la saisie d’un titre
12. Les variables
13. Les instructions de contrôle (Rappels et compléments)
13. 1. Instructions de décision
13. 2. Instructions de boucle
13. 3. Instructions groupées
14. Macro appelant une autre macro
14. 1. Enregistrer une macro
14. 2. Examiner le code de la macro
14. 3. Appeler une macro dans une macro existante
15. Exécuter rapidement une macro
15. 1. Affecter un raccourci clavier à une macro
15. 2. Affecter une macro à un bouton sur une barre d’outils
15. 3. Affecter une macro à un bouton sur une feuille
16. Disponibilité des macros
17. Supprimer le bouton sur la barre d’outils
18. Classeur de macros personnelles
19. Enregistrer une macro dans le classeur PERSO.XLS
19. 1. Définition des actions
19. 2. Enregistrement de la macro
19. 3. Exécuter une macro
19. 4. Examiner le code de la macro
19. 5. Modifier le code
19. 6. Exécuter une macro
20. Où se trouve le classeur PERSO.XLS ?