4 erreurs que vous pouvez éviter lors de la programmation de macros Excel avec VBA

  • Michael Cain
  • 0
  • 4370
  • 937
Publicité

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 courriers électroniques depuis une feuille de calcul Excel à l'aide de scripts VBA Comment envoyer des courriers électroniques depuis une feuille de calcul Excel à l'aide de scripts VBA Notre modèle de code vous aidera à définir des e-mails automatisés à partir d'Excel à l'aide de CDO (Collaboration Data Objects) et de scripts VBA. en écrivant du code simple en (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! ou un débutant qui sait seulement écrire des scripts simples qui effectuent des calculs de cellules de base, vous pouvez suivre des techniques de programmation simples, qui vous aideront à 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 comment faire votre très…. La première étape importante dans la plupart des programmes, que ce soit en VBA ou dans n’importe quel 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 en ce qui concerne 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.
  • Faites-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. Voir toutes les informations de votre ordinateur à l’aide d’un script VBA Excel simple. 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. .

Lorsque vous voulez 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 en tant que “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 feuille 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..

De cette façon, 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. , 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 enseigner aujourd'hui. Tout ce qu'il est important de savoir sur la réussite de votre vie peut être obtenu à partir d'un programme informatique. Ne me crois pas? Continuer à lire. quand ils commencent à écrire du code, ils traitent correctement avec les boucles. Et comme de nombreuses personnes qui utilisent Excel VBA sont des débutants 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. Vous devez donc effectuer une boucle pour toutes les traiter. Les nouveaux programmeurs veulent souvent simplement sortir d'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 Puis quittez Pour y = x + intRoomTemp Suivant i 

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 x6) For x = 1 To 20 y = x + intRoomTemp Next 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 à une langue. This… make essaie de traiter tout ce qui est contenu dans de nombreuses boucles imbriquées qui filtrent à travers les lignes et les colonnes pendant le processus de calcul..

Bien que cela puisse fonctionner, cela pourrait é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. Se déplacer dans cette colonne et extraire les valeurs à chaque fois est non seulement fastidieux à programmer, mais tue également 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 voilà comment “mettre” les données en eux.

Vous pouvez facilement définir un tableau simplement en tapant Dim arrMyArray (12) en tant qu'entier.

Cela crée un “plateau” avec 12 places disponibles pour vous remplir.

Voici à quoi pourrait ressembler un code en boucle de ligne sans tableau:

Sub Test1 () Dim x As Integer intNumRows = Range ("A2", Range ("A2"). End (xldown)). Rows.Count Range ("A2"). Sélectionnez Pour 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 préférez utiliser 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 nombres, 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 Pour 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 pouvez plus tard, dans le programme, rassembler tous les calculs que vous souhaitez en utilisant le tableau..

Sub TempCalc () Pour x = 0 à UBound (arrMyArray) arrMyTemps (y) = arrMyArray (x) * 32 - 100 Next End Sub 

Cet exemple parcourt le tableau de lignes entier (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 plusieurs 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. fait peur à beaucoup de gens, mais cette peur 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 assurerez 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




Personne n'a encore commenté ce post.

De la technologie moderne, simple et abordable.
Votre guide dans le monde de la technologie moderne. Apprenez à utiliser les technologies et les gadgets qui nous entourent chaque jour et à découvrir des choses intéressantes sur Internet.