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

[newbie]Copier-coller en VBA

11 réponses
Avatar
erwan
Bonjour,
Est ce que quelqu'un pourrait me donner le code necessaire en VBA pour
coller les cellules A1 =E0 A10 de la feuille1 vers les cellules A1 =E0 A10
de la feuille 2 SANS QUITTER ma feuille active qui est soit la feuille
3 soit la feuille 4...
Merci d'avance pour votre aide!
En utilisant, la m=E9thode Select, j'arrrive =E0 faire mon copier-coller
mais je ne retourne pas =E0 ma feuille d'origine...
Merci d'avance
Erwan

10 réponses

1 2
Avatar
isabelle
bonjour Erwan,

Sheets("Feuil1").Range("A1:A10").Copy Sheets("Feuil2").Range("A1")

isabelle

Bonjour,
Est ce que quelqu'un pourrait me donner le code necessaire en VBA pour
coller les cellules A1 à A10 de la feuille1 vers les cellules A1 à A10
de la feuille 2 SANS QUITTER ma feuille active qui est soit la feuille
3 soit la feuille 4...
Merci d'avance pour votre aide!
En utilisant, la méthode Select, j'arrrive à faire mon copier-coller
mais je ne retourne pas à ma feuille d'origine...
Merci d'avance
Erwan



Avatar
ChrisV
Bonjour Erwan,

Sub zaza()
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10].Value
End Sub

ou encore, avec les plage nommées: Feuil1!A1:A10 (Zn) et Feuil2!A1:A10
(desT)

Sub zaza()
[desT] = [Zn].Value
End Sub


ChrisV


"erwan" a écrit dans le message de news:

Bonjour,
Est ce que quelqu'un pourrait me donner le code necessaire en VBA pour
coller les cellules A1 à A10 de la feuille1 vers les cellules A1 à A10
de la feuille 2 SANS QUITTER ma feuille active qui est soit la feuille
3 soit la feuille 4...
Merci d'avance pour votre aide!
En utilisant, la méthode Select, j'arrrive à faire mon copier-coller
mais je ne retourne pas à ma feuille d'origine...
Merci d'avance
Erwan
Avatar
erwan
On 30 oct, 23:17, isabelle wrote:
bonjour Erwan,

Sheets("Feuil1").Range("A1:A10").Copy Sheets("Feuil2").Range("A1")

Super merci!

Et si je veux que le coller ne colle que les valeurs et pas les
formules?
Merci encore!
Erwan

isabelle


Bonjour,
Est ce que quelqu'un pourrait me donner le code necessaire en VBA pour
coller les cellules A1 à A10 de la feuille1 vers les cellules A1 à A10
de la feuille 2 SANS QUITTER ma feuille active qui est soit la feuille
3 soit la feuille 4...
Merci d'avance pour votre aide!
En utilisant, la méthode Select, j'arrrive à faire mon copier-coller
mais je ne retourne pas à ma feuille d'origine...
Merci d'avance
Erwan




Avatar
papou
Bonjour ChrisV
Une subtilité m'échappe ;-)
Pourrais-tu expliquer pourquoi tu intègres une propriété .Value sur
l'évaluation de la deuxième plage de cellules ?
Si je fais le test sans cette propriété j'obtiens le résultat attendu.
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]

J'aurai d'ailleurs personnellement tendance à plutôt proposer :
Sheets('Feuil2").Range("A1:A10") = Sheets("Feuil1").[A1:A10]
Puisqu'il ne m'apparaît pas utile d'évaluer des plages qui vont recevoir une
valeur.

Merci pour ton éclaircissement.

Cordialement
Pascal

"ChrisV" a écrit dans le message de news:

Bonjour Erwan,

Sub zaza()
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10].Value
End Sub

ou encore, avec les plage nommées: Feuil1!A1:A10 (Zn) et Feuil2!A1:A10
(desT)

Sub zaza()
[desT] = [Zn].Value
End Sub


ChrisV


"erwan" a écrit dans le message de news:

