Valeur de cellule VBA - Obtenir, définir ou modifier

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)

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave