Cours gratuits » Cours informatique » Cours programmation » Cours visual basic » Tutoriel avancé sur le langage de programmation Visual Basic pour Excel

Tutoriel avancé sur le langage de programmation Visual Basic pour Excel


Télécharger



★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Visual Basic pour Excel

Tableurs et comptes nationaux

Les comptables nationaux utilisent généralement des logiciels développés spécialement à leur attention pour répondre à leurs besoins spécifiques. Cependant, il est rare que tout le travail d'élaboration des comptes nationaux puisse être réalisé intégralement avec ces logiciels. En effet, les comptables nationaux doivent parfois s'adapter à des circonstances exceptionnelles, par exemple lorsque de nouvelles sources apparaissent ou que des anciennes disparaissent de manière imprévue. De plus, les experts en charge de la vérification des comptes nationaux des états membres de l'Union Européenne ne peuvent généralement pas disposer de tels logiciels et ils doivent être capables de s'adapter à une grande variété de situations.

Les tableurs, notamment Excel qui le plus utilisé actuellement, peuvent s'avérer extrêmement utiles pour eux, pour ne pas dire in

dispensables. Cependant, l'utilisation d'un tableur pour traiter de grandes masses de données n'est pas si simple et les erreurs ne sont pas si faciles à détecter lorsque de nombreux calculs doivent s'enchaîner. Aussi, est-il important d'utiliser les tableurs de la manière la plus efficace possible en utilisant leurs capacités les mieux adaptées au travail d'élaboration des comptes nationaux. Parmi ces capacités figure incontestablement la disponibilité d'un langage de programmation. Pour Excel ce langage de programmation est Visual Basic.

Création d'une macro

Visual Basic est un langage de programmation qui confère à Excel une grande puissance. Il peut être utilisé pour traiter de nombreux problèmes, par exemple le passage des données des comptabilités des entreprises aux estimations de la comptabilité nationale. Nous allons donc présenter quelques-unes de ses fonctionnalités dans les rubriques suivantes :

Le langage Visual Basic étant utilisé dans les macros d'Excel nous devons d'abord créer une macro. Ouvrons donc une nouvelle feuille d'Excel et allons dans le menu Outils de la barre de menus. Sélectionnons l'option Macro puis, dans le menu déroulant Macros.

Dans la zone Nom de la macro qui apparaît alors écrivons le nom que nous avons sélectionné pour la macro, par exemple Essai, puis cliquons sur le bouton Créer

On passe alors dans l'éditeur Visual Basic. Dans la zone située à droite de l'écran apparaissent les lignes suivantes :

 

 

 

 

Dans cette macro, la variable t qui est destinée à recevoir la somme est d'abord initialisée à zéro, ce qui n'est pas obligatoire dans ce cas précis puisqu'une nouvelle variable est initialisée à zéro, mais c'est une règle de précaution lorsque l'on procède par itérations. La boucle correspond à l'instruction For Next. Cette instruction fait appel à une variable de comptage, ici i qui va prendre successivement toutes les valeurs comprises entre 1 et 10. Toutes les instructions comprises entre For et Next seront exécutées successivement pour chaque valeur de i, c'est-à-dire 1, 2, 3 9, 10.

f.Cells(i,2) désigne la cellule située à la ième ligne de la deuxième colonne de la feuille f, c'est-à-dire la feuille Somme. Au début de la boucle, le compteur i prend la valeur 1. f.Cells(i,2) devient f.Cells(1,2) qui a la valeur 50, cette valeur est affectée à la variable a

A la ligne suivante, dans la partie droite de l'égalité, la variable t vaut 0 car c'est la valeur qui lui a été affectée au début du programme, t+a vaut donc 0+50=50. Cette valeur de 50 est affectée à la variable située à gauche du signe égal, c'est-à-dire t. Le programme arrive ensuite à l'instruction Next i, il donne alors à i la valeur 2 et revient à la première ligne après l'instruction For.

La variable a prend alors la valeur de f.Cells(2,2), c'est-à-dire 100. A la ligne suivante, dans la partie droite, la variable t a la valeur 50 qui lui a été affectée au tour précédent, t+a a donc la valeur 50+100=150. Cette valeur est alors affectée à la variable de la partie gauche, c'est-à-dire t qui devient donc égale à 150. Le programme arrive ensuite à l'instruction Next et donne au compteur i la valeur 2. Il reprend ensuite à la première ligne située après l'instruction Next.

Ce processus va se poursuivre jusqu'à ce que le compteur parvienne à 10. A la fin de la dixième boucle le programme continue au delà de l'instruction Next. La variable t contient alors la somme des 10 nombres de la deuxième colonne de la feuille Somme. Cette somme est affichée dans la cellule correspondant à la douzième ligne de la deuxième colonne de la feuille Somme. Ce programme montre la manière classique de calculer une somme de valeurs avec Visual Basic mais il en existe d'autres.

Une autre manière de réaliser des boucles est d'utiliser l'instruction Do While Loop. Celle-ci va effectuer une boucle tant qu'une condition est vérifiée. Par exemple, nous aurions pu écrire le programme précédent de la manière suivante :

Sub Somme1()

Set f = Sheets("Somme") t = 0 i = 1

Do While i <= 10     a = f.Cells(i, 2)     t = t + a

    i = i + 1

Loop

f.Cells(12, 2) = t

End Sub

Dans cette macro la boucle va de l'instruction Do While à l'instruction Loop et elle est éffectuée tant que la variable i est inférieure ou égale à 10.

Il est possible également d'utiliser la boucle For each Next en association avec la fonction Array() afin de sélectionner certaines valeurs dans une liste. Par exemple, si nous voulons faire le toatal des lignes 2, 7 et 9, nous pouvons utiliser la macro suivante :

Sub Somme1()

Set f = Sheets("Somme")

 

L'instruction Dim précise que le tableau a 2 dimensions, la première repérée par un indice qui va de 0 à 5, la seconde par un indice qui va de 0 à 2. Ensuite, nous voyons l'utilisation de boucles imbriquées puisque nous avons deux groupes d'instructions For Next, la première qui utilise le compteur i, la seconde qui utilise le compteur j. Ces deux boucles doivent être impérativement emboîtées, c'est-à-dire respecter l'ordre suivant : For         i

     For                                                                                                                                       j

     Next                                                                                                                                     j

Next i

Dans la première partie, la variable A est remplie à partir des cellules de la feuille, dans la seconde partie, les valeurs contenues dans la variable A sont recopiées sur la feuille en décalant les lignes de 6 vers le bas. La transposition se fait extrêmement simplement en intervertissant dans f.Cells(i,j) i par j.

REMARQUE : lorsqu'on utilise Cells(i,j), il peut être intéressant, au moins temporairement, de changer la présentation de la feuille de calcul en faisant apparaître les numéros des colonnes. Pour cela, il faut aller dans le menu Outils d'Excel, choisir Options, puis Général et cliquer sur l'option Style de référence L1C1.

 

 

 


148