4 erreurs que vous pouvez éviter lors de la programmation de macros Excel avec VBA
Microsoft Excel est déjà un outil d'analyse de données très performant, mais avec la possibilité d'automatiser des tâches répétitives avec des macros. Comment envoyer des courriels depuis une feuille de calcul Excel à l'aide de scripts VBA Comment envoyer des courriels d'une feuille de calcul Excel à l'aide de scripts VBA Notre modèle de code vous aidera à définir des emails automatisés à partir d’Excel à l’aide de CDO (Collaboration Data Objects) et de scripts VBA. Lisez Plus en écrivant du code simple (VBA), c'est d'autant plus puissant. Cependant, utilisé incorrectement, VBA peut causer beaucoup de problèmes.
Même si vous n'êtes pas un programmeur, VBA offre des fonctions simples qui vous permettent d'ajouter des fonctionnalités vraiment impressionnantes à vos feuilles de calcul, alors ne partez pas tout de suite.!
Créez des tableaux de bord dans Excel Créez votre propre tableau de bord météo dans cette classe principale de tableur Google Créez votre propre tableau de bord météo dans cette classe principale de feuille de calcul Google Souhaitez-vous transformer votre compte Google Drive en un système d'analyse météorologique intelligent? , et vivre un fantasme Star Trek? D'accord! En savoir plus, ou un débutant qui sait seulement écrire des scripts simples qui effectuent des calculs de cellule de base, vous pouvez suivre des techniques de programmation simples vous permettant d'améliorer les chances d'écrire du code propre et sans bug.
Débuter avec VBA
Si vous n'aviez jamais programmé dans VBA dans Excel auparavant, il est en fait assez facile d'activer les outils de développement. Il suffit d'aller à Fichier > Les options et alors Personnaliser le ruban. Il suffit de déplacer le Développeur groupe de commandes du volet de gauche vers la droite.
Assurez-vous que la case à cocher est activée et que l'onglet Développeur apparaîtra dans votre menu Excel..
Le moyen le plus simple d’entrer dans la fenêtre de l’éditeur de code est de cliquer sur le bouton Voir le code bouton sous Les contrôles dans le menu Développeur.
1. Noms de variables horribles
Maintenant que vous êtes dans la fenêtre de code, il est temps de commencer à écrire du code VBA Comment créer votre propre application simple avec VBA Comment créer votre propre application simple avec VBA Pour ceux d'entre vous qui aimeraient vraiment pouvoir écrire votre propre application, mais vous n’avez jamais tapé une seule ligne de code auparavant, je vais vous expliquer… En savoir plus. La première étape importante dans la plupart des programmes, qu’il s’agisse de VBA ou de tout autre langage, consiste à définir vos variables..
Au cours de mes deux décennies d'écriture de code, je suis tombé sur de nombreux courants de pensée concernant les conventions de dénomination des variables et j'ai appris certaines choses à la dure. Voici les astuces rapides pour créer des noms de variables:
- Faites-les aussi courts que possible.
- Rendez-les aussi descriptifs que possible.
- Préface-les avec un type de variable (booléen, entier, etc…).
- N'oubliez pas d'utiliser la bonne portée (voir ci-dessous).
Voici un exemple de capture d’un programme que j’utilise souvent pour passer des appels Windows WMIC à partir d’Excel afin de collecter des informations sur l’ordinateur Comment visualiser toutes les informations de votre ordinateur à l’aide d’un script VBA Excel simple Comment visualiser toutes les informations de votre ordinateur à l’aide d’un script VBA Excel simple Excel 10 minutes de travail vous donneront des informations plus détaillées sur votre ordinateur que vous n'auriez jamais cru possible. Cela semble trop beau pour être vrai? C'est Windows, si vous savez l'utiliser. Lire la suite .
Lorsque vous souhaitez utiliser les variables à l'intérieur d'une fonction à l'intérieur du module ou de l'objet (je l'expliquerai ci-dessous), vous devez alors le déclarer comme “Publique” variable en précédant la déclaration avec Publique. Sinon, les variables sont déclarées en les faisant précéder du mot Faible.
Comme vous pouvez le constater, si la variable est un entier, elle est précédée de int. Si c'est une chaîne, alors str. Cela vous aidera plus tard pendant la programmation car vous saurez toujours quel type de données la variable contient, en regardant simplement le nom. Vous remarquerez également que s'il existe quelque chose comme une chaîne contenant un nom d'ordinateur, la variable est appelée strComputerName.
Évitez de créer des noms de variables très compliqués ou déroutants que vous êtes le seul à comprendre. Aidez un autre programmeur à vous suivre et à comprendre ce que tout cela signifie!
Une autre erreur que font les gens est de laisser les noms de feuilles par défaut. “Feuille1”, “Feuille2”, etc… Ceci ajoute une confusion supplémentaire à un programme. Au lieu de cela, nommez les feuilles pour qu'elles aient un sens..
Ainsi, lorsque vous faites référence au nom de la feuille dans votre code VBA Excel. Utilisation de VBA pour automatiser des sessions Internet Explorer à partir d’une feuille de calcul Excel Utilisation de VBA pour automatiser des sessions Internet Explorer à partir d’une feuille de calcul Excel Son intégration à Windows permet de contrôler Internet Explorer dans un certain nombre de fonctions. façons surprenantes d'utiliser le script Visual Basic pour Applications (VBA) à partir de toute application qui le prend en charge, telle que Word, Outlook ou Excel. Lisez Plus, vous faites référence à un nom qui a du sens. Dans l’exemple ci-dessus, j’ai une feuille où je saisis les informations du réseau, alors j’appelle la feuille “Réseau”. Maintenant, dans le code, chaque fois que je veux faire référence à la feuille Réseau, je peux le faire rapidement sans rechercher le numéro de la feuille..
2. Casser au lieu de faire une boucle
L'un des problèmes les plus courants auxquels les nouveaux programmeurs sont confrontés est celui de 6 habitudes de vie que la programmation pourrait vous apprendre aujourd'hui. 6 habitudes de vie que la programmation pourrait vous apprendre aujourd'hui. Ne me crois pas? Continuer à lire. Lisez-en plus quand ils commencent à écrire du code traitent correctement les boucles. Et comme tant de personnes qui utilisent Excel VBA sont très novices en code, une mauvaise boucle est une épidémie..
La mise en boucle est très courante dans Excel, car vous traitez souvent des valeurs de données sur une ligne ou une colonne entière. Vous devez donc effectuer une boucle pour toutes les traiter. Les nouveaux programmeurs veulent souvent simplement rompre avec une boucle (une boucle For ou un look While) instantanément lorsqu'une condition donnée est vraie.
Vous pouvez ignorer la complexité du code ci-dessus, mais notez qu'à l'intérieur de l'instruction IF interne, il existe une option permettant de quitter la boucle For si la condition est vraie. Voici un exemple plus simple:
Pour x = 1 à 20 Si x = 6, quittez pour y = x + intRoomTemp.
Les nouveaux programmeurs adoptent cette approche parce que c'est facile. Lorsque vous attendez une condition pour pouvoir quitter une boucle, la tentation est grande de vous en sortir immédiatement, mais ne le faites pas..
Plus souvent qu'autrement, le code qui vient après “Pause” est important à traiter, même la dernière fois dans la boucle avant de quitter. Une façon beaucoup plus propre et plus professionnelle de gérer les conditions dans lesquelles vous souhaitez laisser une boucle à mi-chemin consiste simplement à inclure cette condition de sortie dans quelque chose comme une déclaration While..
While (x> = 1 ET x<=20 AND x<>6) Pour x = 1 à 20 y = x + intRoomTemp Suivant i Wend
Cela permet un flux logique de votre code, avec la dernière exécution lorsque x est égal à 5, puis la fermeture en douceur une fois que la boucle For compte jusqu'à 6. Il n'est pas nécessaire d'inclure les commandes EXIT ou BREAK maladroites en milieu de boucle..
3. Ne pas utiliser de tableaux
Une autre erreur intéressante: les nouveaux programmeurs VBA Principes de base de la programmation informatique 101 - Variables et DataTypes Principes de base de la programmation informatique 101 - Variables et Types de données Ayant introduit et parlé un peu de la programmation orientée objet avant et d'où vient son nom, j'ai pensé qu'il était temps passer à travers les bases absolues de la programmation d’une manière non spécifique au langage. Cette… essaye de traiter tout ce qui est contenu dans de nombreuses boucles imbriquées qui filtrent à travers les lignes et les colonnes au cours du processus de calcul..
Bien que cela puisse fonctionner, cela peut également entraîner des problèmes de performances majeurs si vous devez constamment effectuer les mêmes calculs sur les mêmes nombres dans la même colonne. Passer en boucle dans cette colonne et extraire les valeurs à chaque fois n'est pas seulement fastidieux à programmer, c'est un tueur sur votre processeur. Un moyen plus efficace de gérer de longues listes de numéros consiste à utiliser un tableau.
Si vous n'avez jamais utilisé de tableau auparavant, ne craignez rien. Imaginez un tableau sous forme de bac à glaçons avec un certain nombre de “cubes” vous pouvez mettre des informations dans. Les cubes sont numérotés de 1 à 12, et c’est comme ça “mettre” données en eux.
Vous pouvez facilement définir un tableau simplement en tapant Dim arrMyArray (12) en tant que nombre entier.
Cela crée un “plateau” avec 12 places disponibles pour vous remplir.
Voici à quoi pourrait ressembler un code de bouclage de lignes sans tableau:
Sub Test1 () Dim x As Integer intNumRows = Range ("A2", Range ("A2"). End (xldown)). Rows.Count Range ("A2"). Sélectionnez For x = 1 à intNumRows If Range (" Une valeur "& str (x)). < 100 then intTemp = (Range("A" & str(x)).value) * 32 - 100 End If ActiveCell.Offset(1, 0).Select Next End Sub
Dans cet exemple, le code est traité dans toutes les cellules de la plage et effectue le calcul de la température..
Plus tard dans le programme, si vous souhaitez effectuer un autre calcul sur ces mêmes valeurs, vous devez dupliquer ce code, traiter toutes ces cellules et effectuer votre nouveau calcul..
Maintenant, si vous utilisez plutôt un tableau, vous pouvez alors stocker les 12 valeurs de la ligne dans votre tableau de stockage pratique. Ensuite, chaque fois que vous souhaitez exécuter des calculs sur ces chiffres, ils sont déjà en mémoire et prêts à être utilisés..
Sub Test1 () Dim x As Integer intNumRows = Range ("A2", Range ("A2"). End (xldown)). Rows.Count Range ("A2"). Sélectionnez For x = 1 à intNumRows arrMyArray (x- 1) = Plage (valeur "A" & str (x)). ActiveCell.Offset (1, 0) .Sélectionnez Next End Sub
le “x-1” pour pointer sur l’élément de tableau n’est nécessaire que parce que la boucle For commence à 1. Les éléments de tableau doivent commencer à 0.
Mais une fois que votre tableau est chargé avec les valeurs de la ligne, vous pourrez plus tard, dans le programme, rassembler tous les calculs souhaités à l'aide du tableau..
Sub TempCalc () Pour x = 0 à UBound (arrMyArray) arrMyTemps (y) = arrMyArray (x) * 32 - 100 Next End Sub
Cet exemple parcourt l'intégralité du tableau de lignes (UBound vous donne le nombre de valeurs de données dans le tableau), effectue le calcul de la température, puis le place dans un autre tableau appelé arrMyTemps..
Vous pouvez voir à quel point le deuxième code de calcul est simple. Et à partir de ce moment-là, chaque fois que vous souhaitez effectuer plus de calculs sur le même ensemble de nombres, votre tableau est déjà préchargé et prêt à fonctionner..
4. Utiliser trop de références
Que vous programmiez en Visual Basic ou VBA à part entière, vous devez inclure “références” pour accéder à certaines fonctionnalités, telles que l'accès à une base de données Access ou l'écriture de la sortie dans un fichier texte.
Les références sont un peu comme “les bibliothèques” rempli de fonctionnalités que vous pouvez exploiter, si vous activez ce fichier. Vous pouvez trouver des références dans la vue Développeur en cliquant sur Outils dans le menu puis en cliquant sur Références.
Vous trouverez dans cette fenêtre toutes les références actuellement sélectionnées pour votre projet VBA actuel..
D'après mon expérience, les sélections peuvent changer d'une installation Excel à une autre et d'un PC à un autre. Cela dépend beaucoup de ce que d'autres personnes ont fait avec Excel sur ce PC, de l'ajout ou de l'activation de certains add-ons ou fonctionnalités, ou de la possibilité que certains programmeurs aient utilisé certaines références dans des projets antérieurs..
Il est bon de vérifier cette liste parce que des références inutiles gaspillent des ressources système. Si vous n'utilisez aucune manipulation de fichier XML, alors pourquoi garder Microsoft XML sélectionné? Si vous ne communiquez pas avec une base de données, supprimez Microsoft DAO. Si vous n'écrivez pas la sortie dans un fichier texte, supprimez Microsoft Scripting Runtime.
Si vous n'êtes pas sûr de ce que font ces références sélectionnées, appuyez sur F2 et vous verrez l'explorateur d'objets. En haut de cette fenêtre, vous pouvez choisir la bibliothèque de référence à parcourir..
Une fois sélectionné, vous verrez tous les objets et fonctions disponibles, sur lesquels vous pourrez cliquer pour en savoir plus sur.
Par exemple, lorsque je clique sur la bibliothèque DAO, il devient rapidement évident qu'il s'agit uniquement de se connecter et de communiquer avec des bases de données..
Réduire le nombre de références que vous utilisez dans votre projet de programmation est tout à fait sensé et contribuera à rendre votre application globale plus efficace..
Programmation dans Excel VBA
Toute l'idée d'écrire du code dans Excel Économiser du temps avec les opérations de texte dans Excel Économiser du temps avec de texte Opérations dans Excel Excel peut faire de la magie avec des nombres et gérer les caractères de manière égale. Ce manuel explique comment analyser, convertir, remplacer et modifier du texte dans des feuilles de calcul. Ces bases vous permettront d’effectuer des transformations complexes. Lire la suite effraie beaucoup de gens, mais cette crainte n'est vraiment pas nécessaire. Visual Basic pour Applications est un langage très simple à apprendre. Si vous suivez les pratiques de base mentionnées ci-dessus, vous vous assurez que votre code est propre, efficace et facile à comprendre..
Avez-vous du code en VBA? Quelles sortes de leçons avez-vous appris au fil des ans que vous pouvez partager avec d'autres lecteurs qui apprennent VBA pour la première fois? Partagez vos astuces dans la section commentaires ci-dessous!
Crédits image: ordinateur de www.BillionPhotos.com via Shutterstock, plateaux à glaçons colorés de hahauk via Shutterstock.com
En savoir plus sur: Microsoft Excel, Programmation, Programmation Visual Basic.