Formation Bureautique Joël GARBE - Développement VBA
Si vous souhaitez contribuer à ce site : Faire un don Commentaire ?, écrivez-moi jojoen76@hotmail.com

Rechercher dans le site : 


 Accueil   |  Débutant & divers  |  Formules  |  Graphiques  |  Base de Données  |  Smartphone  |  Macro & VBA  |  VBA & autres astuces  |  Travaux Pratiques  |  Les meilleurs sites  |  Musique & Concerts  |

L'Automatisation sous Excel (Macro et VBA)



Les macros enregistrées :
Automatiser la mise en forme de titres de tableaux Excel
Carte interactive avec base de données
Consolider 1 base de données mensuelle txt avec base globale Excel
Contrôle de formulaire et Base de Données
Filtres avancés - Liste items

VBA Excel :
Introduction aux variables VBA
Boucle For Each - Next
Structures de test : If - Then - Else - End If - Select Case
Boucle For i=x To y Step z - Next & StatusBasr
Boucle Do - Loop & InputBox
Formulaire utilisateur : la conception - Introduction aux procédures événementielles
Formulaire utilisateur : l'envoi des données dans la base & fonction de feuille de calcul en VBA
Formulaire utilisateur : Contrôle de saisie
Fonction personnalisée : vérifier la saisie d'une adresse mail
Formulaire utilisateur : Rechercher un enregistrement et l'afficher dans le formulaire
Formulaire utilisateur : Contrôle Toupie et Barre de défilement
Procédure pour récupérer l'arborescence d'un dossier avec liens hypertextes
Diagramme de Gantt de base avec Excel
Diagramme de Gantt avec Excel évolution 1 : prise en compte des jours ouvrés et fériés
Diagramme de Gantt 2 : prise en compte des jours écoulés, et relations FF - DD - FD
Importer les données boursières de Yahoo Finance V1
Importer les données boursières de Yahoo Finance V2
Importer les données boursières de Yahoo Finance V3
Ouvrir un formulaire selon le choix dans une liste déroulante
Ouvrir un formulaire selon le choix dans une liste déroulante - Complément
Variables tableau VBA - 1 ou 2 dimensions - Exercice pratique
Liste à choix multiple avec contenu variable
Protéger une liste à choix multiple avec contenu variable
Réponses aux questions sur Liste à choix multiple avec contenu variable
Réponses complémentaires sur Liste - Statistiques sur items
Liste à choix multiple avec contenu variable Compatible MAC
Envoi de mail avec fichier attaché via Outlook

Pour automatiser une tâche répétitive, il est possible d'enregistrer une macro avec l’enregistreur de Macro dans Microsoft Excel

Lorsqu'on enregistre une macro, l’enregistreur de macro enregistre toutes les étapes dans le code Visual Basic pour Applications (VBA). Ces étapes peuvent inclure d’entrer du texte ou des nombres, en cliquant sur les cellules ou des commandes dans le ruban ou les menus, mettre en forme des cellules, lignes ou colonnes, ou encore importer des données d’une source externe, par exemple un fichier texte (.txt).

Visual Basic Applications (VBA) est présent dans la plupart des applications Office.

Lorsque l'enregistreur de macro n'est pas suffisant pour répondre au besoin, il est nécessaire d'aller plus loin et s'engager dans l'étude du VBA.

C'est donc cette approche progressive de l'étude des macros puis de la programmation VBA qui est proposée dans cette page.

Les macros enregistrées :

Automatiser la mise en forme de titres de tableaux Excel

Ma première macro
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.
Retour en Haut de page

Carte interactive avec base de données

Lier les filtres automatiques dune base de données aux éléments d'une carte géographique
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
Retour en Haut de page

Consolider 2 bases de données

Macro Excel pour 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
Retour en Haut de page

Contrôles de Formulaire et base de données

Contrôle de formulaire et Base de données Excel
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.
Retour en Haut de page

Filtres avancés et listes items

Filtres avancés et Macro Excel
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
Retour en Haut de page

VBA Excel :

Introduction aux variables VBA

Les variables en 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.
Retour en Haut de page

Boucle For Each - Next

Les boucles For Each - Next du VBA Excel
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
Retour en Haut de page

Structure de test :
If Then - End If - Select Case

Structure de test en VBA Excel
Voir sur Youtube :
Tuto VBA 3
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
Retour en Haut de page

Boucle For i = x to y step z - Next & Statusbar

Troisième boucle VBA Excel : For i = x to y step z, Next
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
Retour en Haut de page

Boucle Do - Loop & InputBox

Boucle Do Loop
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 !
Retour en Haut de page

Formulaire utilisateur : la conception & introduction aux procédures événementielles

La conception du Formulaire VBA
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.
Retour en Haut de page

Formulaire utilisateur : l'envoi des données dans la base

Formulaire VBA envoyer les données saisie 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...
Retour en Haut de page

Formulaire utilisateur : le contrôle de saisie

Formulaire VBA, contrôler la 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
Retour en Haut de page

Fonction personnalisée : vérifier la validité d'une adresse mail

Fonction Personnalisée VBA Excel
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
Retour en Haut de page

Formulaire utilisateur : Rechercher un enregistrement et l'afficher dans le formulaire

Formulaire VBA Excel Rechercher un enregistrement
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
Retour en Haut de page

Formulaire utilisateur : contrôle toupie et barre de défilement

Utilisation de contrôles supplémentaire dans le formulaire VBA
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
Retour en Haut de page

Procédure pour récupérer l'arborescence d'un dossier avec liens hypertextes

Macro pour récupérer l'arborescence complète d'un dossier
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
Retour en Haut de page

Diagramme de Gantt basique avec Excel

Diagramme de Gantt basique
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
Retour en Haut de page

Diagramme de Gantt avec Excel - prise en compte des jours ouvrés et fériés

Diagramme de Gantt évolué
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
Retour en Haut de page

Diagramme de Gantt : prise en compte des jours écoulés, et relations FF - DD - FD

Diagramme de Gantt avancé
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
Retour en Haut de page

Importer dans Excel les données boursières de Yahoo Finance V1

Yahoo finance données boursières
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
Retour en Haut de page

Importer dans Excel les données boursières de Yahoo Finance V2

Yahoo finance données boursières
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
Retour en Haut de page

Importer dans Excel les données boursières de Yahoo Finance V3

Yahoo finance données boursières
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
Retour en Haut de page

Ouvrir un formulaire selon le choix fait dans une liste déroulante

Ouvrir un formulaire selon un choix dans une liste
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
Retour en Haut de page

Ouvrir un formulaire selon le choix fait dans une liste déroulante - Complément

Ouvrir un formulaire selon un choix dans une liste
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
Retour en Haut de page

Variables tableau VBA - 1 ou 2 dimensions - Exercice pratique

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
Retour en Haut de page

Liste à choix multiple avec contenu variable

Liste à choix multiple
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

Liste à choix multiple
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...

Liste à choix multiple
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

Liste à choix multiple - Statistiques
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

Liste à choix multiple Mac
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
   
Retour en Haut de page

Envoi de mail avec fichier attaché via Outlook

Liste à choix multiple
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
Retour en Haut de page






Tweet







...