Travail avec des cellules en VBA

Quelques actions de base sur les cellules en VBA

En VBA, indiquer comment gérer les cellules, se déplacer entre elles, récupérer leurs contenus ou les remplir avec des données est essentiel. Pour chacune de ces opérations, VBA a du code spécifique (programmation Objet). Pour vous aider à agir sur les cellules, voici quelques actions intéressantes parmi les plus courantes.
 

Plan de site


 
La liste des actions, mais aussi des propriétés disponibles, s’affichera dans VBA pour vous aider lors de la saisie, comme par exemple :

Actions sur les cellules Excel en VBA

Normalement, cette liste s’affiche automatiquement mais parfois, il faut « l’appeler »: Vous pouvez faire cela avec le raccourci clavier Ctrl & j

Indiquer quelle cellule traiter (plusieurs instructions disponibles)

Voici le code VBA dont vous aurez besoin: RANGE("A1")  qui indique la cellule A1. C’est la plus simple et la plus directe.

Cette commande peut aussi être traduite en  CELLS(1,1) . Les chiffres indiquant les numéros de lignes et de colonnes. Celle-ci est assez pratique quand on veut remplacer le numéro d’une ligne ou d’une colonne par une variable (valeur qui sera déterminée par une autre action, par exemple, la dernière ligne du tableau quand celui-ci peut évoluer). Cela va aussi vous servir lors de l’utilisation des boucles.

Une autre instruction correspond à  ACTIVECELL . Cependant, il est nécessaire que l'emplacement ait déjà été défini si vous souhaitez démarrer à un endroit bien précis. Elle permet d’éviter la redondance de saisie et est plus rapide.

 

Se positionner sur une cellule

Si vous utilisez la commande  RANGE , vous pourriez vous positionner sur la cellule B3 en utilisant le code suivant:

Range("B3").Select 

ou

Cells(2,3).Select
La commande OFFSET est très pratique en VBA. A nouveau, surtout lors de l’utilisation des boucles. Elle correspond à la fonction DECALER dans Excel. Elle vous permet d’identifier une cellule par rapport à une autre.
Ainsi, si vous êtes en A1 (vous en êtes sûr), pour aller en B3, il vous faut:

ActiveCell.Offset(2,1).Select

Cela correspond à un décalage de 2 lignes (allant de 1 à 3) et d’une colonne (allant de A vers B).

Enregistrer la valeur d’une cellule dans une variable

Quelque soit le moyen utilisé pour désigner la cellule, la recherche de la valeur se fait par la propriété Value. Ainsi, la variable AGE contiendra l’information de la cellule A2 avec le code qui suit:

AGE = Range("A2").Value

Cette valeur peut être transposée directement dans une autre cellule en écrivant:

Range("B3").Value = Range("A2").Value

Ici, le contenu de « A2 » sera copiée dans la cellule « B3 ».

 

Mémoriser la position d’une cellule

Chaque cellule a sa propre adresse. C’est donc ce que nous allons demander à récupérer dans une variable.

POSITION = Activecell.Address
En utilisant la variable dans la fonction Range, on reviendra systématiquement à cette première adresse:

Range(POSITION).Select 

 

Donner un nom à une cellule

Vous pouvez, dans votre feuille Excel, donner un nom à une cellule, ou à une plage de cellule, afin d’intégrer ce nom plus facilement dans vos formules ou vos graphiques. Dans VBA, c’est la même chose et le même principe. Pour nommer la cellule A1, le code nécessaire est:

Range("A1").Name = "Tintin"

 

Effacer le contenu d’une cellule

Pour vider le contenu d’une cellule dans vos programmes, il vous faudra utiliser:

Range("A1").Clear 

ou pour une plage entière:

Range("A1:A5").Clear

Et comme VBA est un langage très flexible, il vous permet de faire la même chose de plusieurs manières. Ici, le même résultat peut être obtenu par:

Range("A1").Value = "" 

ou

Range("A1:A5").Value = ""
À vous de voir le style qui vous convient le mieux.

Voilà de quoi tester un minima les actions sur des cellules. A vous de mixer les actions pour réaliser ce dont vous avez besoin.

 

Bon code !



1 réflexion sur “Quelques actions de base sur les cellules en VBA”

  1. Bonjoyr
    je voudrait savoir comment apres avoir fait une saisie dans la celulle A1 a laide InputBox comment passé
    a la celulle suivante Automatiquement pour la prochaine saisie
    Je vous remercie d’avance

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.