Formation Bureautique Joël GARBE - Développement VBA
Si vous souhaitez contribuer à ce site :
Commentaire ?, écrivez-moi
jojoen76@hotmail.com
Automatiser la mise en forme de titres de tableaux Excel![]() Voir sur Youtube : Macro Mise en Forme |
Premier tuto d'une série de 5 consacrés aux macros,
avant d'aborder le VBA. Pour cette première, restons simples et
découvrons comment enregistrer une macro pour mettre en forme des titres
de tableaux dans n'importe quel document. |
Carte interactive avec base de données![]() Voir sur Youtube : Macro Carte interactive |
Utiliser une carte géographique pour filtrer les enregistrements d'une base de données... Première découverte de l'environnement VBA Pour télécharger le fichier source : Ventes Carte Origine.xlsm |
Consolider 2 bases de données![]() Voir sur Youtube : Consolidation Bases de données |
Consolider les données d'un fichier texte (txt) avec
une base de données excel... utiliser les références relatives lors de
l'enregistrement d'une macro. Comment manipuler des données d'un ficher texte dans excel les fichiers sont à télécharger ici ... Orders.xlsx et OrdMensuel.txt |
Contrôles de Formulaire et base de données![]() Voir sur Youtube : Contrôles de Formulaire |
Utiliser des contrôles de formulaire, associés à une macro, pour alimenter une base de données Dans ce tuto, on revoit également l'utilisation de tableaux Excel, la fonction INDEX pour effectuer une recherche verticale, la fonction SI, l'utilisation de cellules nommées, ainsi que des modifications mineures du code VBA. |
Filtres avancés et listes items![]() Voir sur Youtube : Filtres Avancés |
Utiliser les macros Excel pour extraire des
enregistrements selon des critères prédéfinis avec les filtres avancés. Une seconde macro est expliquée pour automatiser la génération de listes d'items extraites d'une base de données. Enfin, un peu de débogage VBA car tout ne se passe pas toujours comme prévu avec l'enregistreur de macros... Bref ! un exercice assez complet sur l'automatisation par macros excel. Fichier pour réaliser le tuto : Base de donnees EXPORT.xlsx |
Introduction aux variables VBA![]() Voir sur Youtube : Tuto VBA 1 |
VBA... c'est parti avec une première approche très simple des variables en VBA Les fichiers pour suivre ce tuto se trouvent ici... Orders.xlsx et OrdMensuel.txt MacroImport.xlsm L'ensemble des fichiers étant à positionner dans un même dossier de votre ordinateur. |
Boucle For Each - Next![]() Voir sur Youtube : Tuto VBA 2 |
Utilisation de la boucle For Each - Next pour parcourir tous les objets d'une collection Excel Exemple, parcourir toutes les feuilles de calcul du classeur affiché dans Excel For Each oSheet in Worksheets Et maintenant ! Que vais-je faire ? Next Utilisation simpliste de Msgbox pour afficher un message à l'utilisateur Manipuler des cellules de feuille de calcul via VBA Excel |
Structure de test :
|
Dans ce tuto, nous abordons les structures de test en VBA 2 structures possibles : If Condition Then Else End If et Select case propriété à tester Case Valeur 1 Case Valeur 2 Case etc... Case Else End Select Fichiers : Orders.xlsx - OrdMensuel.txt - MacroImport.xlsm |
Boucle For i = x to y step z - Next & Statusbar![]() Voir sur Youtube : Tuto VBA 4 |
Nous poursuivons l'étude des boucles VBA Excel avec la traditionnelle For i = x to y step z Next Nous abordons également la possibilité d'informer l'utilisateur de l'état d'avancement de la macro (Application.StatusBar) Les fichiers pour ce tuto sont ici... OrdMensuel.txt - Orders.xlsx - MacroImport_V3.xlsm le résultat final est là... MacroImport_V3_Final.xlsm |
Boucle Do - Loop & InputBox![]() Voir sur Youtube : Tuto VBA 5 |
Troisième boucle, après For Each -Next et For i - Next, voici la boucle Do - Loop Également dans ce tuto l'interaction avec l'utilisateur (InputBox après MsgBox) et une approche des procédures événementielles (comment exécuter une macro à l'ouverture d'un classeur) Une approche ludique avec la programmation du jeu du chat et de la souris ! |
Formulaire utilisateur : la conception & introduction aux procédures événementielles![]() Voir sur Youtube : Tuto VBA 6 |
Nous poursuivons l'étude du VBA avec les formulaires
utilisateur. Dans ce premier de la série, nous abordons la conception du formulaire. Est également abordée ici la notion de procédure événementielle, qui va nous permettre de créer, en utilisant le VBA cette fois, des listes nommées de dimensions variables. |
Formulaire utilisateur : l'envoi des données dans la base![]() Voir sur Youtube : Tuto VBA 7 |
Après la conception d'un formulaire de saisie utilisateur, conçu en VBA, voici comment envoyer les informations saisies dans la base de données. On découvre également dans cette vidéo, comment utiliser une fonction de feuille de calcul en VBA (application.worksheetfunction), du débogage d'erreurs (laissé en direct car non anticipé !), et la méthode pour afficher le formulaire. Par définition, ce tuto aborde la notion de procédures événementielles. Pour réaliser l'exercice de ce tuto, soit il faut faire le précédent (VBA 6... La conception) ou alors télécharger le fichier de fin du VBA 6 ici ...Bibliotheque_Apres_VBA_6.xlsm La présentation se fait à l'intérieur de VLC, car la vidéo était corrompue et j'ai pu la récupérer de cette façon... |
Formulaire utilisateur : le contrôle de saisie![]() Voir sur Youtube : Tuto VBA 8 |
Contrôler la saisie avant l'envoi dans la base de données, modifier automatiquement la saisie des champs en supprimant les espaces inutiles à l'aide de la fonction Trim (mais comment fonctionne-t-elle ?) Vous pouvez télécharger le fichier nécessaire à l'exécution de ce tuto ici : Bibliotheque_Apres_VBA_7.xlsm |
Fonction personnalisée : vérifier la validité d'une adresse mail![]() Voir sur Youtube : Tuto VBA 9 |
Élaborer une fonction personnalisée en VBA permettant de vérifier la syntaxe d'une adresse email. Utiliser cette fonction personnalisée pour vérifier la saisie dans un formulaire VBA, ou pour effectuer un contrôle à la volée, via les procédures événementielles, lors de la saisie dans une feuille de calcul sans passer par Données - Validation des données Pour élaborer cette fonction personnalisée, il sera nécessaire de manipuler des chaînes de caractères en VBA Pour effectuer l'exercice sur le même fichier que dans la vidéo, il est possible de le télécharger ici : bibliotheque-apres-vba-8.xlsm |
Formulaire utilisateur : Rechercher un enregistrement et l'afficher dans le formulaire![]() Voir sur Youtube : Tuto VBA 10 |
Cette vidéo aborde l'envoi dans le formulaire de saisie, d'un enregistrement de la feuille de calcul, afin, éventuellement, de le modifier. Biblio_Apres_VBA_9.xlsm |
Formulaire utilisateur : contrôle toupie et barre de défilement![]() Voir sur Youtube : Tuto VBA 11 |
Poursuite de la recherche en utilisant les contrôles multipage, toupie (SpinButton) et barre de défilement (ScollBar) Pour réaliser l'exercice, il faut le fichier suivant : Bibliotheque_Apres_VBA_10.xlsm et le final : Bibliotheque_Apres_VBA_11.xlsm |
Procédure pour récupérer l'arborescence d'un dossier avec liens hypertextes![]() Voir sur Youtube : Analyse Arborecence |
Comment récupérer toute l'arborescence d'un dossier, avec la liste des fichiers et des dossiers, et créer les liens hypertextes qui permettent d'ouvrir le dossier déterminé dans l'arborescence, ou un fichier qui se trouve dans un sous-dossier quelconque. Un tuto qui aborde la notion de FileSystemObject (FSO) et de procédure récursive pour éviter la mise en œuvre de boucles complexes. Final ... AnalyseArbo.xlsm Et pour avoir la liste sur un seul onglet... AnalyseArboUnOnglet.xlsm |
Diagramme de Gantt basique avec Excel![]() Voir sur Youtube : Gantt de base |
Comment construire un diagramme de Gantt basique avec Excel. Hypothèses de base pour cette version : uniquement des liens FD, durée des tâches uniquement en jours, et pas de notion de jours fériés, week-end, etc... Résultat Final ... Gantt base |
Diagramme de Gantt avec Excel - prise en compte des jours ouvrés et fériés![]() Voir sur Youtube : Gantt évolution 1 |
Comment construire un diagramme de Gantt
évolué avec Excel. Hypothèses de base pour cette version : uniquement des liens FD, durée des tâches uniquement en jours, avec notion de jours fériés, week-end, etc... et mise en forme conditionnelle pour mettre en évidence les week-end et les jours fériés Fichier de départ ... Gantt base Fichier final... Gantt évolution 1 Jours fériés... Paques.xlsx |
Diagramme de Gantt : prise en compte des jours écoulés, et relations FF - DD - FD![]() Voir sur Youtube : Gantt évolution 2 |
Comment construire un diagramme de Gantt
plus évolué avec Excel. Nous revenons sur la planification de projet avec le diagramme de Gantt dans Excel, et la prise en compte de la notion de jours écoulés (durée et retard), et relations FF (Fin - Fin), DD (Début - Début) et FD (Fin - Début). Rappels: Relation FD : la tâche ne peut par commencer avant la fin du prédécesseur. Relation FF : la tâche ne peut par finir avant la fin du prédécesseur. Relation DD : la tâche ne peut par commencer avant le début du prédécesseur. Calcul de la date de fin par l'intermédiaire d'une formule dans la feuille Excel, et de la date de début en VBA, pour tenir compte de toutes les possibilités, avec utilisation de la fonction SERIE.JOUR.OUVRE (WORKDAY in English). Nous restons avec le principe de durée uniquement en jours (ouvrés ou calendaires) Fichier de départ ...Gantt évolution 1 Fichier final... Gantt évolution 2 Jours fériés... Paques.xlsx |
Importer dans Excel les données boursières de Yahoo Finance V1![]() Voir sur Youtube : Cours Yahoo Finance |
Comment Rapatrier dans
Excel les cours de bourses historiques accessibles dans Yahoo Finance. Importation automatisée à partir du fichier csv que génère Yahoo Finance quand on souhaite l'historique des cours d'un titre donné. Résultat Final ... YahooV1.xlsm |
Importer dans Excel les données boursières de Yahoo Finance V2![]() Voir sur Youtube : Cours Yahoo Finance |
Comment rapatrier dans
Excel les cours de bourses historiques accessibles dans Yahoo Finance. Importation automatisée à partir du fichier csv que génère Yahoo Finance quand on souhaite l'historique des cours d'un titre donné. La différence avec la version 1 réside dans le traitement VBA. On va aborder la notion d'objet WinHttpRequest, le découpage de chaînes de caractères structurées en sous-éléments à l'aide de la fonction VBA.SPLIT, le travail sur les fonctions de Date, la fonction VBA.REPLACE pour modifier une chaîne de caractères, et plein d'autres astuces (Tableau Croisé Dynamique avec regroupement de valeurs sur les Dates, et Graphique croisé dynamique montrant le plus bas et le plus haut d'une période) Résultat Final ... YahooV2.xlsm |
Importer dans Excel les données boursières de Yahoo Finance V3![]() Voir sur Youtube : Cours Yahoo Finance |
Comment rapatrier dans
Excel les cours de bourses historiques accessibles dans Yahoo Finance. Importation automatisée à partir du fichier csv que génère Yahoo Finance quand on souhaite l'historique des cours d'un titre donné. La différence avec la version 2 réside dans le nouveau traitement VBA suite aux modifications Yahoo Résultat Final ... YahooV3.xlsm |
Ouvrir un formulaire selon le choix fait dans une liste déroulante![]() Voir sur Youtube : Formulaire selon choix |
Comment afficher un formulaire VBA Excel, selon l'item choisi dans une zone de liste modifiable (combobox) Pour effectuer cet exercice, nous allons parler des formulaires bien entendu, mais aussi rappeler comment créer des listes nommées de dimensions variables à l'aide du VBA et des procédures événementielles, comment calculer le logarithme décimal en VBA (à laide du logarithme népérien car la fonction logarithme décimal n'existe pas en tant que telle en VBA), ainsi que l'études de la collection Userforms (les formulaires ouverts dans le projet VBA) Résultat Final ... ChoixOuverture.xlsm |
Ouvrir un formulaire selon le choix fait dans une liste déroulante - Complément![]() Voir sur Youtube : Formulaire selon choix |
Comment afficher un
formulaire VBA Excel, selon l'item choisi dans une zone de liste
modifiable (combobox) Cette vidéo est à considérer en complément du tuto précédent qui présente un inconvénient, à savoir, que se passe-t-il si les items sont triés différemment : https://www.youtube.com/watch?v=FMzWlIpzK88 Pour effectuer cet exercice, nous allons parler des formulaires bien entendu, mais aussi l'utilisation des fonction de feuille de calcul index et Equiv en VBA pour effectuer une recherche verticale. Résultat Final ... ChoixOuvertureV2.xlsm |
Variables tableau VBA - 1 ou 2 dimensions - Exercice pratique![]() Voir sur Youtube : Variable Tableau |
Une approche des
variables tableaux à travers un exercice pratique consistant à extraire
d'une base de données des "sous-bases", et les envoyer dans des feuilles
de calcul différentes Comment déclarer les variables tableaux, les dimensionner, de façon définitive ou évolutive. Dans cette vidéo sera également abordée la problématique de la cohérence des dates entre Excel et VBA. Démarrer l'exercice avec le bon fichier : Base de donnees EXPORT.xlsx Résultat Final ... VariableTableau.xlsm |
Liste à choix multiple avec contenu variable![]() Voir sur Youtube : Liste à choix multiple |
Comment gérer une liste
à choix multiple pour sélectionner des options dépendants d'une rubrique
située dans une autre colonne. Comment restituer dans cette liste les options déjà sélectionnées. Cet exercice nécessite l'utilisation du VBA. Démarrer l'exercice avec le bon fichier : ListeMultiSource.xlsm Résultat Final ... ListeMultiSourceFinal.xlsm Résultat Final avec correction de bogues ... ListeMultiFinalCorrige.xlsm Résultat Final version "Guillaume" : Formules dans données sources ListeMultiFinalCorrige_Guillaume.xlsm |
Comment protéger cette liste![]() Voir sur Youtube : Protéger une Liste à choix multiple |
Démarrer l'exercice avec le bon fichier : ListeMultiFinalCorrige.xlsm Et le fichier final... ListeMultiFinalCorrigeP.xlsm Résultat Final version "Guillaume" : Formules dans données sources ListeMultiFinalCorrigeP_Guillaume.xlsm |
Réponses aux questions sur listes à choix multiples...![]() Voir sur Youtube : Réponses aux questions sur liste à choix multiple |
Cette vidéo apporte des
réponses aux questions posées par les utilisateurs dans la vidéo Liste à
choix multiple avec contenu variable Elle permet de répondre notamment aux questions suivantes : 1 - Comment gérer un besoin plus simple avec une seule liste. 2 - Comment gérer le besoin d'avoir une liste dans une seule cellule 3 - Comment gérer les tableaux horizontaux 4 - Comment avoir une seconde liste dans une feuille différentes Cet exercice nécessite l'utilisation du VBA. Démarrer l'exercice avec le bon fichier : Liste Simple initial.xlsm Résultat Final ... Liste simple final.xlsm |
Réponses complémentaires sur Liste - Statistiques sur items![]() Voir sur Youtube : Statistique - Liste à choix multiple |
Cette vidéo apporte des
réponses aux questions complémentaires posées par les utilisateurs dans la vidéo Liste à
choix multiple avec contenu variable Elle permet de répondre notamment aux questions suivantes : 1 - Comment positionner la liste à gauche de la cellule. 2 - Comment ajouter des statistiques sur les items sélectionnés dans les listes : Effectuer des cumuls Effectuer un comptage des items Cet exercice nécessite l'utilisation du VBA. Démarrer l'exercice avec le bon fichier : ListeSimpleFinal.xlsm Et le fichier final... ListeSimpleStatFinal.xlsm |
Listes à choix multiples Compatible Mac... Sans Contôle Active X![]() Voir sur Youtube : Liste à choix multiple Compatible Mac |
Cette vidéo apporte des
réponses à une question posée par un utilisateur Mac dans la vidéo Liste à
choix multiple avec contenu variable Elle permet de répondre notamment à la question suivante : Comment gérer la nouvelle version d'Excel sur Mac, version qui ne supporte plus les Contrôles Active X. Cet exercice nécessite l'utilisation du VBA. Démarrer l'exercice avec le bon fichier : Liste Mac initial. Fichier de départ Résultat Final ... Liste Mac final |
Envoi de mail avec fichier attaché via Outlook![]() Voir sur Youtube : Envoi de mail avec fichier attaché via Outlook |
Comment envoyer un mail avec fichier attaché via
Outlook en utilisant VBA Excel. Cet exercice nécessite l'utilisation du VBA. Démarrer l'exercice avec le bon fichier : Base_Mail.xlsm Résultat Final ... Base_Mail_Final.xlsm |