Bonjour,
Est ce que quelqu'un pourrait me donner le code necessaire en VBA pour
coller les cellules A1 à A10 de la feuille1 vers les cellules A1 à A10
de la feuille 2 SANS QUITTER ma feuille active qui est soit la feuille
3 soit la feuille 4...
Merci d'avance pour votre aide!
En utilisant, la méthode Select, j'arrrive à faire mon copier-coller
mais je ne retourne pas à ma feuille d'origine...
Merci d'avance
Erwan




Avatar
MichDenis
| Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]

D'entrée de jeu, l'utilisation des crochets n'apporte rien dans ce type de situation
si ce n'est qu'un peu de confusion aux néophytes qui fréquentent ce forum.

Pour toi Papou,

A ) faut faire la différence entre une plage de cellule désignée par une
Classe d'objet en l'occurence : "Range"
C'est dans cette classe d'objet qui est défini toutes les propriétés et méthodes
de l'objet "Range" ainsi que la propriété par défaut "Value"
Lorsque tu utilises l'objet "Range" comme dans Range("A1:A10") en l'absence
d'une propriété définie par l'usager, "Value" est celle attribuée par défaut.

[A1:A10] -> les crochets est une autre façon d'écrire ou de faire référence
à la méthode "Evaluate" de l'objet "application". Elle n'a pas de propriété par
défaut, elle ne permet pas à la saisie d'avoir une liste déroulante pour aider
l'usager à déterminer la propriété ou méthode appropriée à l'action qui veut poser...
De plus, elle effectue une opération totalement inutile dans le cas d'une simple copie
celui d'évaluer les cellules !!!

Dans l'exemple qui nous concerne, si tu écris comme ceci la commande :
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]
Rien ne sera copiée pour les raisons énoncées... Tu dois obligatoirement
écrire Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10].Value

Et au sujet de ceci : Sheets("Feuil2").[A1:A10] , les crochets sont utilisées
simplement pour couper quelques caractères à ce que devrait être la
ligne de commande Sheets("Feuil2").range("A1:A10") . Personnellement
je ne crois pas que ce soit une raison valable !!! Chacun a droit à ses
petites lubies !




"papou" a écrit dans le message de news:

Bonjour ChrisV
Une subtilité m'échappe ;-)
Pourrais-tu expliquer pourquoi tu intègres une propriété .Value sur
l'évaluation de la deuxième plage de cellules ?
Si je fais le test sans cette propriété j'obtiens le résultat attendu.
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]

J'aurai d'ailleurs personnellement tendance à plutôt proposer :
Sheets('Feuil2").Range("A1:A10") = Sheets("Feuil1").[A1:A10]
Puisqu'il ne m'apparaît pas utile d'évaluer des plages qui vont recevoir une
valeur.

Merci pour ton éclaircissement.

Cordialement
Pascal

"ChrisV" a écrit dans le message de news:

Bonjour Erwan,

Sub zaza()
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10].Value
End Sub

ou encore, avec les plage nommées: Feuil1!A1:A10 (Zn) et Feuil2!A1:A10
(desT)

Sub zaza()
[desT] = [Zn].Value
End Sub


ChrisV


"erwan" a écrit dans le message de news:

Bonjour,
Est ce que quelqu'un pourrait me donner le code necessaire en VBA pour
coller les cellules A1 à A10 de la feuille1 vers les cellules A1 à A10
de la feuille 2 SANS QUITTER ma feuille active qui est soit la feuille
3 soit la feuille 4...
Merci d'avance pour votre aide!
En utilisant, la méthode Select, j'arrrive à faire mon copier-coller
mais je ne retourne pas à ma feuille d'origine...
Merci d'avance
Erwan




Avatar
papou
Salut Denis
Tu me rassures donc ;-)

Cordialement
Pascal

"MichDenis" a écrit dans le message de news:
esauaK%
| Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]

D'entrée de jeu, l'utilisation des crochets n'apporte rien dans ce type de
situation
si ce n'est qu'un peu de confusion aux néophytes qui fréquentent ce forum.

