4 Erreurs vous pouvez éviter lors de la programmation des macros excel avec vba
Microsoft Excel est un outil d`analyse de données très capable déjà, mais avec la capacité de automatiser des tâches répétitives avec des macros
Contenu
- Mise en route avec vba
- 1. les noms de variables horrible
- Video: tuto excel #2 - initiation, les bases des macros // gagnez du temps avec le vba !
- Video: lab 7 : macros excel vba et tableau de bord
- 2. briser au lieu de looping
- 3. ne pas utiliser des tableaux
- 4. utilisation trop de références
- Programmation vba dans excel
Même si vous n`êtes pas un programmeur, VBA offre des fonctions simples qui vous permettent d`ajouter des fonctionnalités vraiment impressionnant à vos feuilles de calcul, alors ne laissez pas tout de suite!
Que vous soyez un gourou VBA, qui crée des tableaux de bord dans Excel, ou un débutant, qui ne sait comment écrire des scripts simples qui font des calculs de cellules de base, vous pouvez suivre les techniques de programmation facile, qui vous aideront à améliorer les chances d`écrire un code propre et sans bug.
Mise en route avec VBA
Si vous n`êtes pas programmé en VBA dans Excel avant, ce qui permet aux outils de développement pour le faire est en fait assez facile. Il suffit d`aller Fichier gt; options et alors personnaliser le ruban. Il suffit de déplacer le Développeur volet groupe de commandes à partir de la gauche vers la droite.
Assurez-vous que la case est cochée, et maintenant l`onglet Développeur apparaît dans votre menu Excel.
La meilleure façon d`entrer dans la fenêtre de l`éditeur de code à ce point est juste de cliquer sur le Afficher le code bouton sous Contrôles dans le menu développeur.
1. Les noms de variables Horrible
Maintenant que vous êtes dans la fenêtre de code, il est temps de commencer l`écriture de code VBA. La première étape importante dans la plupart des programmes, que ce soit en VBA ou toute autre langue, définit vos variables.Comment vous pouvez faire votre propre application simple avec VBAComment vous pouvez faire votre propre application simple avec VBAPour ceux d`entre vous qui aiment vraiment être en mesure d`écrire votre propre application, mais n`a jamais tapé une seule ligne de code avant, je vais vous guider à travers faire votre très ...Lire la suite
Video: Tuto Excel #2 - Initiation, Les bases des macros // Gagnez du temps avec le VBA !
Tout au long de mon deux décennies d`écriture de code, je suis tombé sur de nombreuses écoles de pensée en ce qui concerne les conventions de nommage des variables et appris quelques choses à la dure. Voici les conseils rapides pour créer des noms de variables:
- Faites-les aussi courts que possible.
- Faites-les aussi descriptif que possible.
- Préface de type les variables (booléen, entier, etc ...).
- Rappelez-vous d`utiliser le champ droit (voir ci-dessous).
Video: lab 7 : MACROS EXCEL VBA et tableau de bord
Voici une capture d`écran de l`échantillon d`un programme que j`utilise souvent pour faire WMIC appels Windows à partir d`Excel pour recueillir des informations sur PC.Comment toutes vos informations PC à l`aide d`un simple Excel VBA ScriptComment toutes vos informations PC à l`aide d`un simple Excel VBA ScriptExcel et 10 minutes de travail vous donnera des informations plus détaillées sur votre ordinateur que vous avez jamais pensé possible. Cela semble trop beau pour être vrai? C`est Windows, si vous savez comment 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 vais vous expliquer cela ci-dessous), alors vous devez le déclarer comme une variable « public » par la déclaration préfacer avec Public. Dans le cas contraire, les variables se déclarent en les préfacer avec le mot Faible.
Comme vous pouvez le voir, si la variable est un entier, il est préfacé avec int. Si c`est une chaîne, str. Cela aide à plus tard pendant que vous êtes la programmation parce que vous saurez toujours quel type de données que la variable contient, juste en regardant le nom. Vous remarquerez également que s`il y a quelque chose comme une chaîne qui est titulaire d`un nom d`ordinateur, la variable est appelée strComputerName.
Évitez de faire des noms de variables très alambiquée ou confus qui ne vous comprenez. Facilitez un autre programmeur à venir derrière vous et de comprendre ce que cela signifie!
Une autre erreur des gens quitte les noms de feuilles comme la valeur par défaut « Sheet1 », « Feuil2 », etc ... Cela ajoute encore plus de confusion à un programme. Au lieu de cela, nommez les feuilles afin qu`ils fassent sens.
De cette façon, lorsque vous faites référence au nom de la feuille votre code VBA Excel, vous faites référence à un nom qui est logique. Dans l`exemple ci-dessus, j`ai une feuille où je tire de l`information réseau, donc j`appelle la feuille « Réseau ». Maintenant, dans le code, chaque fois que je veux faire référence à la feuille de réseau, je peux le faire rapidement sans lever la tête ce numéro feuille est.En utilisant VBA pour automatiser Internet Explorer Sessions A partir d`une feuille de calcul ExcelEn utilisant VBA pour automatiser Internet Explorer Sessions A partir d`une feuille de calcul ExcelSon intégration avec Windows permet un contrôle d`Internet Explorer dans un certain nombre de façons surprenantes en utilisant Visual Basic pour Applications de script (VBA) à partir de toute application qui prend en charge, tels que Word, Outlook ou Excel.Lire la suite
2. Briser Au lieu de Looping
Un des plus problèmes communs plus récents programmeur ont quand ils commencent à écrire du code est à traiter correctement les boucles. Et puisque tant de gens qui utilisent Excel VBA sont très newbies de code, une mauvaise mise en boucle est épidémique.6 habitudes de vie que la programmation pourrait vous apprendre aujourd`hui6 habitudes de vie que la programmation pourrait vous apprendre aujourd`huiTout important que vous devez savoir sur la vie d`une vie réussie, vous pouvez obtenir à partir d`un programme informatique. Ne me croyez pas? Continuer à lire.Lire la suite
Looping est très courante dans Excel parce que souvent vous traitez des valeurs de données vers le bas une ligne entière ou une colonne, vous devez donc faire une boucle pour traiter tous. Les nouveaux programmeurs veulent souvent briser juste de sortir d`une boucle (soit une boucle For ou un look While) instantanément quand une certaine condition est vraie.
Vous pouvez ignorer la complexité du code ci-dessus, juste noter que dans l`instruction intérieure IF, il y a une option pour sortir de la boucle for si la condition est vraie. Voici un exemple simple:
pour x = 1 Pour 20If x = 6 Puis sortie Fory = x + i intRoomTempNext
Les nouveaux programmeurs prennent cette approche car il est facile. Lorsqu`une condition se produit que vous attendez pour quitter une boucle, la tentation de simplement sauter immédiatement sur elle est forte, mais ne le font pas.
Plus souvent qu`autrement, le code qui vient après « rupture » est important à traiter, même la dernière fois dans la boucle avant de quitter. Un plus propre et plus moyen de gérer des conditions professionnelles où vous voulez laisser une boucle à mi-parcours, est juste d`inclure cette condition de sortie dans quelque chose comme une déclaration While.
Tandis que (Xgt; =1 ET xlt; =20 ET xlt;gt;6)pour x = 1 Pour 20y = x + intRoomTempNext iWend
Cela permet un flux logique de votre code, la dernière course à travers lorsque x est 5, puis sortir avec élégance une fois que la boucle For compte jusqu`à 6. Pas besoin d`inclure maladroits commandes EXIT ou PAUSE mi-boucle.
3. Ne pas utiliser des tableaux
Une autre erreur intéressante nouveaux programmeurs VBA est d`essayer de traiter tout à l`intérieur de nombreuses boucles imbriquées qui filtrent à travers des lignes et des colonnes au cours du processus de calcul.Les bases de programmation informatique 101 - Variables et types de donnéesLes bases de programmation informatique 101 - Variables et types de donnéesAprès avoir présenté et a parlé un peu de la programmation orientée objet avant et où son homonyme vient, je pensais qu`il est temps de passer par les bases absolues de la programmation d`une manière spécifique non linguistique. Ce...Lire la suite
Bien que cela puisse fonctionner, il pourrait aussi conduire à des problèmes de performance, si vous avez constamment pour effectuer les mêmes calculs sur les mêmes numéros dans la même colonne. Parcourons donc cette colonne et l`extraction des valeurs à chaque fois est non seulement fastidieux de programme, il est un tueur sur votre processeur. Une façon plus efficace de gérer de longues listes de numéros est d`utiliser un tableau.
Si vous ne l`avez jamais utilisé un tableau avant, ne pas avoir peur. Imaginez un tableau comme un bac à glaçons avec un certain nombre de « cubes » que vous pouvez mettre des informations en. Les cubes sont numérotés de 1 à 12, et comment vous « mettez » les données en eux.
Vous pouvez facilement définir un tableau en tapant simplement Dim arrMyArray (12) Entier.
Cela crée un « plateau » avec 12 emplacements disponibles pour que vous puissiez remplir.
Voici ce que le code en boucle ligne sans un tableau pourrait ressembler à:
sous Test1()Dim x As IntegerintNumRows = Gamme("A2", Gamme("A2").Fin(xlDown)).Rows.CountRange("A2").SelectFor x = 1 Pour intNumRowsIf Range("UNE" & str(X)).valeur lt; 100 puisintTemp = (Gamme("UNE" & str(X)).valeur) * 32 - 100End IfActiveCell.Offset(dix).Sous SelectNextEnd
Dans cet exemple, le code est en cours de traitement vers le bas à travers chaque cellule dans la plage et en effectuant le calcul de la température.
Plus tard dans le programme, si jamais vous voulez effectuer un autre calcul sur ces mêmes valeurs, vous auriez à dupliquer ce code, processus à travers toutes ces cellules, et d`effectuer votre nouveau calcul.
Maintenant, si vous utilisez plutôt un tableau, vous pouvez stocker les 12 valeurs de la ligne dans la baie de stockage pratique. Puis, plus tard, chaque fois que vous voulez exécuter des calculs par rapport à ces chiffres, ils sont déjà en mémoire et prêt à partir.
sous Test1()Dim x As IntegerintNumRows = Gamme("A2", Gamme("A2").Fin(xlDown)).Rows.CountRange("A2").SelectFor x = 1 Pour intNumRowsarrMyArray(x-1) = Gamme("UNE" & str(X)).valeur)ActiveCell.Offset(dix).Sous SelectNextEnd
Le pour pointer vers l`élément de tableau « x-1 » est seulement nécessaire parce que la boucle For commence à 1. Les éléments de tableau doivent commencer à 0.
Mais une fois que vous avez votre choix tous chargés avec les valeurs de la ligne, plus tard dans le programme, vous pouvez simplement fouetter ensemble tous les calculs que vous voulez en utilisant le tableau.
sous TempCalc()pour x = 0 Pour UBound(arrMyArray)arrMyTemps(y) = arrMyArray(X) * 32 - Sous 100NextEnd
Cet exemple passe par l`ensemble du réseau de ligne (UBound vous donne le nombre de valeurs de données dans le tableau), fait le calcul de la température, et met ensuite dans un autre tableau appelé arrMyTemps.
Vous pouvez voir combien plus simple le second code de calcul est. Et à partir de ce moment, chaque fois que vous voulez effectuer des calculs plus sur le même ensemble de nombres, votre tableau est déjà pré-chargé et prêt à partir.
4. Utilisation Trop de références
Que vous la programmation en Visual Basic ou VBA à part entière, vous aurez besoin d`inclure « références » pour accéder à certaines fonctionnalités, comme l`accès à une base de données d`accès ou de sortie à l`écriture d`un fichier texte.
Les références sont un peu comme des « bibliothèques » rempli de fonctionnalités que vous pouvez puiser dans, si vous activez ce fichier. Vous pouvez trouver des références en vue du 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 sélectionnées pour votre projet VBA en cours.
Dans mon expérience, les sélections ici peuvent changer d`un Excel installer à un autre, et d`un PC à un autre. Beaucoup dépend de ce que les autres ont fait avec Excel sur ce PC, si certains add-ons ou fonctionnalités ont été ajoutées ou activées, ou si d`autres programmeurs auraient pu utiliser certaines références dans des projets antérieurs.
La raison pour laquelle il est bon de vérifier cette liste est parce que les références inutiles ressources système de déchets. Si vous n`utilisez pas la manipulation de fichiers XML, alors pourquoi garder sélectionné Microsoft XML? si vous ne communiquez pas avec une base de données, puis supprimer Microsoft DAO. Si vous n`écrivez pas la sortie vers un fichier texte, puis retirez Microsoft Scripting Runtime.
Si vous n`êtes pas sûr de ce que ces références sélectionnées font, 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 pour parcourir.
Une fois sélectionné, vous verrez tous les objets et les fonctions disponibles, que vous pouvez cliquer pour en savoir plus sur.
Par exemple, lorsque je clique sur la bibliothèque DAO, il devient rapidement évident que tout cela est sur la connexion et la communication avec les bases de données.
La réduction du nombre de références que vous utilisez dans votre projet de programmation est juste du bon sens, et contribuera à rendre votre globale de l`application plus efficace.
Programmation VBA dans Excel
L`idée de réalité écrire du code dans Excel fait peur beaucoup de gens, mais cette peur est vraiment pas nécessaire. Visual Basic pour Applications est une langue très simple à apprendre, et si vous suivez les pratiques courantes de base mentionnées ci-dessus, vous assurer que votre code est propre, efficace et facile à comprendre.Gain de temps avec des opérations de texte dans ExcelGain de temps avec des opérations de texte dans ExcelExcel peut faire de la magie avec les chiffres et il peut traiter les caractères aussi bien. Ce manuel montre comment analyser, convertir, remplacer et modifier le texte dans les feuilles de calcul. Ces bases vous permettront d`effectuer des transformations complexes.Lire la suite
codez-vous en VBA? Quel genre de leçons avez-vous appris au fil des ans que vous pouvez partager avec d`autres lecteurs d`apprentissage VBA pour la première fois? Partagez vos conseils dans la section commentaires ci-dessous!