VBA Excel : exemples de programmes. Macros dans Excel. Comment activer les macros dans Excel. Macros dans Excel : exemples

Travailler avec des livres

Macro 1 : Créer un nouveau classeur à partir de zéro
Macro 2. Enregistrement d'un classeur lorsqu'une cellule/plage spécifique est modifiée
Macro 3. Sauvegarder le classeur avant de le fermer
Macro 4. Protéger une feuille de calcul dans un classeur avant la fermeture
Macro 5. Déprotéger une feuille lors de l'ouverture d'un fichier Excel
Macro 6. Ouvrir un classeur sur la feuille souhaitée
Macro 7. Ouverture d'un classeur spécifique défini par l'utilisateur
Macro 8. Déterminer si le livre est ouvert
Macro 9. Déterminer si un livre existe dans un dossier
Macro 10. Mettre à jour toutes les connexions dans les classeurs ouverts
Macro 11. Fermez tous les livres en même temps
Macro 12. Ouvrir tous les classeurs d'un dossier
Macro 13. Imprimer tous les livres d'un dossier
Macro 14. Ne pas fermer le livre tant que la cellule n'est pas remplie
Macro 15. Créer une copie de sauvegarde du classeur actuel avec la date d'aujourd'hui

Travailler avec des feuilles

Macro 16. Ajouter une nouvelle feuille de calcul et attribuer un nom
Macro 17. Supprimer toutes les feuilles sauf celle active
Macro 18. Masquer tout sauf la feuille de calcul active
Macro 19. Afficher toutes les feuilles du classeur
Macro 20. Déplacer des feuilles de calcul
Macro 21. Trier les feuilles par nom
Macro 22. Regrouper les feuilles par couleur d'étiquette
Macro 23. Copier une feuille dans un nouveau classeur
Macro 24. Créer un nouveau classeur pour chaque feuille
Macro 25. Impression de feuilles
Macro 26. Protéger toutes les feuilles
Macro 27. Déprotéger toutes les feuilles
Macro 28. Création d'une table des matières
Macro 29 : Double-cliquez pour zoomer sur une feuille de calcul
Macro 30. Sélectionnez la colonne de la ligne active

Sélection et modification des plages

Macro 31. Sélection et formatage d'une plage
Macro 32. Création et sélection de plages nommées
Macro 33. Énumération utilisant un certain nombre de cellules
Macro 34. Sélection et formatage des plages
Macro 35. Insérer des lignes vides dans une plage
Macro 36. Afficher toutes les lignes et colonnes masquées
Macro 37. Suppression des lignes vides
Macro 38. Suppression des colonnes vides
Macro 39. Sélection et formatage de toutes les formules du classeur
Macro 40 : Rechercher et sélectionner la première ligne ou colonne vide
Macro 41. Appliquer une couleur de remplissage supplémentaire
Macro 42. Trier les plages par double-clic
Macro 43. Limitation de la plage de défilement dans une zone particulière
Macro 44. Définir automatiquement la zone d'impression de la feuille

Travailler avec des données

Macro 45. Copier et coller une plage
Macro 46. Convertir toutes les formules d'une plage en valeurs
Macro 47. Convertir les valeurs de texte en valeurs numériques
Macro 48. Conversion d'un tiret en moins
Macro 49. Supprimer les espaces supplémentaires de toutes les cellules de la plage
Macro 50. Coupez 5 caractères à gauche dans chaque cellule de la plage
Macro 51. Ajouter les zéros manquants à la cellule
Macro 52. Remplacer les cellules vides par zéro
Macro 53. Ajouter du texte au début ou à la fin d'une cellule
Macro 54. Création d'une macro de conversion de données
Macro 55. Effacer les données (caractères non imprimables)
Macro 56. Sélectionnez les doublons dans la plage de données
Macro 57. Masquer les lignes répétitives
Macro 58. Masquer sélectivement les flèches du filtre automatique
Macro 59. Copiez les lignes filtrées dans un nouveau classeur
Macro 60. Création d'une nouvelle feuille pour chaque élément dans l'AutoFiltre
Macro 61. Afficher les colonnes filtrées dans la barre d'état

Travailler avec des tableaux croisés dynamiques

Macro 62 : Rendre un tableau croisé dynamique rétrocompatible
Macro 63. Mettre à jour tous les tableaux croisés dynamiques dans un livre
Macro 64. Créer un « inventaire » de tous les tableaux croisés dynamiques du livre
Macro 65. Créez tous les tableaux croisés dynamiques en utilisant le même cache de données
Macro 66. Masquer tous les sous-totaux dans le tableau croisé dynamique
Macro 67. Modifier les noms de données de tous les champs récapitulatifs
Macro 68. Somme forcée pour toutes les données récapitulatives
Macro 69 : Appliquer le format numérique à tous les éléments de données
Macro 70. Tri des champs récapitulatifs par ordre alphabétique
Macro 71. Appliquer un tri personnalisé aux éléments de données
Macro 72 : Mettre une protection sur le tableau croisé dynamique
Macro 73 : Appliquer des contraintes de champ pivot
Macro 74. Suppression automatique des feuilles avec détails récapitulatifs
Macro 75 : Imprimer un tableau croisé dynamique pour chaque élément filtrant
Macro 76. Créer un nouveau fichier pour chaque élément filtrant
Macro 77. Préparation d'une plage de données pour un tableau croisé dynamique

Travailler avec des tableaux et des graphiques

Macro 78. Redimensionner les graphiques sur une feuille de calcul
Macro 79. Lier le graphique à une plage spécifique
Macro 80 : Créer un ensemble de diagrammes disjoints
Macro 81 : Imprimer tous les graphiques sur une feuille de calcul
Macro 82. Marquage des meilleures et des pires valeurs sur
Macro 83. Mêmes couleurs pour les valeurs sur différents graphiques
Macro 84. Faire correspondre la couleur des graphiques à la couleur des plages

