Valeur de cellule VBA – Obtenir, Définir ou Modifier
Ce tutoriel vous apprendra à interagir avec les valeurs des cellules en utilisant VBA.
Définir la valeur d’une cellule
Pour définir la valeur d’une cellule, utilisez la propriété Value de l’objet Range ou Cells.
Range.Value et Cells.Value
Il existe deux façons de référencer une ou plusieurs cellules en VBA :
- Objet Range – Range(« A2 »).Value
- Objet Cells – Cells(2,1).Value
L’objet Range vous permet de référencer une cellule en utilisant la notation standard « A1 ».
Ainsi, la valeur de la plage A2 sera fixée à 1 :
Range("A2").Value = 1
L’objet Cells vous permet de faire référence à une cellule par son numéro de ligne et de colonne.
La valeur de la plage A2 sera ainsi fixée à 1 :
Cells(2,1).Value = 1
Remarquez que vous saisissez d’abord le numéro de ligne :
Cells(Ligne_no, Col_no)
Définir les valeurs de plusieurs cellules à la fois
Au lieu de faire référence à une seule cellule, vous pouvez faire référence à une plage de cellules et modifier toutes les valeurs des cellules en une seule opération :
Range("A2:A5").Value = 1
Définir la valeur d’une cellule – Texte
Dans les exemples ci-dessus, nous avons défini la valeur de la cellule comme étant un nombre (1). Il est également possible de définir la valeur de la cellule comme étant une chaîne de charactère (texte). En VBA, tout texte doit être entre guillemets :
Range("A2").Value = "Texte"
Si le texte n’est pas entre guillemets, VBA pensera que vous faites référence à une variable…
Définir la valeur d’une cellule – Variable
Vous pouvez également définir une valeur de cellule égale à une variable
Dim strTexte as String
strTexte = "Chaîne de texte"
Range("A2").Value = strTexte
Obtenir la valeur d’une cellule
Vous pouvez obtenir les valeurs des cellules en utilisant la même propriété Value que celle utilisée ci-dessus.
Obtenir la valeur de la cellule active
Pour obtenir la valeur de la cellule active et l’afficher dans une boîte de message :
MsgBox ActiveCell.Value
Assigner la valeur d’une cellule à une variable
Pour obtenir la valeur d’une cellule et l’affecter à une variable :
Dim var as Variant
var = Range("A1").Value
Nous avons utilisé ici une variable de type Variant. Les variables de type Variant peuvent accepter n’importe quel type de valeur. À la place, vous pourriez utiliser une variable de type String :
Dim var as String
var = Range("A1").Value
Une variable de type String accepte les valeurs numériques, mais elle stocke les chiffres 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 Double peuvent stocker des valeurs décimales) :
Dim var as Double
var = Range("A1").Value
Toutefois, si vous tentez de stocker une valeur de cellule contenant du texte dans une variable double, vous recevrez une erreur d’incompatiblité de type :
Autres exemples de valeurs de cellule
Copier la valeur d’une cellule
Il est facile de définir une valeur de cellule égale à une autre valeur de cellule (ou « Copier » une valeur de cellule) :
Range("A1").Value = Range("B1").Value
Vous pouvez même le faire avec des plages de cellules (les plages doivent avoir la même taille) :
Range("A1:A5").Value = Range("B1:B5").Value
Comparer les valeurs des cellules
Vous pouvez comparer les valeurs des cellules à l’aide des opérateurs de comparaison standards.
Testez si les valeurs des cellules sont égales :
MsgBox Range("A1").Value = Range("B1").Value
Renvoie VRAI si les valeurs des cellules sont égales. Sinon, FAUX.
Vous pouvez également créer une Instruction If pour comparer les valeurs des cellules :
If Range("A1").Value > Range("B1").Value Then
Range("C1").Value = "Supérieur à"
ElseIf Range("A1").Value = Range("B1").Value Then
Range("C1").Value = "Égal"
Else
Range("C1").Value = "Inférieur à"
End If
Vous pouvez comparer du texte de la même manière (Rappelez-vous que VBA est sensible à la casse)