Vous êtes sur la page 1sur 3

Analyse de Données [2023-2024]

TD n°6: Automatisation de tâche en VBA


Exemple de macro qui supprime les feuilles du fichier sauf la 1ère, puis crée une deuxième feuille avec un code et l’enregistre en pdf :

Question I – Génération d’un pdf par vendeur avec les commandes en cours :
1°) Créer un nouveau fichier « TdGénérationPdf.xlsm » dans un dossier « VBA » :
- Récupérer sur Teams le fichier Employes.csv, et l’importer dans votre fichier Excel dans un premier onglet Empoyes, en
n’oubliant pas de modifier l’origine du fichier en 65001 Unicode (UTF8)
- Récupérer de même sur Teams le fichier Ventes.csv, et l’importer dans votre fichier Excel dans un second onglet Ventes ( ne pas
modifier ici l’origine du fichier ). Après le chargement, mettre la colonne DateCommande au format jj/mm/aaaa.
- Créer après ces 2 premières feuilles 3 nouvelles feuilles vierges supplémentaires

2°) Créer une macro DispatcherVentesEnCours() qui :


- Récupère le nombre de feuilles du fichier
- Puis parcourt les feuilles de la dernière à la 3ème afin de les supprimer, après avoir affiché un message du type « Suppression de la
feuille Feuil1 »

3°) Compléter la macro afin qu’elle crée ensuite autant de feuilles que de salariés présents dans la feuille Employes, qui sera parcourue à l’aide
d’une boucle For. Chaque nouvelle feuille sera nommée avec le nom de l’employé. Les nouvelles feuilles seront créées après la feuille Ventes.

4°) Compléter la macro afin d’écrire la première ligne de titre sur chacune des nouvelles feuilles crées. On parcourra cette fois les feuilles de la 3ème
à la dernière. Les titres seront colorés, écrits en police 12, centrés et entourés de bordures.

5°) On se propose maintenant d’améliorer la mise en forme des feuilles générées, en mettant en gras les cellules de la ligne de titres. L’enregistreur
de macros va nous permettre de retrouver la syntaxe VBA à utiliser.
- Se placer par exemple sur la feuille Callahan.
- Démarrer l’enregistreur de Macro : Onglet Developpeur → Enregistrer une macro : nommer la macro Gras.
- Sélectionner les cellules A1 à D1. Mettre en gras.
- Arrêter l’enregistreur de Macro
- Enlever la mise en gras, et tester le lancement de la macro Gras afin de vérifier qu’elle fonctionne bien.
- Repérer dans la macro Gras la syntaxe à utiliser afin de mettre en gras, et compléter le code réalisé au 4°) afin de mettre en gras
les 4 cellules de la ligne de titres, sur chacune des feuilles des vendeurs.

1
Analyse de Données [2023-2024]

6°) Pour chaque commande qui n’a pas encore été livrée , recopier les informations correspondantes dans l’onglet du vendeur correspondant, en
complétant la macro précédente. On parcourra toute la feuille Ventes, et si la Date d’envoi est vide :
- On récupèrera le nom du vendeur correspondant
- On retrouvera le numéro de la première ligne vide de la feuille correspondante au vendeur
- Et on copiera dans l’onglet du vendeur les informations DateCommande, Client, Produit et Quantite de la ligne de la feuille Ventes

7°) On se propose maintenant de générer un pdf pour chacun des vendeurs, à partir des feuilles générées. On parcourra l’ensemble des feuilles
des vendeurs dans le sens croissant. Pour identifier le dossier où seront créés vos fichiers, ouvrir dans l’explorateur Windows le dossier VBA,
copier le chemin affiché, et le coller dans votre code VBA.
Nb : Attention, sur Mac, le symbole séparateur de dossier est le « / », et non le « \ » comme sur Windows. Pour copier le chemin de votre dossier,
clic-droit sur le dossier, maintenir la touche « Option » appuyée, puis « Copier en tant que nom de chemin »

8°) On se propose enfin d’améliorer la mise en forme des pdf générés, en ajustant la largeur des colonnes de données. L’enregistreur de macros
va nous permettre de nouveau de retrouver la syntaxe VBA à utiliser.
- Se placer par exemple sur la feuille Callahan
- Démarrer l’enregistreur de Macro et nommer la macro Ajuster.
- Sélectionner les colonnes A à D. Double-cliquer sur la limite entre la colonne A et B. Les 4 colonnes doivent s’être ajustées
automatiquement.
- Arrêter l’enregistreur de Macro
- Réduire la largeur des 4 colonnes, et tester le lancement de la macro Ajuster afin de vérifier qu’elle fonctionne bien.
- Repérer dans la macro Ajuster la syntaxe à utiliser afin de mettre en gras, et compléter le code réalisé au 7°) afin d’ajuster les
colonnes de données, sur chacune des feuilles des vendeurs.

2
Analyse de Données [2023-2024]

Exemple d’Envoi de Mail en VBA :

Question I – Envoi d’un émail de relance :


1°) Créer un nouveau fichier « TdEmail.xlsm » dans un dossier « VBA ». Reproduire dans une feuille « Relance » le tableau ci-dessous. Vous
noterez votre nom en E2, votre civilité ( M ou F ) en F2, et votre email en G2 ( le fait de saisir votre email vous permettra de vérifier que l’envoi de
l’émail a fonctionné )

2°) Afin que votre version d’Excel connaisse les fonctions VBA nécessaires à l’envoi d’émail, référencer dans Excel la librairie Outlook : dans la
fenêtre Visual Basic → menu Outils → Références → cocher  Microsoft Outlook 16.0 Object Library

3°) Créer une macro Relancer() permettant de :


- Lire les informations de la ligne 2 de la feuille Relance ( nb : la date de facture sera lue au format Date, mais la date du règlement
sera lue au format String, pour simplifier le test )
- D’envoyer un email si la facture n’a pas été payée et si la date de facture date de plus de 30 jours

Le mail envoyé sera créé à l’image de l’exemple ci-dessous. L’émail affichera ainsi le numéro de facture lu dans la feuille Relance, ainsi que la date
de facture, le montant et le nom du client. Si la civilité est M, on utilisera la formule Monsieur, si c’est F, on utilisera la formule Madame, et si ce
n’est pas renseigné, on utilisera la formule Madame, Monsieur

Vous aimerez peut-être aussi