Copier coller une feuille en vba
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je cherche simplement à copier le contenu d'une feuille et à le coller sur une autre.
Voici mon code :
Où est-ce que je fais une erreur ?
Merci d'avance
Je cherche simplement à copier le contenu d'une feuille et à le coller sur une autre.
Voici mon code :
Sheets("Feuil1").Activate Sheets("Feuil1").Select Cells.Select Selection.Copy Sheets("Feuil4").Activate Sheets("Feuil4").Select Cells.Select Selection.PasteSpecial Paste:=xlPasteValues
Où est-ce que je fais une erreur ?
Merci d'avance
A voir également:
- Copier coller une feuille en vba
- Historique copier coller - Guide
- Copier coller pdf - Guide
- Copier-coller - Accueil - Informatique
- Style d'écriture a copier coller - Guide
- Comment copier une vidéo youtube - Guide
10 réponses
Bonjour,
Un [ Coller ] [ Paste ] ne s'effectue jamais sur une plage de plusieurs cellules.
Il faut positionner le curseur sur la cellule du coin supérieur gauche
à partir de laquelle le [ Paste ] est effectué.
Ici :
On sélectionne la cellule [A1] de la Feuil4 qui recevra le [ Paste ].
La méthode [ .Activate ] est implicite dans la méthode [ .Select ].
Cdt
Lupin
Un [ Coller ] [ Paste ] ne s'effectue jamais sur une plage de plusieurs cellules.
Il faut positionner le curseur sur la cellule du coin supérieur gauche
à partir de laquelle le [ Paste ] est effectué.
Ici :
Option Explicit Sub CopieContenuFeuille() Sheets("Feuil1").Select Cells.Select Selection.Copy Sheets("Feuil4").Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False Range("A1").Select Sheets("Feuil1").Select Range("A1").Select End Sub '
On sélectionne la cellule [A1] de la Feuil4 qui recevra le [ Paste ].
La méthode [ .Activate ] est implicite dans la méthode [ .Select ].
Cdt
Lupin
Merci pour l'info !
J'avais en effet lu ça sur un autre sujet, mais le problème est que j'ai une erreur pour la sélection de la cellule A1 : 1004 "la méthode select de la classe range a échoué"...
Savez-vous d'où cela peut venir ?
Je n'ai pas renommé mes feuilles, ni mes cellules.
Les infos sont bien copiées, elles restent dans le presse-papier et je peux les coller manuellement même après l'erreur.
Merci
J'avais en effet lu ça sur un autre sujet, mais le problème est que j'ai une erreur pour la sélection de la cellule A1 : 1004 "la méthode select de la classe range a échoué"...
Savez-vous d'où cela peut venir ?
Je n'ai pas renommé mes feuilles, ni mes cellules.
Les infos sont bien copiées, elles restent dans le presse-papier et je peux les coller manuellement même après l'erreur.
Merci
re:
Ce code ne peut être placer derrière une feuille, il doit impérativement être dans un module à cause du [Select] sur les feuilles.
Sais-tu comment utiliser le [ pas à pas ] dans VBE (Visual Basic Editor).
Tu peux suivre le déroulement de la macro instruction par instruction.
Si tu n'y arrive pas, je t'enverrai un DEMO.
Cdt
Lupin
Ce code ne peut être placer derrière une feuille, il doit impérativement être dans un module à cause du [Select] sur les feuilles.
Sais-tu comment utiliser le [ pas à pas ] dans VBE (Visual Basic Editor).
Tu peux suivre le déroulement de la macro instruction par instruction.
Si tu n'y arrive pas, je t'enverrai un DEMO.
Cdt
Lupin
Bonjour,
Je ne comprends pas "placé derrière une feuille". Je l'utilise "derrière un bouton". Lorsque j'appuie sur le bouton, je voudrais (entre autre) que ce qu'il y a sur la feuil1 soit copié sur la feuil4.
Par "utiliser le pas à pas" entends-tu l'enregistreur de macro ? Si c'est le cas la réponse est oui.
Merci
Je ne comprends pas "placé derrière une feuille". Je l'utilise "derrière un bouton". Lorsque j'appuie sur le bouton, je voudrais (entre autre) que ce qu'il y a sur la feuil1 soit copié sur la feuil4.
Par "utiliser le pas à pas" entends-tu l'enregistreur de macro ? Si c'est le cas la réponse est oui.
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re:
OK - Pour moi derrière un bouton, c'est derrière un formulaire.
Je distigues 5 types d'object :
ThisWorkBook
Feuil1,Feuil...
UserForm (Formulaire)
Module
Module de Classe
Donc, derrière un formulaire est l'équivalent d'être dans un module,
du moins pour la porté sur les feuilles.
Pour ce qui est du mode PAS À PAS, ce n'est pas l'enregistreur
de macro.
Place un point d'arrêt en début de procédure, dans la marge de gauche,
une bande de moins d'un centimètre, tu y clic devant la ligne d'instruction.
Celle-ci devrait se surligner en noir et un bouton noir apparait dans la marge.
Tu peux ainsi suivre la routine pas à pas.
Voici un petit Demo: http://www.cijoint.fr/cjlink.php?file=cj201104/cijMAw2z5q.zip
Pour lancer le Formulaire :
// Menu / Outils / Macro / Macro ...
Sélectionner "AfficheFormulaire"
Cdt
Lupin
OK - Pour moi derrière un bouton, c'est derrière un formulaire.
Je distigues 5 types d'object :
ThisWorkBook
Feuil1,Feuil...
UserForm (Formulaire)
Module
Module de Classe
Donc, derrière un formulaire est l'équivalent d'être dans un module,
du moins pour la porté sur les feuilles.
Pour ce qui est du mode PAS À PAS, ce n'est pas l'enregistreur
de macro.
Place un point d'arrêt en début de procédure, dans la marge de gauche,
une bande de moins d'un centimètre, tu y clic devant la ligne d'instruction.
Celle-ci devrait se surligner en noir et un bouton noir apparait dans la marge.
Tu peux ainsi suivre la routine pas à pas.
Voici un petit Demo: http://www.cijoint.fr/cjlink.php?file=cj201104/cijMAw2z5q.zip
Pour lancer le Formulaire :
// Menu / Outils / Macro / Macro ...
Sélectionner "AfficheFormulaire"
Cdt
Lupin
Je ne comprends pas tout à votre réponse...désolé
Y-a-t'il une manière pour moi de copier-coller ma feuil1 sur feuil4 ?
Pour ce qui est du démo, je n'arrive pas à le faire fonctionner...
Y-a-t'il une manière pour moi de copier-coller ma feuil1 sur feuil4 ?
Pour ce qui est du démo, je n'arrive pas à le faire fonctionner...
re:
Sous quelle version de Excel travaille-tu ?
Si XL2007, c'est normal que mon code ne fonctionne pas.
Si XL2002 ou XL2003 ça doit fonctionner!
Sinon, si ton fichier ne comporte pas de données sensibles
(confidentiel), dépose le sur [ http://www.cijoint.fr/ ].
Cdt
Lupin
Sous quelle version de Excel travaille-tu ?
Si XL2007, c'est normal que mon code ne fonctionne pas.
Si XL2002 ou XL2003 ça doit fonctionner!
Sinon, si ton fichier ne comporte pas de données sensibles
(confidentiel), dépose le sur [ http://www.cijoint.fr/ ].
Cdt
Lupin
Je travaille sur excel 2003.
En fait, lorsque je faisais :
ça ne marchait pas non plus...
Mais quand je change les 10000 en 100, ça marche. J'ai donc ce que je souhaitais, mais je suis réduit à copier un carré de 100X100.
Pour l'instant, ça devrait me convenir, donc je ne t'embête pas plus.
Merci pour ton aide !
En fait, lorsque je faisais :
Dim v As Long Dim w As Long For v = 1 To 10000 For w = 1 To 10000 Sheets("Feuil4").Cells(v, w).Value = Sheets("Feuil1").Cells(v, w).Value Next Next
ça ne marchait pas non plus...
Mais quand je change les 10000 en 100, ça marche. J'ai donc ce que je souhaitais, mais je suis réduit à copier un carré de 100X100.
Pour l'instant, ça devrait me convenir, donc je ne t'embête pas plus.
Merci pour ton aide !
re:
En fait, tu ne peux utiliser la limite de 1000 pour les colonnes.
For w = 1 to 256
Puisqu'il ne peut y avoir plus de 256 colonnes sous Excel 2003.
Cdt
Lupin
En fait, tu ne peux utiliser la limite de 1000 pour les colonnes.
For w = 1 to 256
Puisqu'il ne peut y avoir plus de 256 colonnes sous Excel 2003.
Cdt
Lupin
Bonjour jahawai,
Disons que je ne sait pas au départ quel sont tes connaissances
sur le sujet !
La copie par boucle pour copier le contenu d'une feuille
à une autre est bien dans un sens car tu auras apprit
plein de choses en contruisant ton code.
Si ça t'interesse, j'ai codé un classeur qui lors de la selection
de la feuille 1, un menu apparait et permet d'accéder à un
formulaire qui a un bouton derrière lequel je copie de feuille
à feuille avec quelques instructions plus rapide qu'une boucle.
Voici l'exemple :
http://membre.oricom.ca/lupin/xfr/copiefeuille.zip
Cdt
Lupin
Disons que je ne sait pas au départ quel sont tes connaissances
sur le sujet !
La copie par boucle pour copier le contenu d'une feuille
à une autre est bien dans un sens car tu auras apprit
plein de choses en contruisant ton code.
Si ça t'interesse, j'ai codé un classeur qui lors de la selection
de la feuille 1, un menu apparait et permet d'accéder à un
formulaire qui a un bouton derrière lequel je copie de feuille
à feuille avec quelques instructions plus rapide qu'une boucle.
Voici l'exemple :
http://membre.oricom.ca/lupin/xfr/copiefeuille.zip
Cdt
Lupin