Envoi d'e-mails depuis Excel

Macro 85. Envoi d'un livre actif par mail (pièce jointe)
Macro 86 : Envoi d'une plage de valeurs en pièce jointe
Macro 87. Envoi d'une feuille en pièce jointe
Macro 88. Envoyer un email avec un lien vers nos fichiers
Macro 89 : Envoi d'e-mails ajoutant des adresses à notre liste de contacts
Macro 90. Enregistrer toutes les pièces jointes dans un dossier séparé
Macro 91. Enregistrer des pièces jointes spécifiques dans un dossier

Interopérabilité avec d'autres applications Office

Macro 92. Exécuter une demande d'accès depuis Excel



Macro 96. Compresser une base de données Access à partir d'Excel
Macro 97. Envoi de données Excel vers un document Word
Macro 98. Faire une fusion avec un document Word
Macro 99 : Envoi de données Excel vers une présentation PowerPoint
Macro 100. Envoi de graphiques Excel vers des présentations PowerPoint
Macro 101 : Conversion d'un classeur en présentation PowerPoint

Interopérabilité avec d'autres applications Office
apprendre à travailler avec Word, Access et PowerPoint
Macro 92. Exécuter une demande d'accès depuis Excel
Macro 93. Exécution d'une macro Access à partir d'Excel
Macro 94. Ouverture d'un rapport Access depuis Excel
Macro 95. Ouverture d'un formulaire d'accès depuis Excel

VBA est considéré comme le langage de script standard pour les applications Microsoft et est désormais inclus dans toutes les applications Office et même dans les applications d'autres sociétés. Par conséquent, une fois que vous maîtrisez VBA pour Excel, vous pouvez immédiatement passer à la création de macros pour d’autres produits logiciels Microsoft. De plus, vous pourrez créer des produits logiciels à part entière qui utilisent simultanément les fonctions d'une grande variété d'applications.

Comment activer les macros dans Excel

Par défaut, l'onglet responsable de la gestion et de la navigation dans les macros dans Excel est masqué. Pour activer cette option, rendez-vous dans l'onglet Déposer au groupe Possibilités. Dans la boîte de dialogue qui apparaît PossibilitésExceller allez dans l'onglet Personnalisation du ruban, dans la combo de droite, placez un marqueur en face de l'onglet Promoteur. Ces étapes sont pertinentes pour les versions d'Excel 2010 et antérieures.

Un nouvel onglet apparaîtra sur le ruban Promoteur avec les contrôles d'automatisation Excel.

Écrire des macros dans Excel

Dans l'onglet Promoteur dans le groupe Code, cliquez sur le bouton Enregistrez une macro. Une boîte de dialogue apparaîtra Enregistrez une macro, qui demande des informations sur le futur code en cours d'écriture. Si c'est la première fois que vous créez une macro, vous pouvez simplement cliquer sur le bouton D'ACCORD. Désormais, Excel enregistrera chaque action de l'utilisateur dans un module VBA, qu'il s'agisse de saisie de données, de formatage ou de création de graphiques. Pour arrêter l'enregistrement d'une macro, cliquez sur le bouton Arrêter l'enregistrement qui est dans le même groupe Code.

Vous pouvez également profiter d'une option alternative pour enregistrer des macros en utilisant le bouton Enregistrez une macro, qui se trouve dans le coin inférieur gauche du classeur Excel (à droite du statut Prêt).

Vous pouvez maintenant afficher une liste de toutes les macros créées en cliquant sur le bouton Macro, situé dans le groupe Code. Dans la boîte de dialogue qui apparaît, vous pouvez donner des noms plus descriptifs à vos codes ou définir des raccourcis clavier qui exécuteraient une macro particulière. Une autre option pour lancer cette fenêtre consiste à appuyer sur Alt + F8.

Modification des macros

Félicitations! Vous avez écrit votre première macro. Il serait logique de vérifier maintenant quel code Excel a généré pour nous. Le code généré est écrit en VBA (Visual Basic for Applications). Il faut l'ouvrir pour le voir. ÉditeurVB(VBE), qui se lance en appuyant sur Alt + F11 ou sur le bouton VisuelBasique sur l'onglet Promoteur.

Pour éviter toute confusion dans l'éditeur, vous pouvez travailler avec un seul onglet dans un classeur, une feuille ou un module. Voilà à quoi ressemble l'éditeur dans la vraie vie.

A ce stade, je propose d'étudier plus en détail les différentes fenêtres et menus de l'éditeur VBA. Cela vous aidera à gagner beaucoup de temps à l’avenir.

Pour voir le code, cliquez sur le fil Modules dans la fenêtre des projets et double-cliquez sur la branche qui apparaît Module1 . L'éditeur ouvrira une fenêtre avec le code, comme indiqué dans l'image.

Ici, vous pouvez modifier le code généré qui a été écrit en travaillant dans Excel. Par exemple, vous devez remplir une certaine colonne avec des valeurs de 1 à 10. Vous disposez déjà des trois premières étapes, qui saisissent les valeurs 1, 2 et 3 dans les trois premières cellules de la colonne A. Nous devons complétez les sept étapes restantes.

Si vous regardez le code ci-dessus, vous verrez que la macro est structurée d'une certaine manière. L'application déplace d'abord le curseur vers la cellule à l'aide de la commande Range("A1").Select, puis modifie son contenu à l'aide de ActiveCell.FormulaR1C1 = "1". Ainsi, pour les étapes restantes, nous pouvons répéter ces étapes, en modifiant l'adresse de la cellule et la valeur que vous souhaitez écrire dans cette cellule. Par exemple, pour définir la cellule A4 sur 4, vous écrivez :

Plage("A4").Sélectionner
ActiveCell.FormulaR1C1 = "4"

Et répétez des étapes similaires pour les valeurs restantes.

