4 erreurs à éviter lors de la programmation de macros Excel avec VBA

4 erreurs à éviter lors de la programmation de macros Excel avec VBA

Microsoft Excel est déjà un outil d'analyse de données performant, mais avec la possibilité d'automatiser des tâches répétitives avec des macros en écrivant du code simple dans Visual Basic pour Applications (VBA), il est encore plus puissant. Cependant, utilisé de manière incorrecte, VBA peut causer des problèmes.



Même si vous n'êtes pas un programmeur, VBA propose des fonctions simples qui vous permettent d'ajouter des fonctionnalités impressionnantes à vos feuilles de calcul.

Peu importe que vous soyez un gourou VBA qui crée des tableaux de bord dans Excel, ou un débutant écrivant des scripts simples qui effectuent des calculs cellulaires de base. Suivez ces techniques de programmation simples pour apprendre à écrire du code propre et sans bogue.





Premiers pas avec VBA

VBA peut faire toutes sortes de choses intéressantes pour vous. De l'écriture de macros qui modifient les feuilles à envoi d'e-mails à partir d'une feuille de calcul Excel à l'aide de scripts VBA il y a très peu de limites à votre productivité.

Si vous n'avez pas programmé en VBA dans Excel auparavant, vous devrez activer les outils de développement dans votre programme Excel. La bonne nouvelle est que l'activation des outils de développement est en fait assez simple. Allez simplement à Déposer > Options puis Personnaliser le ruban . Déplacez simplement le Développeur onglet du volet de gauche vers la droite.



Assurez-vous que la case à cocher a cet onglet activé, et maintenant 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 à partir d'ici est simplement de cliquer sur le Afficher le code bouton sous Les contrôles dans le menu Développeur.

Vous êtes maintenant prêt à écrire du code VBA ! Cet onglet est l'endroit où vous accéderez à VBA ainsi qu'à enregistrer des macros dans Excel . Maintenant qu'Excel est prêt à fonctionner, passons en revue quelques erreurs courantes à éviter et les moyens de les éviter.

1. Noms de variables horribles

Maintenant que vous êtes dans la fenêtre de code, il est temps de commencer à écrire du code VBA. La première étape importante dans la plupart des programmes, que ce soit en VBA ou dans tout autre langage, consiste à définir vos variables. Ne pas nommer correctement les variables est l'une des erreurs de programmation les plus courantes commises par les nouveaux développeurs.

comment changer le pays de l'App Store

Au cours de mes décennies d'écriture de code, j'ai rencontré de nombreuses écoles de pensée en ce qui concerne les conventions de nommage des variables et j'ai appris quelques règles à la dure. Voici quelques conseils rapides pour créer des noms de variables :

  • Faites-les aussi courts que possible.
  • Faites-les aussi descriptifs que possible.
  • Faites-leur précéder le type de variable (booléen, entier, etc...).

Voici un exemple de capture d'écran d'un programme que j'utilise souvent pour passer des appels Windows WMIC à partir d'Excel afin de collecter des informations sur le PC .

Lorsque vous souhaitez utiliser les variables à l'intérieur d'une fonction dans le module ou l'objet (je vais l'expliquer ci-dessous), vous devez alors la déclarer en tant que variable « publique » en faisant précéder la déclaration de Publique . Sinon, les variables sont déclarées en les faisant précéder du mot Rien .

Comme vous pouvez le voir, si la variable est un entier, elle est précédée de entier . Si c'est une chaîne, alors p . Il s'agit d'une préférence personnelle qui aide plus tard pendant que vous programmez, car vous saurez toujours quel type de données la variable contient en jetant un coup d'œil sur le nom.

Assurez-vous également de nommer les feuilles dans votre classeur Excel.

De cette façon, lorsque vous faites référence au nom de la feuille dans votre code Excel VBA, vous faites référence à un nom qui a du sens. Dans l'exemple ci-dessus, j'ai une feuille où je récupère des informations sur le réseau, j'appelle donc la feuille « Réseau ». Chaque fois que je souhaite référencer la feuille Réseau, je peux le faire rapidement sans rechercher de quel numéro de feuille il s'agit.

2. Casser au lieu de boucler

L'un des problèmes les plus courants rencontrés par les nouveaux programmeurs VBA lorsqu'ils commencent à écrire du code est de gérer correctement les boucles.

La 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 boucler pour toutes les traiter.

Les nouveaux programmeurs veulent souvent sortir d'une boucle (boucles VBA For ou boucles VBA Do While) instantanément lorsqu'une certaine condition est vraie.

