Ce didacticiel vous apprendra à interagir avec les valeurs de cellule à l'aide de VBA.
Définir la valeur de la cellule
Pour définir une valeur de cellule, utilisez la propriété Value de l'objet Range ou Cells.
Plage.Valeur & Cellules.Valeur
Il existe deux manières de référencer des cellules dans VBA :
- Objet de plage - Plage ("A2").Valeur
- Objet Cellules - Cellules(2,1).Valeur
L'objet Range vous permet de référencer une cellule en utilisant la notation standard "A1".
Cela définira la valeur de la plage A2 = 1 :
1 | Plage("A2").Valeur = 1 |
L'objet Cells vous permet de référencer une cellule par son numéro de ligne et son numéro de colonne.
Cela définira la valeur de la plage A2 = 1 :
1 | Cellules(2,1).Valeur = 1 |
Notez que vous entrez d'abord le numéro de ligne :
1 | Cellules(Row_num, Col_num) |
Définir les valeurs de plusieurs cellules à la fois
Au lieu de référencer une seule cellule, vous pouvez référencer une plage de cellules et modifier toutes les valeurs de cellule à la fois :
1 | Plage("A2:A5").Valeur = 1 |
Définir la valeur de la cellule - Texte
Dans les exemples ci-dessus, nous définissons la valeur de la cellule égale à un nombre (1). Au lieu de cela, vous pouvez définir la valeur de la cellule égale à une chaîne de texte. En VBA, tout le texte doit être entouré de guillemets :
1 | Plage("A2").Valeur = "Texte" |
Si vous n'entourez pas le texte de guillemets, VBA pensera que vous faites référence à une variable…
Définir la valeur de la cellule - Variable
Vous pouvez également définir une valeur de cellule égale à une variable
1234 | Dim strText en tant que chaînestrText = "Chaîne de texte"Range ("A2").Valeur = strText |
Obtenir la valeur de la cellule
Vous pouvez obtenir des valeurs de cellule en utilisant la même propriété Value que nous avons utilisée ci-dessus.
Obtenir la valeur ActiveCell
Pour obtenir la valeur ActiveCell et l'afficher dans une boîte de message :
1 | MsgBox ActiveCell.Value |
Attribuer une valeur de cellule à une variable
Pour obtenir une valeur de cellule et l'affecter à une variable :
123 | Dim var comme variantevar = Range("A1").Valeur |
Ici, nous avons utilisé une variable de type Variant. Les variables variantes peuvent accepter n'importe quel type de valeurs. Au lieu de cela, vous pouvez utiliser un type de variable String :
123 | Dim var en tant que chaînevar = Range("A1").Valeur |
Un type de variable String acceptera des valeurs numériques, mais il stockera les nombres sous forme de texte.
Si vous savez que la valeur de votre cellule sera numérique, vous pouvez utiliser un type de variable double (les variables doubles peuvent stocker des valeurs décimales) :
123 | Dim var comme Doublevar = Range("A1").Valeur |
Cependant, si vous essayez de stocker une valeur de cellule contenant du texte dans une variable double, vous recevrez une erreur de non-concordance de type :
Autres exemples de valeurs de cellule
Copier la valeur de la cellule
Il est facile de définir une valeur de cellule égale à une autre valeur de cellule (ou « Copier » une valeur de cellule) :
1 | Plage("A1").Valeur = Plage("B1").Valeur |
Vous pouvez même le faire avec des plages de cellules (les plages doivent être de la même taille) :
1 | Plage("A1:A5").Valeur = Plage("B1:B5").Valeur |
Comparer les valeurs des cellules
Vous pouvez comparer les valeurs des cellules à l'aide des opérateurs de comparaison standard.
Testez si les valeurs des cellules sont égales :
1 | MsgBox Range("A1").Valeur = Range("B1").Valeur |
Renvoie TRUE si les valeurs des cellules sont égales. Sinon FAUX.
Vous pouvez également créer une instruction If pour comparer les valeurs des cellules :
12345678910111213 | Si Plage("A1").Valeur > Plage("B1").Valeur AlorsPlage("C1").Valeur = "Supérieur à"Elseif Range("A1").Valeur = Range("B1").Value ThenPlage("C1").Valeur = "Égal"AutrePlage("C1").Valeur = "Moins de"Fin si |
Vous pouvez comparer le texte de la même manière (rappelez-vous que VBA est sensible à la casse)