Une fois que vous avez terminé l'édition, enregistrez votre livre. Vous pouvez exécuter la macro en appuyant sur le bouton F5 ou, en revenant au classeur Excel, accédez à l'onglet Promoteur au groupe Code -> Macro et sélectionnez dans la liste la macro qui vous intéresse.

Prenez quelques minutes pour étudier attentivement le code généré par Excel. Si vous êtes débutant, investir quelques minutes dans l'apprentissage du code donnera des résultats étonnants dans la connaissance ultérieure des objets VBA. Veuillez noter que l’exemple dont nous avons discuté n’est qu’une illustration. Il existe des moyens plus rapides et plus efficaces d’obtenir des résultats similaires, dont nous discuterons ensuite.

Augmentez la vitesse d’exécution des macros Excel

Jusqu'ici, tout va bien. Examinons quelques astuces qui aideront à accélérer l'exécution des macros. Prenons l'extrait de code ci-dessus comme exemple. Les ordinateurs modernes exécutent le code en question si rapidement que vous ne le remarquerez même pas. Mais que se passe-t-il si vous devez effectuer l'opération 50 000 fois. Cela prendra du temps. Si la macro que vous écrivez comporte des centaines de lignes, vous pouvez accélérer l'exécution du code en supprimant la partie des processus qui n'est pas utilisée lors de l'exécution de la macro.

Utilisation de la commande Application.ScreenUpdating

La première astuce consiste à éviter de mettre à jour l’écran pendant l’exécution de la macro. Cela permettra à Excel d'économiser la puissance de traitement de l'ordinateur et de mettre à jour l'écran avec de nouvelles valeurs uniquement une fois que tout le code aura été exécuté. Pour ce faire, vous devez ajouter une commande pour désactiver l'actualisation de l'écran au début de la macro et une commande pour activer l'actualisation de l'écran à la fin de la macro.

1
2
3
4
5
6
7
8
9
10

Sous-macro1()

Plage("A1").Sélectionnez

Plage("A2").Sélectionnez

Plage("A3").Sélectionnez


Fin du sous-marin

La commande Application.ScreenUpdating indique à Excel d'arrêter d'afficher les données recalculées à l'écran et de renvoyer les valeurs terminées à la fin de l'exécution du code.

Utilisation de la commande Application. Calcul

La deuxième astuce consiste à désactiver les calculs automatiques. Laissez-moi vous expliquer. Chaque fois qu'un utilisateur ou un processus met à jour une cellule, Excel tente de recalculer toutes les cellules qui en dépendent. Supposons que si la cellule que la macro tente de mettre à jour affecte 10 000 autres cellules, Excel tentera de toutes les recalculer avant la fin de l'exécution du code. Par conséquent, s'il existe un certain nombre de cellules d'influence, le recalcul peut ralentir considérablement l'exécution du code. Pour éviter que cela ne se produise, vous pouvez installer la commande Application. Calcul en début de code, qui fera passer le recalcul des formules en mode manuel, puis renverra le calcul automatique en fin de macro.

1
2
3
4
5
6
7
8
9
10
11
12

Sous-macro1()
Application.ScreenUpdating = Faux

Plage("A1").Sélectionnez
ActiveCell.FormulaR1C1 = "1"
Plage("A2").Sélectionnez
ActiveCell.FormulaR1C1 = "2"
Plage("A3").Sélectionnez
ActiveCell.FormulaR1C1 = "3"

Application.ScreenUpdating = True
Fin du sous-marin

Attention à ne pas oublier de remettre cette option en mode automatique à la fin de la macro. Sinon, vous devrez le faire dans Excel lui-même en cliquant sur l'onglet Formules au groupe Calcul et choisissez Options de calcul -> Automatique.

Éviter de sélectionner des cellules et des plages

En mode d'enregistrement automatique des macros, vous remarquerez peut-être qu'Excel utilise très souvent la commande de sélection de cellule, par exemple Range("A1").Select. Dans notre exemple, nous avons utilisé cette commande plusieurs fois pour sélectionner une cellule et modifier sa valeur. Vous pouvez éviter cela en spécifiant simplement l'adresse de la cellule et en lui donnant la valeur requise (la macro a enregistré le mouvement du curseur d'une cellule à l'autre, insérant ainsi ces étapes. Cependant, elles ne sont pas nécessaires). Ainsi, un code plus efficace ressemblerait à ceci.

1
2
3
4
5
6
7
8
9
10
11

Sous-macro1()
Application.ScreenUpdating = Faux
Application.Calculation = xlCalculationManual
Plage("A1").Valeur = 1
Plage("A2").Valeur = 2
Plage("A3").Valeur = 3
Plage("A4").Valeur = 4
Plage("A5").Valeur = 5
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Fin du sous-marin

Dans ce cas, nous avons simplement référencé la cellule et lui avons donné la valeur requise, sans la sélectionner du tout. Cette méthode est plus rapide que la précédente.

Exemples de macros Excel

Vous trouverez ci-dessous quelques exemples de codes VBA qui vous aideront à automatiser les tâches les plus courantes.

Bon après-midi

Je souhaite consacrer cet article à une section aussi vaste de MS Excel que les macros, ou plutôt, commençons par le début et voyons comment créer une macro dans Excel, à quoi elle sert et comment l'utiliser dans votre travail.

Comme vous le savez par expérience, lorsque vous travaillez avec une macro, il y a beaucoup de « routines », c'est-à-dire que les mêmes opérations et actions sont effectuées qui sont nécessaires pour obtenir le résultat, cela peut consister à remplir le même type de tableaux. ou des formulaires, traitant des données, similaires aux rapports hebdomadaires, mensuels, etc. Mais l'utilisation de macros vous permettra d'effectuer ces actions automatiquement, en utilisant au maximum les capacités d'Excel, en transférant ces opérations routinières et monotones sur les puissantes épaules d'Excel. En outre, la raison de l'utilisation de macros peut être d'ajouter les fonctionnalités nécessaires qui ne sont pas encore implémentées dans les fonctions Excel standard (par exemple, sortie, collecte de données sur une seule feuille, etc.).

