Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 [VBA] affecter la valeur d'une cellule à une autre cellule

shanon7

XLDnaute Junior
Bonjour,

Je débute en VBA et comme indiqué dans le titre, j'aimerais savoir comment affecter la valeur d'une cellule spécifiée à une cellule active.

Par exemple : j'ai un classeur avec 2 feuilles et j'aimerais écrire une macro qui permette d'affecter la valeur de la cellule B2 de la 2ème feuille de mon classeur à la cellule active (donc n'importe quelle cellule de ma feuille de calcul).

Merci d'avance à quiconque voudra bien m'éclairer !!
 
Solution
réponse à ton post #4

non, ce n'est pas ce que tu as écrit ; on utilise B2 (sans guillemets ni crochets) dans une formule de la feuille de calcul ; en VBA, on utilise Range("B2") ; [B2] est une notation abrégée de Range("B2") : un appel implicite est fait automatiquement à la fonction Evaluate() pour évaluer [B2] ; complément :

tu peux aussi écrire Range("B2") ainsi : Cells(2, 2) ou Cells(2, "B")

attention : pour Cells() c'est d'abord la ligne en 1er paramètre, puis la colonne en 2ème paramètre.​



en VBA, y'a souvent plusieurs façons d'écrire une même instruction...​

shanon7

XLDnaute Junior
Bonjour,

Ah yes merci beaucoup!!

Alors, pour affecter à la cellule active la valeur d'une cellule c'est toujours la syntaxe ActiveCell = [NomFeuille!Cellule] ? Et si j'avais voulu récupérer la valeur de la cellule B2 située sur la feuille 1 (dans le cas où mon classeur ne comporterait qu'une seule feuille) ce serait pareil ou bien mentionner la feuille1 serait inutile étant donné qu'elle serait la seule feuille de mon classeur ?

Merci encore!

Shanon
 

soan

XLDnaute Barbatruc
Inactif
réponse à ton post #3

* pour l'exo de ton post #1, on aurait aussi pu écrire :

ActiveCell = Worksheets("Feuil2").Range("B2")

ou :

ActiveCell = Worksheets("Feuil2").[B2]

* effectivement, avec une seule feuille, mentionner le nom de la feuille est inutile car sans référence de feuille explicite, c'est la feuille active qui est utilisée ; donc :

ActiveCell = Range("B2") ou ActiveCell = [B2]

soan
 

soan

XLDnaute Barbatruc
Inactif
réponse à ton post #4

non, ce n'est pas ce que tu as écrit ; on utilise B2 (sans guillemets ni crochets) dans une formule de la feuille de calcul ; en VBA, on utilise Range("B2") ; [B2] est une notation abrégée de Range("B2") : un appel implicite est fait automatiquement à la fonction Evaluate() pour évaluer [B2] ; complément :

tu peux aussi écrire Range("B2") ainsi : Cells(2, 2) ou Cells(2, "B")

attention : pour Cells() c'est d'abord la ligne en 1er paramètre, puis la colonne en 2ème paramètre.​



en VBA, y'a souvent plusieurs façons d'écrire une même instruction. (mais certaines instructions, pas toutes !)

soan
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…