Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Copie vers cellule active

3 réponses
Avatar
emjupi
Bonjour,
Je débute en VBA
Je souhaite copier la cellule A1 de la Feuil1 vers la Feuil2 et à un emplacement décalé d'une ligne vers le bas de la cellule active située, par exemple en A1 de la Feuil2.
Le développement à terme portera sur la copie de plusieurs cellules non continues de la Feuil1 vers la Feuil2 et à des positions relatives par rapport à la cellule active de cette Feuil2

Le code suivant ne fonctionne pas

Range("A1").Copy Worksheets("Feuil2").Range(ActiveCell.Offset(2,1))

Merci d'avance pour votre aide

3 réponses

Avatar
Gloops
emjupi a écrit, le 04/05/2013 23:14 :
Bonjour,
Je débute en VBA
Je souhaite copier la cellule A1 de la Feuil1 vers la Feuil2 et à un emplacement
décalé d'une ligne vers le bas de la cellule active située, par e xemple en A1 de
la Feuil2.
Le développement à terme portera sur la copie de plusieurs cellules non
continues de la Feuil1 vers la Feuil2 et à des positions relatives pa r rapport à
la cellule active de cette Feuil2

Le code suivant ne fonctionne pas

Range("A1").Copy Worksheets("Feuil2").Range(ActiveCell.Offset(2,1))

Merci d'avance pour votre aide




Bonjour,

ça devrait ressembler à

Worksheets("Feuil1").Activate
Range("A1").Copy
Worksheets("Feuil2").Activate
Range("A1").Offset(2, 1).Select
Worksheets("Feuil2").Paste

Mais est-ce vraiment nécessaire de procéder par copier/coller ?

On peut aussi dire
Worksheets("Feuil2").Range("A1").Offset(2, 1) =
Worksheets("Feuil1").Range("A1")

Attention comme ça on n'a copié que le contenu.
Avatar
emjupi
Le dimanche 05 Mai 2013 à 20:08 par Gloops :
emjupi a écrit, le 04/05/2013 23:14 :
Bonjour,
Je débute en VBA
Je souhaite copier la cellule A1 de la Feuil1 vers la Feuil2 et à un
emplacement
décalé d'une ligne vers le bas de la cellule active
située, par e xemple en A1 de
la Feuil2.
Le développement à terme portera sur la copie de plusieurs
cellules non
continues de la Feuil1 vers la Feuil2 et à des positions relatives pa r
rapport à
la cellule active de cette Feuil2

Le code suivant ne fonctionne pas

Range("A1").Copy
Worksheets("Feuil2").Range(ActiveCell.Offset(2,1))

Merci d'avance pour votre aide





Bonjour,

ça devrait ressembler à

Worksheets("Feuil1").Activate
Range("A1").Copy
Worksheets("Feuil2").Activate
Range("A1").Offset(2, 1).Select
Worksheets("Feuil2").Paste

Mais est-ce vraiment nécessaire de procéder par copier/coller ?

On peut aussi dire
Worksheets("Feuil2").Range("A1").Offset(2, 1) =
Worksheets("Feuil1").Range("A1")

Attention comme ça on n'a copié que le contenu.


Merci pour cette réponse
J'avais testé la première hypothèse qui fonctionne. Elle est cependant un peu lourde car je dois copier plus de 10 cellules et lorsque la macro s'exécute, les feuilles s'ouvrent et se ferment à chaque copie ce qui n'est pas très agréable visuellement.

Par contre, je n'avais pas pensé à la fonction =
Cependant dans mon problème, la cellule active de la feuille de destination sera une variable(résultat d'un test précédent) et je dois donc faire référence uniquement à cette cellule active pour positionner l'emplacement de la cellule de destination par référence relative, d'où le recours à la fonction ActiveCell.Offset(l.c). C'est la syntaxe de cette fonction qui bloque.

Merci pour vos lumières
Avatar
Gloops
emjupi a écrit, le 05/05/2013 21:41 :
Merci pour cette réponse
J'avais testé la première hypothèse qui fonctionne. Elle est cepe ndant un peu
lourde car je dois copier plus de 10 cellules et lorsque la macro s'exé cute, les
feuilles s'ouvrent et se ferment à chaque copie ce qui n'est pas trè s agréable
visuellement.



http://support.microsoft.com/kb/464395/fr


Par contre, je n'avais pas pensé à la fonction =
Cependant dans mon problème, la cellule active de la feuille de desti nation sera
une variable(résultat d'un test précédent) et je dois donc faire référence
uniquement à cette cellule active pour positionner l'emplacement de l a cellule
de destination par référence relative, d'où le recours à la fon ction
ActiveCell.Offset(l.c). C'est la syntaxe de cette fonction qui bloque.




Oui je me suis un peu douté qu'il devait y avoir quelque chose comme ç a,
mais je ne vois pas le problème ...