Pour toi Papou,

A ) faut faire la différence entre une plage de cellule désignée par une
Classe d'objet en l'occurence : "Range"
C'est dans cette classe d'objet qui est défini toutes les propriétés et
méthodes
de l'objet "Range" ainsi que la propriété par défaut "Value"
Lorsque tu utilises l'objet "Range" comme dans Range("A1:A10") en
l'absence
d'une propriété définie par l'usager, "Value" est celle attribuée par
défaut.

[A1:A10] -> les crochets est une autre façon d'écrire ou de faire
référence
à la méthode "Evaluate" de l'objet "application". Elle n'a pas de
propriété par
défaut, elle ne permet pas à la saisie d'avoir une liste déroulante
pour aider
l'usager à déterminer la propriété ou méthode appropriée à l'action qui
veut poser...
De plus, elle effectue une opération totalement inutile dans le cas
d'une simple copie
celui d'évaluer les cellules !!!

Dans l'exemple qui nous concerne, si tu écris comme ceci la commande :
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]
Rien ne sera copiée pour les raisons énoncées... Tu dois
obligatoirement
écrire Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10].Value

Et au sujet de ceci : Sheets("Feuil2").[A1:A10] , les crochets sont
utilisées
simplement pour couper quelques caractères à ce que devrait être la
ligne de commande Sheets("Feuil2").range("A1:A10") . Personnellement
je ne crois pas que ce soit une raison valable !!! Chacun a droit à ses
petites lubies !




"papou" a écrit dans le message de
news:

Bonjour ChrisV
Une subtilité m'échappe ;-)
Pourrais-tu expliquer pourquoi tu intègres une propriété .Value sur
l'évaluation de la deuxième plage de cellules ?
Si je fais le test sans cette propriété j'obtiens le résultat attendu.
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]

J'aurai d'ailleurs personnellement tendance à plutôt proposer :
Sheets('Feuil2").Range("A1:A10") = Sheets("Feuil1").[A1:A10]
Puisqu'il ne m'apparaît pas utile d'évaluer des plages qui vont recevoir
une
valeur.

Merci pour ton éclaircissement.

Cordialement
Pascal

"ChrisV" a écrit dans le message de news:

Bonjour Erwan,

Sub zaza()
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10].Value
End Sub

ou encore, avec les plage nommées: Feuil1!A1:A10 (Zn) et Feuil2!A1:A10
(desT)

Sub zaza()
[desT] = [Zn].Value
End Sub


ChrisV


"erwan" a écrit dans le message de news:

Bonjour,
Est ce que quelqu'un pourrait me donner le code necessaire en VBA pour
coller les cellules A1 à A10 de la feuille1 vers les cellules A1 à A10
de la feuille 2 SANS QUITTER ma feuille active qui est soit la feuille
3 soit la feuille 4...
Merci d'avance pour votre aide!
En utilisant, la méthode Select, j'arrrive à faire mon copier-coller
mais je ne retourne pas à ma feuille d'origine...
Merci d'avance
Erwan









Avatar
papou
Heu Denis
Désolé répondu un peu vite !

Dans l'exemple qui nous concerne, si tu écris comme ceci la commande :
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]
Rien ne sera copiée pour les raisons énoncées...


Si si je te confirme : les valeurs sont bien recopiées sans problème (test
sur un Excel 2007).

Mais sur le fond il semble que nous soyons bien d'accord sur l'utilisation
de la méthode d'évaluation.

Cordialement
Pascal


"MichDenis" a écrit dans le message de news:
esauaK%
| Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]

D'entrée de jeu, l'utilisation des crochets n'apporte rien dans ce type de
situation
si ce n'est qu'un peu de confusion aux néophytes qui fréquentent ce forum.

Pour toi Papou,

A ) faut faire la différence entre une plage de cellule désignée par une
Classe d'objet en l'occurence : "Range"
C'est dans cette classe d'objet qui est défini toutes les propriétés et
méthodes
de l'objet "Range" ainsi que la propriété par défaut "Value"
Lorsque tu utilises l'objet "Range" comme dans Range("A1:A10") en
l'absence
d'une propriété définie par l'usager, "Value" est celle attribuée par
défaut.

[A1:A10] -> les crochets est une autre façon d'écrire ou de faire
référence
à la méthode "Evaluate" de l'objet "application". Elle n'a pas de
propriété par
défaut, elle ne permet pas à la saisie d'avoir une liste déroulante
pour aider
l'usager à déterminer la propriété ou méthode appropriée à l'action qui
veut poser...
De plus, elle effectue une opération totalement inutile dans le cas
d'une simple copie
celui d'évaluer les cellules !!!

Dans l'exemple qui nous concerne, si tu écris comme ceci la commande :
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]
Rien ne sera copiée pour les raisons énoncées... Tu dois
obligatoirement
écrire Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10].Value

Et au sujet de ceci : Sheets("Feuil2").[A1:A10] , les crochets sont
utilisées
simplement pour couper quelques caractères à ce que devrait être la
ligne de commande Sheets("Feuil2").range("A1:A10") . Personnellement
je ne crois pas que ce soit une raison valable !!! Chacun a droit à ses
petites lubies !




"papou" a écrit dans le message de
news:

Bonjour ChrisV
Une subtilité m'échappe ;-)
Pourrais-tu expliquer pourquoi tu intègres une propriété .Value sur
l'évaluation de la deuxième plage de cellules ?
Si je fais le test sans cette propriété j'obtiens le résultat attendu.
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]

J'aurai d'ailleurs personnellement tendance à plutôt proposer :
Sheets('Feuil2").Range("A1:A10") = Sheets("Feuil1").[A1:A10]
Puisqu'il ne m'apparaît pas utile d'évaluer des plages qui vont recevoir
une
valeur.

Merci pour ton éclaircissement.

Cordialement
Pascal

"ChrisV" a écrit dans le message de news:

Bonjour Erwan,

Sub zaza()
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10].Value
End Sub

ou encore, avec les plage nommées: Feuil1!A1:A10 (Zn) et Feuil2!A1:A10
(desT)

Sub zaza()
[desT] = [Zn].Value
End Sub


ChrisV


"erwan" a écrit dans le message de news:

Bonjour,
Est ce que quelqu'un pourrait me donner le code necessaire en VBA pour
coller les cellules A1 à A10 de la feuille1 vers les cellules A1 à A10
de la feuille 2 SANS QUITTER ma feuille active qui est soit la feuille
3 soit la feuille 4...
Merci d'avance pour votre aide!
En utilisant, la méthode Select, j'arrrive à faire mon copier-coller
mais je ne retourne pas à ma feuille d'origine...
Merci d'avance
Erwan









Avatar
MichDenis
Test sous 2003 -> rien n'est recopié

Je ne savais pas qu'il y avait une autre Version ...2007, tu dis ?


"papou" a écrit dans le message de news:
eX%23YIQ%
Heu Denis
Désolé répondu un peu vite !

Dans l'exemple qui nous concerne, si tu écris comme ceci la commande :
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]
Rien ne sera copiée pour les raisons énoncées...


Si si je te confirme : les valeurs sont bien recopiées sans problème (test
sur un Excel 2007).

Mais sur le fond il semble que nous soyons bien d'accord sur l'utilisation
de la méthode d'évaluation.

Cordialement
Pascal


"MichDenis" a écrit dans le message de news:
esauaK%
| Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]

D'entrée de jeu, l'utilisation des crochets n'apporte rien dans ce type de
situation
si ce n'est qu'un peu de confusion aux néophytes qui fréquentent ce forum.

Pour toi Papou,

A ) faut faire la différence entre une plage de cellule désignée par une
Classe d'objet en l'occurence : "Range"
C'est dans cette classe d'objet qui est défini toutes les propriétés et
méthodes
de l'objet "Range" ainsi que la propriété par défaut "Value"
Lorsque tu utilises l'objet "Range" comme dans Range("A1:A10") en
l'absence
d'une propriété définie par l'usager, "Value" est celle attribuée par
défaut.

[A1:A10] -> les crochets est une autre façon d'écrire ou de faire
référence
à la méthode "Evaluate" de l'objet "application". Elle n'a pas de
propriété par
défaut, elle ne permet pas à la saisie d'avoir une liste déroulante
pour aider
l'usager à déterminer la propriété ou méthode appropriée à l'action qui
veut poser...
De plus, elle effectue une opération totalement inutile dans le cas
d'une simple copie
celui d'évaluer les cellules !!!

Dans l'exemple qui nous concerne, si tu écris comme ceci la commande :
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]
Rien ne sera copiée pour les raisons énoncées... Tu dois
obligatoirement
écrire Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10].Value

Et au sujet de ceci : Sheets("Feuil2").[A1:A10] , les crochets sont
utilisées
simplement pour couper quelques caractères à ce que devrait être la
ligne de commande Sheets("Feuil2").range("A1:A10") . Personnellement
je ne crois pas que ce soit une raison valable !!! Chacun a droit à ses
petites lubies !




"papou" a écrit dans le message de
news:

Bonjour ChrisV
Une subtilité m'échappe ;-)
Pourrais-tu expliquer pourquoi tu intègres une propriété .Value sur
l'évaluation de la deuxième plage de cellules ?
Si je fais le test sans cette propriété j'obtiens le résultat attendu.
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]

J'aurai d'ailleurs personnellement tendance à plutôt proposer :
Sheets('Feuil2").Range("A1:A10") = Sheets("Feuil1").[A1:A10]
Puisqu'il ne m'apparaît pas utile d'évaluer des plages qui vont recevoir
une
valeur.

Merci pour ton éclaircissement.

Cordialement
Pascal

"ChrisV" a écrit dans le message de news:

Bonjour Erwan,

Sub zaza()
Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10].Value
End Sub

ou encore, avec les plage nommées: Feuil1!A1:A10 (Zn) et Feuil2!A1:A10
(desT)

Sub zaza()
[desT] = [Zn].Value
End Sub


ChrisV


"erwan" a écrit dans le message de news:

Bonjour,
Est ce que quelqu'un pourrait me donner le code necessaire en VBA pour
coller les cellules A1 à A10 de la feuille1 vers les cellules A1 à A10
de la feuille 2 SANS QUITTER ma feuille active qui est soit la feuille
3 soit la feuille 4...
Merci d'avance pour votre aide!
En utilisant, la méthode Select, j'arrrive à faire mon copier-coller
mais je ne retourne pas à ma feuille d'origine...
Merci d'avance
Erwan









Avatar
perso
Bjr messieurs,

Sub Macro1()

Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]

End Sub

Ne recopie pas en feuille 2 les valeurs de la plage A1:A10 de la
feuille 1 sous Excel 2007......
J'ai fait le test sur les 2 versions (2003/2007) la plage A1:A10 de la
feuille 2 reste vierge dans les deux cas

Pour info et bonne journée à tous,

Pat REDNEF
Avatar
MichDenis
J'ai fait le test sur les 2 versions (2003/2007) la plage A1:A10 de la
feuille 2 reste vierge dans les deux cas

T'as vu ça Papou ?????????? Est-ce vraiment un cas litigieux ????

Merci à Pat REDNEF


a écrit dans le message de news:

Bjr messieurs,

Sub Macro1()

Sheets("Feuil2").[A1:A10] = Sheets("Feuil1").[A1:A10]

End Sub

Ne recopie pas en feuille 2 les valeurs de la plage A1:A10 de la
feuille 1 sous Excel 2007......
J'ai fait le test sur les 2 versions (2003/2007) la plage A1:A10 de la
feuille 2 reste vierge dans les deux cas

Pour info et bonne journée à tous,

Pat REDNEF
1 2