Si vous n’avez jamais entendu parler d’une macro, la définition la plus précise serait : ce sont des actions programmées pour une séquence spécifique et écrites dans l'environnement de programmation en Visual Basic pour Applications (VBA). L’exécution d’une macro peut être effectuée plusieurs fois, ce qui obligera Excel à effectuer toute séquence d’actions dont nous avons besoin et que nous n’aimons tout simplement pas ou que nous ne voulons pas faire manuellement. Malgré la grande variété de langages de programmation pour l'ensemble du complexe Microsoft Office, VBA est la norme et fonctionne dans n'importe quelle application de la suite bureautique.

Il existe donc 2 façons de créer une macro dans Excel :

Créer une macro dans Excelutiliser un enregistreur de macros

Tout d'abord, clarifions ce qu'est un enregistreur de macros et ce qu'une macro a à voir avec lui.

Enregistreur de macros est un petit programme intégré à Excel qui interprète toute action de l'utilisateur dans les codes du langage de programmation VBA et écrit les commandes obtenues au cours du processus de travail dans le module du programme. Autrement dit, si nous créons le rapport quotidien dont nous avons besoin avec l'enregistreur de macros activé, l'enregistreur de macros enregistrera tout dans ses commandes étape par étape et, par conséquent, créera une macro qui créera automatiquement un rapport quotidien.

Cette méthode est très utile pour ceux qui n'ont pas les compétences et les connaissances nécessaires pour travailler dans l'environnement linguistique VBA. Mais une telle facilité d'exécution et d'enregistrement d'une macro a ses inconvénients, ainsi que ses avantages :

  • Un enregistreur de macros ne peut enregistrer que ce qu'il peut toucher, ce qui signifie qu'il ne peut enregistrer des actions que lorsque les boutons, les icônes, les commandes de menu et tout le reste ne sont pas disponibles ;
  • Si une erreur a été commise pendant la période d'enregistrement, elle sera également enregistrée. Mais vous pouvez utiliser le bouton Annuler la dernière action pour effacer la dernière commande que vous avez mal écrite dans VBA ;
  • L'enregistrement dans l'enregistreur de macros s'effectue uniquement dans les limites de la fenêtre MS Excel, et si vous fermez le programme ou en allumez un autre, l'enregistrement sera arrêté et ne sera plus effectué.

Pour activer l'enregistreur de macros pour l'enregistrement, vous devez effectuer les étapes suivantes :


La prochaine étape du travail avec l'enregistreur de macros sera de configurer ses paramètres pour un enregistrement ultérieur de la macro, cela peut être fait dans la fenêtre ; "Enregistrer une macro", Où:

  • Champ de nom de macro- vous pouvez écrire un nom que vous comprenez dans n'importe quelle langue, mais il doit commencer par une lettre et ne contenir aucun signe de ponctuation ni espace ;
  • Champ de raccourci clavier- vous sera utilisé à l'avenir pour démarrer rapidement votre macro. Si vous devez en enregistrer un nouveau, cette option sera disponible dans le menu "Outils" - "Macro" - "Macros" - "Exécuter" ou sur l'onglet "Promoteur" appuyer sur un bouton "Macro";
  • Champ "Enregistrer dans..."— vous pouvez spécifier l'emplacement où le texte de la macro sera enregistré (mais pas envoyé), et il existe 3 options :
    • "Ce livre"— la macro sera enregistrée dans le module du classeur en cours et ne pourra être exécutée que lorsque ce classeur Excel est ouvert ;
    • "Nouveau livre"— la macro sera enregistrée dans le modèle sur la base duquel un nouveau classeur vide est créé dans Excel, ce qui signifie que la macro deviendra disponible dans tous les classeurs qui seront créés sur cet ordinateur à partir de ce moment ;
    • "Livre de macros personnelles"- est un classeur de macros Excel spécial appelé "Personnel.xls" et est utilisé comme bibliothèque de stockage spéciale de macros. Au démarrage, les macros du classeur « Personal.xls » sont chargées en mémoire et peuvent être lancées dans n'importe quel classeur à tout moment.
  • Champ "Description"- ici vous pouvez décrire ce que la macro doit faire et comment, pourquoi elle a été créée et quelles fonctions elle a, il s'agit d'un champ purement informatif, appelé mémoire.

Après avoir lancé et enregistré votre macro, en effectuant toutes les actions nécessaires, vous pouvez arrêter l'enregistrement avec la commande "Arrêter l'enregistrement" et votre macro sera créée à l'aide de l'enregistreur de macros.

Créer une macro dans Exceldans l'éditeur Visual Basic.

Dans cette méthode, nous verrons comment créer une macro dans Excel via l'éditeur de programme VBA qui, comme je l'ai dit ci-dessus, est intégré à n'importe quelle version d'Excel.

Le lancement de l'éditeur de programme VBA s'effectue différemment selon la version de votre programme Excel :

  • dans les versions d'Excel 2003 et versions ultérieures, nous avons besoin dans le menu "Service", sélectionnez l'élément "Macro" et appuyez sur "Éditeur Visual Basic";
  • dans les versions d'Excel 2007 et versions ultérieures, nous avons besoin sur l'onglet "Promoteur" appuyez sur le bouton "Éditeur Visual Basic". Si vous ne trouvez pas cet onglet, vous devez l'activer en sélectionnant l'élément de menu "Fichier" - "Options" - "Personnaliser le ruban" et dans la boîte de dialogue, utilisez la case à cocher pour activer l'onglet "Promoteur".

Dans la fenêtre qui s'ouvre, vous pouvez voir l'interface de l'éditeur VBA, tout ici est écrit en anglais et il n'y a pas de localisation, il n'est pas nécessaire de le chercher, mais il suffit de l'accepter et de travailler, d'autant plus que ce n'est qu'incompréhensible au début, et ensuite tout deviendra familier.

