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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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...​
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour