Copier feuille vers un autre classeur
Résolu
lanxade
Messages postés
32
Statut
Membre
-
Le Pingou Messages postés 12716 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12716 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Bonjour,
J'ai crée un classeur sourceClasseurSource) dans lequel j'ai crée un feuille FeuilSource) et un UserForm UserFormSource)
Cette feuille source contient une plage de cellules ("A1 à G50") dimentionnées de façon à pouvoir être imprimée sur page A4.
Ce UserFormSource a crée, (par variables), un nouveau classeur cible : Nommé dans le type (" & ClasseurCible & ") et une page nommée dans ce type: ("(JJ) & (MM)").
Je désire copier la plage de la feuille source dans la même plage dans la feuille cible et aux mêmes dimentions de cellules, car cette feuille cible sera imprimée.
Les différents codes de copier/coller que j'ai testés me revoient les erreurs aussi bien pour les fichiers que pour les feuilles :
-N'appartient pas à la selection, ou alors Classeur dèjà ouvert !
Vous remerciant d'avance de votre Attention pourrais-je obtenir de l'aide
Encore Merci
Bonjour,
J'ai crée un classeur sourceClasseurSource) dans lequel j'ai crée un feuille FeuilSource) et un UserForm UserFormSource)
Cette feuille source contient une plage de cellules ("A1 à G50") dimentionnées de façon à pouvoir être imprimée sur page A4.
Ce UserFormSource a crée, (par variables), un nouveau classeur cible : Nommé dans le type (" & ClasseurCible & ") et une page nommée dans ce type: ("(JJ) & (MM)").
Je désire copier la plage de la feuille source dans la même plage dans la feuille cible et aux mêmes dimentions de cellules, car cette feuille cible sera imprimée.
Les différents codes de copier/coller que j'ai testés me revoient les erreurs aussi bien pour les fichiers que pour les feuilles :
-N'appartient pas à la selection, ou alors Classeur dèjà ouvert !
Vous remerciant d'avance de votre Attention pourrais-je obtenir de l'aide
Encore Merci
A voir également:
- Copier feuille vers un autre classeur
- Copier un disque dur sur un autre - Guide
- Comment copier une vidéo youtube - Guide
- Super copier - Télécharger - Gestion de fichiers
- Comment faire un livret avec des feuilles a4 - Guide
- Imprimer un classeur excel sur mac - Guide
7 réponses
Bonjour,
Ligne à insérer dans votre code à l'endroit adéquat:
Ligne à insérer dans votre code à l'endroit adéquat:
Sheets("Bons").Cells.Copy Destination:=Worksheets("Command_toto").Sheets("nom de la feuille Cible").Range("A1")
Bonjour,
Les 3 lignes à insérer dans votre code à l'endroit adéquat:
nomfe = (JJ) & (MO)
Set classeurcible = Workbooks("Command_toto.xls")
Sheets("Bons").Cells.Copy Destination:=classeurcible.Sheets(nomfe).Range("A1")
Les 3 lignes à insérer dans votre code à l'endroit adéquat:
nomfe = (JJ) & (MO)
Set classeurcible = Workbooks("Command_toto.xls")
Sheets("Bons").Cells.Copy Destination:=classeurcible.Sheets(nomfe).Range("A1")
Bonjour,
Si vos codes sont à l'intérieur d'une macro, pouvez-vous la poster ?
Si vos codes sont à l'intérieur d'une macro, pouvez-vous la poster ?
Bonjour Pingou,
Merci de l'attention portée à mon égard,
En fait voici les faits : Il sagit d'un de créer dans un cadre GMAO, un systeme d'écriture de bon de Cdes:
N.B : Soient :
Un Classeur source qui fait office de créateur du projet. (classeur "Gmao_Commandes") avec une feuille "Bon" qui servira de modèle
Un Classeur Cible, crée ou à créer qui servira à classer les commandes passées chez un fournisseur (Par Ex. "Command_toto")
Un Classeur "ListeFournisseurs" qui servira à remplir les cellules contenant les données du fournisseur choisi.
Un Classeur "ListeArticles" qui servira à remplir les cellules des articles à commander.
A partie de cela :
1°)- J'ai crée un classeur "Gmao_Commandes".
* Dans ce classeur, j'ai ajouté une feuille (modèle) que j'ai nommé "Bon". Cette feuille possède des cellules blanches et grisées.
* Les cellules grisées ont préremplies (lors de leur création) et la feuille enregistrée. Afin de pouvoir imprimer sans encombres, j'ai manuellement dimentionné les cellules afin que celles-ci tiennent dans une feuille A4.
2°)- Dans ce classeur "Gmao_Commandes", j'ai inséré un "UserForm1" dans lequel, par TextBox, List Box et CommandButton je peux rechercher Le nom du fournisseur, tel, fax .... Rechercher mes articles, references, Prix ..... Faire les calculs de la commande et copier le tout sur la feuille "Bons" dans les cellules blanches prévues.
3°)- Je referme les classeurs "ListeFournisseurs", " ListeArticles" qui ont servi jusque là et dont je n'ai plus besoin
4°)- A l'aide du UserForm1, toujours lui, Je recherche si des commandes ont déjà été passées chez ce fournisseur "toto", sinon il me crée un nouveau classeur sous la form "Command_Toto" autrement dit sous la forme " & NomFournisseur & " .("NOm fournisseur") étant la Variant de recherche fournisseur.
5°)- Dans ce classeur Cible "Command_toto", j'insère une nouvelle feuille au jour et mois de la date du jour: Sheet "(mm) & (jj)" .
6°)- A ce stade, j'ai bien empli mon bon de commande -Source- dans la feuille "Bon" du classeur "Gmao_Commandes" et la feuille de destination du classeur "Command_toto" avec sa feuille "(mm) & (jj) créee et vierge (Le nom de la feuille est correctement inscrite sur l'onglet).
7°)- Je voudrais à ce stade à l'aide d'un commandButton7 du UserFome1, Copier/Coller la feuille du bon pré-rempli "Bons" "dans la feuille Cible "(mm) & (jj) " du classeur Cible " & NomFournisseur & " (autrement dit :"Command_toto").
Cela avec les couleurs grisées les cellules et au format d'origine afin de pouvoir en final
Puis :
* Fermer <sans enregistrer> le bon de commande source (Pour cela je n'aurai pas de problème)
* Imprimer en A4 le bon Cible " (mm) & (jj) "Puis enregistrer et fermer le Classeur Cible " & NomFournisseur & ".(Pour cela aussi pas de problème non plus).
> Ce qui me demande de l'aide c'est de ne pas savoir comment réaliser le Copier/Coller étant donné qu'à mon stade de trés débutant, je ne sais pas ce qui est activate ou pas, open ou non.
En fait ce qui me manque, c'est le code qui me permettrait de réaliser Ce copier / Coller en tenant compte de l'état actuel où sont ces deux fichiers.
Pardon, J'ai l'impréssion en voulant être précis d'avoir écrit du Proust.
Cordialement.
Merci de l'attention portée à mon égard,
En fait voici les faits : Il sagit d'un de créer dans un cadre GMAO, un systeme d'écriture de bon de Cdes:
N.B : Soient :
Un Classeur source qui fait office de créateur du projet. (classeur "Gmao_Commandes") avec une feuille "Bon" qui servira de modèle
Un Classeur Cible, crée ou à créer qui servira à classer les commandes passées chez un fournisseur (Par Ex. "Command_toto")
Un Classeur "ListeFournisseurs" qui servira à remplir les cellules contenant les données du fournisseur choisi.
Un Classeur "ListeArticles" qui servira à remplir les cellules des articles à commander.
A partie de cela :
1°)- J'ai crée un classeur "Gmao_Commandes".
* Dans ce classeur, j'ai ajouté une feuille (modèle) que j'ai nommé "Bon". Cette feuille possède des cellules blanches et grisées.
* Les cellules grisées ont préremplies (lors de leur création) et la feuille enregistrée. Afin de pouvoir imprimer sans encombres, j'ai manuellement dimentionné les cellules afin que celles-ci tiennent dans une feuille A4.
2°)- Dans ce classeur "Gmao_Commandes", j'ai inséré un "UserForm1" dans lequel, par TextBox, List Box et CommandButton je peux rechercher Le nom du fournisseur, tel, fax .... Rechercher mes articles, references, Prix ..... Faire les calculs de la commande et copier le tout sur la feuille "Bons" dans les cellules blanches prévues.
3°)- Je referme les classeurs "ListeFournisseurs", " ListeArticles" qui ont servi jusque là et dont je n'ai plus besoin
4°)- A l'aide du UserForm1, toujours lui, Je recherche si des commandes ont déjà été passées chez ce fournisseur "toto", sinon il me crée un nouveau classeur sous la form "Command_Toto" autrement dit sous la forme " & NomFournisseur & " .("NOm fournisseur") étant la Variant de recherche fournisseur.
5°)- Dans ce classeur Cible "Command_toto", j'insère une nouvelle feuille au jour et mois de la date du jour: Sheet "(mm) & (jj)" .
6°)- A ce stade, j'ai bien empli mon bon de commande -Source- dans la feuille "Bon" du classeur "Gmao_Commandes" et la feuille de destination du classeur "Command_toto" avec sa feuille "(mm) & (jj) créee et vierge (Le nom de la feuille est correctement inscrite sur l'onglet).
7°)- Je voudrais à ce stade à l'aide d'un commandButton7 du UserFome1, Copier/Coller la feuille du bon pré-rempli "Bons" "dans la feuille Cible "(mm) & (jj) " du classeur Cible " & NomFournisseur & " (autrement dit :"Command_toto").
Cela avec les couleurs grisées les cellules et au format d'origine afin de pouvoir en final
Puis :
* Fermer <sans enregistrer> le bon de commande source (Pour cela je n'aurai pas de problème)
* Imprimer en A4 le bon Cible " (mm) & (jj) "Puis enregistrer et fermer le Classeur Cible " & NomFournisseur & ".(Pour cela aussi pas de problème non plus).
> Ce qui me demande de l'aide c'est de ne pas savoir comment réaliser le Copier/Coller étant donné qu'à mon stade de trés débutant, je ne sais pas ce qui est activate ou pas, open ou non.
En fait ce qui me manque, c'est le code qui me permettrait de réaliser Ce copier / Coller en tenant compte de l'état actuel où sont ces deux fichiers.
Pardon, J'ai l'impréssion en voulant être précis d'avoir écrit du Proust.
Cordialement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir lanxade,
Le code que je vous ai proposé fonctionne parfaitement.
Il va de soit que le classeur ["Command_toto"] est ouvert sur votre PC puisque vous travaillez avec.
Si se n'est pas le cas vous avez erreur 9.
Le code que je vous ai proposé fonctionne parfaitement.
Il va de soit que le classeur ["Command_toto"] est ouvert sur votre PC puisque vous travaillez avec.
Si se n'est pas le cas vous avez erreur 9.
> Pour trouver ou créer le Book cible , j'ai formulé
Fournisseur = Sheets("Bon").Range("a8")
Nomf = "Command_" & (Fournisseur) & ""
>Pour créer la feuille j'ai codé :
JM = Left(Date, 5) ' --- Donc : 22/07
JJ = Left(JM, 2) ' --- Ce qui donne le jour
MM = Right(JM, 2) ' --- Ce qui donne le mois
If MM = 1 Then MO = "A" '---- J'ai ainsi le mois en lettre ce qui me gagne de la place
If MM = 2 Then MO = "B"
If MM = 3 Then MO = "C"
If MM = 4 Then MO = "D"
If MM = 5 Then MO = "E"
If MM = 6 Then MO = "F"
If MM = 7 Then MO = "G"
If MM = 8 Then MO = "H"
If MM = 9 Then MO = "I"
If MM = 10 Then MO = "J"
If MM = 11 Then MO = "K"
If MM = 12 Then MO = "L"
'--- Ajoute la Feuille
Sheets.Add After:=Sheets(Sheets.Count)
'--- Nomme la Feuille
ActiveSheet.Name = (JJ) & (MO)
Je retrouve bien dans la liste documents Excel.xls "Command_toto" Tel qu'il a été crée.
Lors de l'arret d'éxécution aprés nomme la feuille, j'ai bien l'onglet ouvert nommé aujourd'hui "22G"
Et enfin pour Copier/Coller , j'ai affiché :
Sheets("Bons").Cells.Copy Destination:=Worksheets(" & Nomf & "").Sheets("(JJ) & (JJ) ").Range("A1")
Cela ne passe pas avec le message "Erreur de syntaxe"
Il me semble ne pas ecrire le bon code de la Sheets"22G"
Je ne trouve pas la bonne fornulation de la feuille, car dans de code de création du fichier ça marche
Pardon pour mon ignorance