Voici un exemple de cette méthode utilisée pour rompre une boucle VBA.

For x = 1 To 20
If x = 6 Then Exit For
y = x + intRoomTemp
Next i

Les nouveaux programmeurs adoptent cette approche parce que c'est facile. Essayez d'éviter de rompre explicitement une boucle.

Le plus souvent, le code qui vient après cette « pause » est important à traiter. Un moyen beaucoup plus propre et plus professionnel 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 instruction VBA While.

While (x>=1 AND x<=20 AND x6)
For x = 1 To 20
y = x + intRoomTemp
Next i
Wend

Cela permet un flux logique de votre code. Maintenant, le code bouclera et s'arrêtera une fois qu'il atteint 6. Pas besoin d'inclure des commandes EXIT ou BREAK maladroites au milieu de la boucle.

3. Ne pas utiliser de tableaux

Une autre erreur intéressante que commettent les nouveaux programmeurs VBA est d'essayer de tout traiter à l'intérieur de nombreuses boucles imbriquées qui filtrent à travers les lignes et les colonnes pendant le processus de calcul.

Cela pourrait également conduire à des problèmes de performances majeurs. Parcourir une colonne et extraire les valeurs à chaque fois est un tueur pour votre processeur. Un moyen plus efficace de gérer de longues listes de nombres consiste à utiliser un tableau.

Si vous n'avez jamais utilisé un tableau auparavant, n'ayez crainte. Imaginez un tableau comme un bac à glaçons avec un certain nombre de « cubes » dans lesquels vous pouvez mettre des informations. Les cubes sont numérotés de 1 à 12, et c'est ainsi que vous y 'mettez' des données.

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

Où puis-je lire des mangas en ligne

Cela crée un « plateau » avec 12 emplacements disponibles pour que vous puissiez le remplir.

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

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
If Range('A' & str(x)).value <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 traite chaque cellule de la plage et effectue le calcul de la température.

Si jamais vous souhaitez effectuer un autre calcul sur ces mêmes valeurs, le processus serait maladroit. Vous devrez dupliquer ce code, traiter toutes ces cellules et effectuer votre nouveau calcul. Tout pour un seul changement !

Voici un meilleur exemple, en utilisant un tableau. Tout d'abord, créons le tableau.

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
arrMyArray(x-1) = Range('A' & str(x)).value)
ActiveCell.Offset(1, 0).Select
Next
End Sub

Les x-1 pour pointer sur l'élément du tableau n'est nécessaire que parce que la boucle For commence à 1. Les éléments du tableau doivent commencer à 0.

Maintenant que vous avez le tableau, il est très simple de traiter le contenu.

Sub TempCalc()
For x = 0 To 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 .

4. Utiliser trop de références

Que vous programmiez en Visual Basic à part entière ou en VBA, vous devrez inclure des « références » pour accéder à certaines fonctionnalités.

Les références sont en quelque sorte des « bibliothèques » remplies 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 Les références .

Ce que vous trouverez dans cette fenêtre sont toutes les références actuellement sélectionnées pour votre projet VBA actuel.

Vous devriez vérifier cette liste car les références inutiles peuvent gaspiller 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, etc.

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 pouvez cliquer pour en savoir plus.

Par exemple, lorsque je clique sur la bibliothèque DAO, il devient rapidement clair qu'il s'agit 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 relève du bon sens et contribuera à rendre votre application globale plus efficace.

quand mon compte gmail a été créé ?

Programmation dans Excel VBA

L'idée même d'écrire du code dans Excel 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, et si vous suivez les pratiques courantes de base mentionnées ci-dessus, vous vous assurerez que votre code est propre, efficace et facile à comprendre.

Ne vous arrêtez pas là cependant. Construisez une base solide de compétences Excel avec un Tutoriel VBA pour les débutants . Continuez ensuite à découvrir VBA et les macros avec des ressources pour vous aider à automatiser vos feuilles de calcul.

Partager Partager Tweeter E-mail Cela vaut-il la peine de passer à Windows 11 ?

Windows a été repensé. Mais est-ce suffisant pour vous convaincre de passer de Windows 10 à Windows 11 ?

Lire la suite
Rubriques connexes
  • Productivité
  • La programmation
  • La programmation
  • Programmation Visual Basic
  • Microsoft Excel
A propos de l'auteur Antoine Grant(40 articles publiés)

Anthony Grant est un écrivain indépendant couvrant la programmation et les logiciels. C'est un étudiant en informatique spécialisé dans la programmation, Excel, les logiciels et la technologie.

Plus de Anthony Grant

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner