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 :
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 !
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