Alors, comment travailler dans l'éditeur VBA, où est stocké et comment créer une macro dans Excel. Des questions de cette nature se posent immédiatement dès que vous voyez l'éditeur, et nous allons maintenant les examiner toutes.

Toutes nos macros seront stockées dans ce qu'on appelle modules logiciels. Dans n'importe quel livre de n'importe quelle version d'Excel, nous pouvons créer n'importe quel module de programme en n'importe quelle quantité et y placer toutes les macros que nous avons créées. Un module peut contenir n'importe quel nombre de macros dont vous avez besoin ou que vous créez. Les modules sont disponibles dans la fenêtre "Explorateur de projet" et sont situés dans le coin supérieur gauche de l'éditeur de macros (vous pouvez également l'appeler avec la combinaison de touches CTRL+R).

Les modules de programme dans l'éditeur VBA existent sous plusieurs types et sont utilisés pour différentes options et situations :


En fait, la macro elle-même, lorsqu'on travaille dans un module standard, ressemble à ceci :

Regardons un exemple de macro fonctionnelle :

  • Toutes les macros commenceront nécessairement par l'opérateur Sous, suivi du nom de votre macro et d'une liste d'arguments entre parenthèses. Dans les cas où il n'y a aucun argument, les parenthèses doivent rester vides ;
  • Toutes les macros doivent se terminer par l'opérateur Fin du sous-marin;
  • Données échangées entre opérateurs Sous Et Fin du sous-marin, est le corps de la macro qui s'exécutera lors de l'exécution de la macro. Dans l'exemple, la macro vérifie et, lors de la saisie des données, les trouve dans la liste de la base de données et affiche la valeur spécifiée par les critères.

Comme vous pouvez le constater, la deuxième méthode est plus difficile à utiliser et à comprendre si vous n’avez aucune expérience en programmation en général ou en VBA en particulier. Il est très difficile de comprendre et de déterminer quelles commandes sont saisies et comment, quels arguments elles utilisent pour que la macro commence à faire son travail automatiquement. Mais celui qui marche maîtrisera le chemin, comme disaient les anciens sages, et donc il ne faut pas abandonner, mais suivre les commandements du grand-père Lénine...

Création d'un bouton pour exécuter des macros dans la barre d'outils

Comme je l'ai dit plus tôt, vous pouvez appeler une procédure de macro avec une combinaison de touches de raccourci, mais il est très fastidieux de se rappeler quelle combinaison est attribuée à qui, le mieux est donc de créer un bouton pour exécuter la macro. Les boutons peuvent être créés de plusieurs types, à savoir :


Cette méthode est disponible pour n'importe quelle version de MS Excel et consiste dans le fait que nous placerons le bouton directement sur notre feuille de calcul en tant qu'objet graphique. Pour ce faire, vous avez besoin de :

  • Dans MS Excel 2003 et versions antérieures aller au menu "Voir", choisir "Barre d'outils" et appuyez sur le bouton "Formulaires".
  • Dans MS Excel 2007 et versions ultérieures dont tu as besoin sur l'onglet "Promoteur" ouvrir le menu déroulant "Insérer" et sélectionnez un objet "Bouton".

Après tout cela, vous devez dessiner un bouton sur votre feuille tout en maintenant enfoncé le bouton gauche de la souris. Une fois le processus de dessin terminé, une fenêtre s'ouvrira automatiquement dans laquelle vous devrez sélectionner la macro qui doit être exécutée lorsque vous cliquez sur votre bouton.

Comment créer des fonctions personnalisées dans VBA

En principe, la création de fonctions dites définies par l'utilisateur n'est pas très différente de la création d'une macro ordinaire dans un module de programme standard. La différence entre ces concepts est que la macro effectuera les actions qu'elle contient avec des objets livre ou feuille (ce sont des formules, des cellules, etc.), mais la fonction utilisateur ne fonctionne qu'avec les valeurs qu'elle reçoit de notre part. et ce sont les arguments des données initiales pour les calculs.

Par exemple, pour créer une fonction personnalisée pour la taxe sur la valeur ajoutée, également appelée TVA, nous devons ouvrir notre éditeur VBA et ajouter un nouveau module, sélectionner dans le menu "Insérer" paragraphe "Module" et entrez ici le texte de notre fonction : Il est à noter que la principale différence entre une fonction et une macro réside dans l'en-tête. Fonction remplacé Sous et il y a une liste complète d'arguments, dans notre exemple c'est Somme. Une fois notre code saisi, il deviendra disponible dans la fenêtre standard de l'assistant de fonction, située dans le menu "Formules", paragraphe "Insérer une fonction".
Et sélectionnez une catégorie "Défini par l'utilisateur" dans lequel notre fonction écrite sera affichée "NDS".
Après avoir sélectionné notre fonction, vous pouvez placer le curseur sur la cellule avec l'argument, qui contiendra le montant pour lequel nous calculons la TVA, tout se passe comme avec une fonction normale.
Et c'est tout pour moi ! J'espère vraiment que article sur la façon de créer une macro dans Excel vous a été clair et utile. Je serais très reconnaissant pour vos commentaires, car ils sont un indicateur de lisibilité et m'inspirent pour écrire de nouveaux articles ! Partagez ce que vous lisez avec vos amis et aimez-le !

Macro pour mettre en évidence la cellule A1 sur chaque feuille du classeur actif. Cela provoque également le déplacement de l'écran.

Sub A1SelectionEachSheet() Dim i As Integer Application.ScreenUpdating = False For i = 1 To Sheets.Count Sheets(i).Select ActiveWindow.ScrollColumn = 1 ActiveWindow.ScrollRow = 1 Range("a1").Sélectionnez les feuilles suivantes (1) .Sélectionnez Application.ScreenUpdating = True End Sub

Macro pour copier la feuille actuelle un nombre de fois spécifié. Utile pour tester certaines macros - apporter des modifications, les vérifier sur une copie des données. Nous n'avons plus de copies : réexécutez la macro.

Sub SimpleCopy() Dim i As Integer, j As Integer i = Application.InputBox("Entrez le nombre de copies de la feuille actuelle") Application.ScreenUpdating = False For j = 1 To i ActiveSheet.Copy after:=Sheets(Sheets .Count) ActiveSheet .Name = "Copie" & j Suivant j Application.ScreenUpdating = True End Sub

Créer des feuilles avec des titres d'une plage spécifiée sur une feuille

Sub CreateFromList() Dim cell As Range For Each cell In Selection Sheets.Add after:=Sheets(Sheets.Count) ActiveSheet.Name = cell.Value Cellule suivante End Sub

Markros pour avoir envoyé une lettre avec du retard. Macro modifiée du livre Professional VBA Programming de John Walkenbach

Sub SendLetter() Dim OutApp As Object Dim OutMail As Object Définir OutApp = CreateObject("Outlook.Application") OutApp.Session.Logon en cas d'erreur GoTo nettoyage Définir OutMail = OutApp.CreateItem(0) en cas d'erreur Reprendre ensuite avec OutMail .To = " [email protégé]" .Subject = "Rapport de ventes" .Attachments.Add "C:\Test.txt" .Body = "Texte de l'e-mail" .DeferredDeliveryTime = Remplacer (Date, ".", "/") & " 11:00:00 " .send ".Affichage pour générer une lettre et l'ouvrir End With On Error GoTo 0 Set OutMail = Nothing cleanup: Set OutApp = Nothing End Sub

Macro de table des matières légèrement modifiée de Nikolai Pavlov.
Si une feuille « Table des matières » existe déjà dans le livre, la macro vous propose de la supprimer. Sinon, crée une feuille « Table des matières » et insère des liens avec des noms de feuilles

Sub TableOfContent() Dim feuille As Worksheet Dim cellule As Range Dim Réponse As Integer Application.ScreenUpdating = False Avec ActiveWorkbook pour chaque feuille de calcul dans ActiveWorkbook.Worksheets If Worksheet.Name = "Table of Contents" Then Answer = MsgBox ("Le classeur a un feuille portant le nom Table des matières. Supprimez-le?", vbOuiNon) Si Réponse = vbNon Alors Quittez le Sous Si Réponse = vbOui Alors Application.DisplayAlerts = False Worksheet.Delete Application.DisplayAlerts = True End If End If Next End With Sheets (Array (1)).Sélectionnez Sheets.Add Sheets(1).Name = "Table des matières" avec ActiveWorkbook pour chaque feuille dans ActiveWorkbook.Worksheets si sheet.Name<>"Table des matières", puis définissez cell = Worksheets(1).Cells(sheet.Index, 1) .Worksheets(1).Hyperlinks.Add Anchor:=cell, Address:="", SubAddress:=""" & sheet .Name & """ & "!A1" cell.Formula = sheet.Name End Si la feuille suivante se termine par des lignes ("1:1").Delete Application.ScreenUpdating = True End Sub

Tri des feuilles à partir des assistants VBA. La macro trie également les feuilles cachées. Ne fonctionnera pas si le livre a une structure protégée

Sub SORT_ALL_SHEETS() Application.ScreenUpdating = False: Application.EnableEvents = False Dim iSht As Worksheet, oDict As Object, i%, j% Set oDict = CreateObject("Scripting.Dictionary") " mémorisez l'état de visibilité de chaque feuille et faites tout ce qui est visible pour chaque iSht dans ActiveWorkbook.Sheets oDict.Item(iSht.Name) = iSht.Visible : iSht.Visible = True Next With ActiveWorkbook " tri des feuilles visibles pour i = 1 à .Sheets.Count - 1 pour j = i + 1 À .Sheets.Count Si UCase(.Sheets(i).Name) > UCase(.Sheets(j).Name) Then .Sheets(j).Move Before:=.Sheets(i) Suivant j Suivant i Terminer par " restaurer l'état de visibilité d'origine de chaque feuille pour chaque iSht dans ActiveWorkbook.Sheets iSht.Visible = oDict.Item(iSht.Name) Next Application.EnableEvents = True : Application.ScreenUpdating = True End Sub

Importation des colonnes « Field1 » et « Field2 » depuis la feuille « Sheet1 » du fichier Excel « C:\Manager.xls » via la connexion ADODB et insertion du contenu à partir de la cellule A1 de la feuille actuelle

Le manuel contient des macros sur les sujets suivants :
Exécuter une macro pour rechercher une cellule.
Exécutez une macro lors de l'ouverture d'un classeur.
Exécute une macro lorsque vous entrez « 2 » dans la cellule.
Exécutez une macro lorsque vous appuyez sur Entrée.
Ajoutez votre propre onglet « Compléments » (Format de cellule) au panneau.
Travailler avec des fichiers (c'est-à-dire échange de données avec TXT, RTF, XLS, etc.).
Vérification de la présence d'un fichier au chemin spécifié.
Recherchez le fichier requis.
Automatisation de la suppression des fichiers.
Texte libre dans la barre d'état.
Restauration de la barre d'état.
Ligne rampante dans la barre d'état.

Modifiez rapidement le titre de la fenêtre.
Changer le titre de la fenêtre (masquer le nom du fichier).
Revenir au titre original.
Ce qui est ouvert pour le moment.
Travailler avec des fichiers texte.
Ecrire et lire un fichier texte.
Traitement de plusieurs fichiers texte.
Déterminer la fin d'une ligne dans un fichier texte.
Copie d'un fichier texte vers Excel.

Copiez le contenu dans un fichier texte.
Exportez les données au format txt.
Exportez les données au format HTML.
Importez des données nécessitant plus de 256 colonnes.
Créez des copies de sauvegarde de fichiers précieux.
Compter le nombre de fois qu'un fichier a été ouvert.
Affichez le chemin du fichier vers la cellule active.
Copier le contenu d'un fichier RTF dans Excel.
Copie de données à partir d'un classeur fermé.
Extraire des données d'un fichier fermé.
Rechercher un mot dans les fichiers.
Créez un fichier texte et saisissez du texte dans le fichier.
Créez un fichier texte et saisissez le texte (détection de fin de fichier).
Créez des documents Word basés sur un tableau Excel.
Commandes pour créer et supprimer des répertoires.
Obtenez le répertoire actuel.
Changer de répertoire.

Afficher tous les fichiers d'un répertoire.
Afficher tous les fichiers d'un répertoire.
Espace de travail Microsoft Excel.
Cahier d'exercices.
Nombre de noms de classeurs.
Protection du classeur.
Interdire l'impression de livres.
Ouvrir un livre (ou des fichiers texte).
Ouvrez le livre et ajoutez du texte à la cellule A1.
Combien de livres sont ouverts ?
Fermeture de tous les livres.
Fermeture d'un classeur uniquement lorsqu'une condition est remplie.
Enregistre le classeur sous un nom qui représente la date actuelle.
Le classeur est-il enregistré ?
Créez un classeur avec une seule feuille.
Créez un livre.
Suppression des noms inutiles.
Reproduction rapide d'un classeur.
Tri des feuilles.
Trouver la valeur maximale sur toutes les feuilles du classeur.
Feuille de travail.
Vérifier si la feuille de calcul est protégée.
Liste des feuilles triées.
Créez une nouvelle feuille.
Créez une nouvelle feuille.
Suppression des feuilles en fonction de la date.
Copier une feuille dans un livre.
Copie d'une feuille dans un nouveau classeur (créé).
Déplacer une feuille dans un livre.
Déplacez plusieurs feuilles vers un nouveau classeur.
Remplacez un fichier existant.
"Retourner" le livre.
Insérez un en-tête et un pied de page avec le nom du classeur, de la feuille et la date du jour.
La fiche existe-t-elle ?
La fiche existe-t-elle ?
Affiche le nombre de feuilles dans le classeur actif.
Affiche le nombre de feuilles dans le classeur actif sous forme d'hyperliens.
Affiche les noms des feuilles actives un par un.
Affiche le nom et les numéros de feuille du livre actuel.
Rendre la feuille invisible.
Combien de pages y a-t-il sur toutes les feuilles ?
Cellule et plage (colonnes et lignes).
Copiez les lignes sur une autre feuille.
Copiez les colonnes sur une autre feuille.
Compte le nombre de cellules contenant les valeurs spécifiées.
Compte le nombre de cellules d'une plage contenant les valeurs spécifiées.
Compte le nombre de cellules visibles dans une plage.
Déterminer le nombre de cellules dans une plage et la somme de leurs valeurs.
Compter le nombre de cellules.
Recalcul automatique des données du tableau lorsque ses valeurs changent.
Saisir des données dans des cellules.
Saisir des données à l'aide de formules.
Entrée de données en série.
Saisie de données textuelles dans des cellules.
Affiche le nom du livre, la feuille et le nombre de feuilles dans les cellules.
Suppression des lignes vides.
Suppression des lignes vides.
Suppression des lignes vides.
Suppression d'une ligne par condition.
Suppression des lignes masquées.
Supprimez les lignes masquées ou de hauteur nulle utilisées.
Suppression des doublons à l'aide d'un masque.

Sélectionne une plage au-dessus de la cellule actuelle.
Sélectionnez une cellule et placez-y un numéro.
Mise en évidence des valeurs négatives.
Sélection d'une plage et utilisation d'adresses absolues.

Sélection de cellules à intervalles.
Sélection de plusieurs plages.
Mouvement à travers les cellules.
Recherche la cellule vide la plus proche dans une colonne.
Trouver la valeur maximale.
Recherchez et remplacez par modèle.
Recherchez une valeur et affichez le résultat dans une fenêtre séparée.

Recherche avec mise en évidence des données trouvées.
Recherche par condition dans une plage.
Recherche la dernière cellule non vide d'une plage.
Recherche la dernière cellule non vide d'une colonne.
Recherche la dernière cellule non vide d'une ligne.
Recherchez une cellule bleue dans une plage.
Trouver une valeur négative dans une plage et la mettre en surbrillance en bleu.
Trouver la présence d'une valeur dans une colonne.
Trouver des correspondances dans une plage.
Recherchez une cellule dans une plage.
Recherchez une cellule dans une plage.
Trouver une valeur approximative dans une plage.
Recherche le début et la fin d'une plage contenant des données.
Trouver le début des données.
Remplacement automatique des valeurs.
Remplissage rapide d'une plage (array).
Remplissage par intervalle (tableau).
Remplit la plage spécifiée (tableau).
Remplissez la plage (tableau).
Calcul de la somme des premières valeurs de la plage.
Placement dans une alvéole d'une montre électronique.
"Alarme".
Conception des limites supérieure et inférieure de la gamme.
Adresse de cellule active.
Coordonnées de la cellule active.
Formule cellulaire active.
Obtenir une formule à partir d'une cellule.
Type de données de cellule.
Afficher l'adresse de fin de plage.
Obtention d'informations sur la plage sélectionnée.
Prenez le mot avec le 13ème caractère dans la cellule.
Création d'une liste modifiable (tableau).
Vérifiez la valeur vide.
Intersection de cellules.
Multiplier la plage sélectionnée par.
Multipliez simultanément toutes les données d’une plage.
Divisez la plage en.
Mettre au carré chaque cellule de la plage.
Résume les données des cellules visibles uniquement.
La somme des cellules avec des valeurs numériques.
Lors de la somme, le curseur se trouve à l’intérieur de la plage.

Intérêts courus en fonction du montant.
Intérêts courus en fonction du montant.
Exemple récapitulatif de calcul de commission.
Mouvement le long de la plage.
Décalage par rapport à la cellule sélectionnée.
Parcourez les cellules de la colonne.
Création d'un remplissage de plage.
Sélection d'un paramètre de cellule.
Répartition de la portée.
Fusionner les données de plage.
Fusionner les données de plage.
Découvrez le nombre maximum de colonnes ou de lignes.
Limitation des valeurs de plage possibles.
Test de la vitesse des plages de lecture et d'écriture.
Ouvrez MsgBox lorsqu'une cellule est sélectionnée.
Cacher une ligne.
Masquer plusieurs lignes.
Cacher une colonne.
Masquer plusieurs colonnes.
Masquer une ligne par nom de cellule.
Masquage de plusieurs lignes par adresses de cellules.
Masquer une colonne par nom de cellule.
Masquage de plusieurs colonnes par adresses de cellules.
Cellule clignotante.
Travailler avec des notes.
Affiche toutes les notes de la feuille de calcul.
Fonction d'extraction de commentaires.
Liste des notes pour les feuilles protégées.

Liste des notes dans une liste séparée.
Liste des notes dans une liste séparée.

Compter le nombre de commentaires.
Compter les notes.
Sélectionnez les cellules avec des commentaires.
Afficher toutes les notes.
Changez la couleur des notes.
Ajout de notes.
Ajout de notes à une plage en fonction de la condition.
Déplacez un commentaire vers une cellule et vice-versa.

Transférer des valeurs d'une cellule vers un commentaire.
Onglets personnalisés sur le ruban.
Ajout de la barre d'outils.
Ajout d'un bouton à la barre d'outils.
Un panneau de boutons.
Panneau avec deux boutons.
Création d'un panneau à droite.

Création d'un menu personnalisé (option 1).
Création d'un menu personnalisé (option 2).
Création d'un menu personnalisé (option 3).
Création d'un menu personnalisé (option 4).
Création d'un menu personnalisé (option 5).
Création d'un menu personnalisé (option 6).
Création d'une liste d'éléments du menu principal Excel.
Création d'une liste d'éléments de menu contextuel.
Afficher la barre d'outils sous certaines conditions.
Masquer et afficher les barres d'outils.
Créer une info-bulle pour mes boutons.
Créez un menu basé sur les données d'une feuille de calcul.
Création d'un menu contextuel.
Blocage du menu contextuel.
Ajout d'une commande au menu Outils.
Ajout d'une commande au menu Affichage.
Création d'un panneau de liste.
Un dessin animé mettant en vedette un assistant.
Ajoutez du texte, un titre, un bouton et une icône à l'assistant.
Nouvelles options d'assistant.
Utilisation de l'assistant pour sélectionner une couleur de remplissage.
FENÊTRES DE DIALOGUE.
Fonction INPUTBOX (via saisie de valeur).
Aperçu des appels.
Configuration de la saisie des données dans la boîte de dialogue.

Ouvre la boîte de dialogue (Ouvrir un fichier).
Ouvre la boîte de dialogue (Imprimer).
Autres boîtes de dialogue.
Appel du navigateur depuis Excel.
Boîte de dialogue de saisie de données.
Boîte de dialogue Paramètres de police.
Valeurs par défaut.
Formatage du texte. Des tableaux. BORDURES ET REMPLISSAGE.
Affiche une liste des polices disponibles.
Sélection de tous les nombres du texte.
Mettez une majuscule uniquement au début du texte.
Compter le nombre de répétitions du texte recherché.
Sélection d'un élément arbitraire dans le texte.
Afficher le texte à l'envers.
Le texte anglais est en majuscules.
Lancement d'une table de symboles depuis Excel.
informations sur l'utilisateur, l'ordinateur, l'imprimante, etc.
Obtenez le nom d'utilisateur.
Sortie de résolution du moniteur.
Obtenez des informations sur l’imprimante que vous utilisez.
Afficher des informations sur les lecteurs de votre ordinateur.
FORMULAIRES D'UTILISATEUR.
DIAGRAMMES.
Construire un graphique à l'aide d'une macro.
Enregistrement du diagramme dans un fichier séparé.
Créez et supprimez un graphique en un seul clic.
Affichez une liste de diagrammes dans une fenêtre séparée.
Application d'une palette de couleurs aléatoire.
Effet de transparence du graphique.
Construisez un graphique basé sur les données de plusieurs feuilles de calcul.
Créez des légendes pour les données du graphique.
DIFFÉRENTS PROGRAMMES.
Programme pour composer des mots croisés.
Créez une couverture de DVD.
Jeu "Champ de mines".
Jeu "Devinez l'animal".
Calcul basé sur des cellules d'une certaine couleur.
AUTRES FONCTIONS ET MACROS.
Appel des touches de fonction.
Calcul de la moyenne arithmétique.
Convertir les nombres en « argent ».
Recherchez le lundi le plus proche.
Compter le nombre d'années complètes.
Calcul de la moyenne pondérée.
Conversion du numéro du mois en son nom.
Utiliser des liens relatifs.
Conversion d'un tableau Excel au format HTML.
Générateur de nombres aléatoires.
Nombres aléatoires - basés sur une plage.
Appliquer une fonction sans la saisir dans une cellule.
Compter les objets nommés.
Activation d'un filtre automatique à l'aide d'une macro.
Créer une ligne rampante.
Créer une image en cours d'exécution.
Rotation des formes automatiques.
Appel de la table des couleurs.
Création d'une calculatrice.
Déclinaison du nom, prénom et patronyme.
DATE ET HEURE.
Date et heure de sortie.
Date et heure de sortie.
Obtenir la date du système.
Récupération de la date et des heures.
Fonction DateFull La version de MS Office utilisée n'est pas précisée.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :