Copie feuille dans un autre classeur

Résolu/Fermé
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 - 5 mars 2012 à 16:06
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 - 7 mars 2012 à 21:53
Bonjour,

Je sollicite votre aide sur une macro que j'ai composé...
Elle permet de choisir un classeur ("MenuNormalPrintemps")et de choisir aussi une feuille("feuil1"). Elle copie la feuille sélectionner et la colle dans mon dossier de destination ("Menu")sur la feuille ("Menu Normal").
ps :J'utilise cette méthode car le classeur et les feuilles changent souvent de nom.
La macro s'exécute bien mais ne colle pas le texte sur la feuille("Menu Normal")
Il y a t'il une solution pour corriger le probleme?


Merci de votre aide
Je poste mes deux fichiers :https://www.cjoint.com/?BCfqfM2oiQt


A voir également:

25 réponses

f894009 Messages postés 17219 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 janvier 2025 1 712
5 mars 2012 à 16:27
Bonjour,
Vous ouvrez quel classeur en premier???
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
5 mars 2012 à 16:50
le classeur "Menu" puis la commande du bouton "copie"(pour la macro...
0
f894009 Messages postés 17219 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 janvier 2025 1 712
5 mars 2012 à 16:58
Re,
merci
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
5 mars 2012 à 17:43
Euhhh c'est pas le bouton "copie" mais plutot le bouton "Nouveau menu" dsl
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
Modifié par diabolo162 le 5/03/2012 à 19:21
je m'aperçois que ma macro ne copie pas les liaisons....

peut etre 2 possibilités :

- comment utiliser la fonction "ActiveCell.FormulaR1C1 " mais je ne sais pas la mettre en place et de plus il me demande le chemin d'acces alors que mon classeur et la feuille peuvent changer de nom
ou
-transformer la liaison en texte....avec l'enregistreur de macro ca ne fonctionne pas
ou
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17219 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 janvier 2025 1 712
5 mars 2012 à 19:26
Bonjour,


Pour ne pas tout refaire votre code, je vous propose de passer par le presse-papier pour faire vos copier/coller.

Code pour Menu.xls bouton "Nouveau menu"

Private Sub CommandButton3_Click()
Dim Classeur
Classeur = Application.GetOpenFilename("Classeurs Excel , *.xls")
If Classeur = False Then Exit Sub
Workbooks.Open Filename:=Classeur
On Error Resume Next
'Passe par le presse-papier pour restituer
Windows("Menu.xls").Activate
Sheets("Menu Normal").Select
Range("B1").Select
ActiveSheet.Paste

'mise en forme largeur colonne
Cells.Select
Cells.EntireColumn.AutoFit
'vider presse-papier
Application.CutCopyMode = False
Application.DisplayAlerts = False
End Sub


Code pour Menu Normal Printemps.xls Bouton UserForm "Valider"

Private Sub CommandButton1_Click()
Sheets(ComboBox1.Value).Select
Sheets(ComboBox1.Value).Range("A1:C100").Select
'copy selection dans presse-papier
Selection.Copy
Unload Me
End Sub

Bonne suite
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
Modifié par diabolo162 le 5/03/2012 à 21:12
ok merci la macro s'execute et met une valeur text mais le soucis est que ca me decale tout d'une colonne (c et d) au lieu de (b et c).
voici le résultat :https://www.cjoint.com/?3Cfvc5QXxKV

J'ai aussi l'impression que qq chose tourne en boucle et ma feuille "Menu Normal printemps est figé???? tant que je ne ferme pas le 1er doc et second reste bloqué
Peut etre mieux vaut refaire tout le code?
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
5 mars 2012 à 22:53
Help...
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
6 mars 2012 à 08:29
bon en fait ca plante et excel se ferme...mémoire insuffisant on dirait!

cette macro a l'air interressante...est elle exploitable?
https://forums.commentcamarche.net/forum/affich-4521474-vba-excel-bug-copie-feuille#8
0
f894009 Messages postés 17219 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 janvier 2025 1 712
6 mars 2012 à 10:59
Bonjour,
Le decalage, c'est pour moi: B1 au lieu de A1

Private Sub CommandButton3_Click()
Dim Classeur
Classeur = Application.GetOpenFilename("Classeurs Excel , *.xls")
If Classeur = False Then Exit Sub
Workbooks.Open Filename:=Classeur
On Error Resume Next
'Passe par le presse-papier pour restituer
Windows("Menu.xls").Activate
Sheets("Menu Normal").Select
Range("A1").Select
ActiveSheet.Paste

'mise en forme largeur colonne
Cells.Select
Cells.EntireColumn.AutoFit
'vider presse-papier
Application.CutCopyMode = False
Application.DisplayAlerts = False
End Sub

Pour le reste, je regarde.

A plus
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
Modifié par diabolo162 le 6/03/2012 à 11:28
Bonjour,

merci pour le coup de pouce....

En fait c'est le classeur "MenuNormalPrintemps"qui plante tout à la fermeture.
D'ailleurs si j'ajoute la fonction "ActiveWindow.Close" la macro ne s'execute pas
0
f894009 Messages postés 17219 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 janvier 2025 1 712
6 mars 2012 à 12:23
Re,


Private Sub CommandButton3_Click()
Dim Classeur
Dim Wb As Workbook

Classeur = Application.GetOpenFilename("Classeurs Excel , *.xls")
If Classeur = False Then Exit Sub
'arret raffraichisement ecran
Application.ScreenUpdating = False
'arret alertes excel
Application.DisplayAlerts = False

Set Wb = Workbooks.Open(Filename:=Classeur)
On Error Resume Next
'Passe par le presse-papier pour restituer
Windows("Menu.xls").Activate
Sheets("Menu Normal").Select
Range("A1").Select
ActiveSheet.Paste

'fermeture Classeur
Wb.Close

'mise en forme largeur colonne
Cells.Select
Cells.EntireColumn.AutoFit

'vider presse-papier
Application.CutCopyMode = False
'activation alertes EXCEL et raffraichissement
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


Cela devrait le faire

A bientot
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
Modifié par diabolo162 le 6/03/2012 à 13:27
Encore mille fois merci pour ton aide...c'est bien plus pratique avec ta macro...
j'ai du insérer la macro sur une nouvelle feuille et pour le moment ca l'air de fonctionner... En revanche j'ai toujours le message "image trop grande, la feuille va etre tronquée" sur le classeur "Menu Normal printemps" puis apres tout excel se ferme.

Sans vouloir abuser de ton aide j'aurais une dernière petite question...

Est il possible de copier ce userform avec son module qui se trouve dans "Menu Normal printemps" vers le dossier "Menu Normal" mais sachant que les autres userform je n'en veux pas?


Private Sub CommandButton1_Click()
'Sheets(ComboBox1.Value).Activate
'Unload Me


Sheets(ComboBox1.Value).Select
Sheets(ComboBox1.Value).Range("B1:C65").Select
'copy selection dans presse-papier
Selection.Copy
Unload Me
'ActiveWindow.Close
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
Dim WK As Worksheet
For Each WK In ThisWorkbook.Worksheets
ComboBox1.AddItem WK.Name
Next

End Sub

Sub go()
UserForm1.Show
End Sub
0
f894009 Messages postés 17219 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 janvier 2025 1 712
6 mars 2012 à 13:03
Re,

Passez moi le fichier.
0
f894009 Messages postés 17219 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 janvier 2025 1 712
Modifié par f894009 le 6/03/2012 à 16:13
Re,
J'ai perdu le fil de notre affaire, rappellez moi ce que vous voulez
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
Modifié par diabolo162 le 6/03/2012 à 16:21
1/Le fichier "Menu Normal printemps" plante à la fermeture après l'utilisation de la macro

2/dans le fichier "Menu Normal Printemps" je souhaiterais que Userform1 se copie dans le fichier "Menu Normal" avec son exécutable dans Thisworkbook. est ce réalisable?


fichiers ci joint :
https://www.cjoint.com/?3CgqofEBgcc
0
f894009 Messages postés 17219 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 janvier 2025 1 712
6 mars 2012 à 16:31
Re,

1/
'ce que vous avez ajoute, qui ne peut pas marcher
Windows("Menu Normal Printemps.xls").Activate
ActiveWindow.Save
ActiveWindow.Close

'fermeture Classeur
'ce que vous avez enlevez
'Wb.Close

pourquoi avez vous fait cette modif.

2/ Un UserForm ne peut pas etre mis dans ThisWorkbook

A+
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
6 mars 2012 à 17:07
Wb.Save et Wb.Close ne fonctionne pas.
Mon fichier "Menu Normal Printemps" ne se ferme pas et je reste bloqué sur ce fichier et me plante excel.
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
6 mars 2012 à 17:12
je voudrai copier le userform qui s'execute à l'ouverture du fichier....voila ce que je voulais dire désolé.
0
f894009 Messages postés 17219 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 janvier 2025 1 712
6 mars 2012 à 16:37
Re,

Sub Copie4()
Dim Classeur
Dim Wb As Workbook

Classeur = Application.GetOpenFilename("Classeurs Excel , *.xls")
If Classeur = False Then Exit Sub
'arret raffraichisement ecran
Application.ScreenUpdating = False
'arret alertes excel
Application.DisplayAlerts = False

Set Wb = Workbooks.Open(Filename:=Classeur)

On Error Resume Next
'Passe par le presse-papier pour restituer
Windows("Menu.xls").Activate
Sheets("Menu Normal").Select
Range("B1").Select
ActiveSheet.Paste

'Sauvegarde et fermeture Classeur
Wb.Save
Wb.Close

'mise en forme largeur colonne
Cells.Select
Cells.EntireColumn.AutoFit

'vider presse-papier
Application.CutCopyMode = False
'activation alertes EXCEL et raffraichissement
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


Ajoute sauvegarde Menu Normal Printemps.xls

A+
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
6 mars 2012 à 17:10
merci pour ta solution mais comme ci dessus la fonction "Wb.Save et
Wb.Close" ne fonctionne pas.
si j'ai bien compris ta macron, le fichier "Menu Normal Printemps devrait s'éxécuter en arriere plan...mais en réalité après l'execution de la macro elle s'affiche est me bloque tout
0
f894009 Messages postés 17219 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 janvier 2025 1 712
6 mars 2012 à 17:19
Re,

Chez moi, pas de probleme pour fermer le fichier.

Essayez ca

Sub Copie4()
Dim Classeur, Nom_Fichier
Dim Wb As Workbook

Classeur = Application.GetOpenFilename("Classeurs Excel , *.xls")
If Classeur = False Then Exit Sub
'arret raffraichisement ecran
Application.ScreenUpdating = False
'arret alertes excel
Application.DisplayAlerts = False

Set Wb = Workbooks.Open(Filename:=Classeur)
Nom_Fichier = Wb.Name
On Error Resume Next
'Passe par le presse-papier pour restituer
Windows("Menu.xls").Activate
Sheets("Menu Normal").Select
Range("B1").Select
ActiveSheet.Paste

'Save et fermeture Classeur
Workbooks(Nom_Fichier).Activate
Workbooks(Nom_Fichier).Save
Workbooks(Nom_Fichier).Close

'mise en forme largeur colonne
Cells.Select
Cells.EntireColumn.AutoFit

'vider presse-papier
Application.CutCopyMode = False
'activation alertes EXCEL et raffraichissement
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

A+
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
Modifié par diabolo162 le 6/03/2012 à 17:57
Désolé de revenir à la charge mais ca fonctionne pas non plus.....
J'ai bien l'impression qu'il ne se passe plus rien après "ActiveSheet.Paste" et mon second fichier plante toujours avec le message "cette image est trop grande et elle va etre tronquée"
0
f894009 Messages postés 17219 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 janvier 2025 1 712
6 mars 2012 à 17:53
Re,
Mettez les lignes:
Application.ScreenUpdating = False
Application.DisplayAlerts = False
et
On Error Resume Next
en commentaire

mettez un point d'arret a la ligne
Windows("Menu.xls").Activate


lancez et a suivre
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
Modifié par diabolo162 le 6/03/2012 à 18:24
Ok il me selectionne les colonnes B1 àC65......dans le fichier "Menu Normal Printemps" et il reste ouvert sur ce fichier
0
f894009 Messages postés 17219 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 janvier 2025 1 712
6 mars 2012 à 18:29
Re,
Est ce que le programme de Menu.xls s'arrete au point d'arret. Si oui, appuyez sur F8 (impultion) pour faire deroulez le programme en pas a pas.
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
Modifié par diabolo162 le 6/03/2012 à 18:50
oui le programme s'arrete sur le point d'arret...ensuite j'arrive jusqu'a "ActiveSheet.Paste" puis c'est le bug!
-"erreur d'execution'-2147417848...la méthode 'Paste de l'objet'_Worksheet à échoué

Quelque chose de Bizarre, entre "Range("B1").Select" et "ActiveSheet.Paste" la fonction F8 passe par une autre macro qui se situe sur la Feuil 3
Je la place ci dessous :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("B9:C13,B17:C21,B25:C29,B33:C37,B41:C45,B49:C53,B57:C61"), Target) Is Nothing And Target.Count = 1 Then
adrcelmemu = Target.Address
colcelmenu = Target.Column
UFplat_menu.Show
End If
End Sub

j'ai essayé en enlevant la macro ci dessus mais c toujours pareil.
0
f894009 Messages postés 17219 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 janvier 2025 1 712
6 mars 2012 à 19:09
Re,


Si vous annuler lors du choix de la feuille dans Menu Normal Printemps.xls alors oui il y a :
-"erreur d'execution'-2147417848...la méthode 'Paste de l'objet'_Worksheet à échoué .
Je regarde cde que je peux faire

Pour la macro feuil3
C'est normal, puisque l'objet de cette macro est d'intercepter les changements de selection cellule sur cette feuille.
Qui a ecrit tout ca? Il faudrait faire un peu de menage.

A+
0
f894009 Messages postés 17219 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 janvier 2025 1 712
Modifié par f894009 le 6/03/2012 à 19:19
Re,

Je n'avais pas traite l'annulation et fermeture sans choix feuille (fais plusieurs chose a la fois donc...)

Sub Copie4()
Dim Classeur, Nom_Fichier
Dim Wb As Workbook

Classeur = Application.GetOpenFilename("Classeurs Excel , *.xls")
If Classeur = False Then Exit Sub
'arret raffraichisement ecran
Application.ScreenUpdating = False
'arret alertes excel
Application.DisplayAlerts = False

Set Wb = Workbooks.Open(Filename:=Classeur)
Nom_Fichier = Wb.Name
'pour annuler ou fermeture sans choix feuille
On Error GoTo suite
'Passe par le presse-papier pour restituer
Windows("Menu.xls").Activate
Sheets("Menu Normal").Select
Range("B1").Select
ActiveSheet.Paste

suite:
'Save et fermeture Classeur
Workbooks(Nom_Fichier).Activate
Workbooks(Nom_Fichier).Save
Workbooks(Nom_Fichier).Close

'mise en forme largeur colonne
Cells.Select
Cells.EntireColumn.AutoFit

'vider presse-papier
Application.CutCopyMode = False
'activation alertes EXCEL et raffraichissement
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Nous devrions y arriver

A+
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
6 mars 2012 à 21:50
Le fichier "Menu Normal Printemps" plante toujours avec le message "cette image est trop grande et elle va etre tronquée" puis fermeture de toute application excel.
Sur le fichier ca tourne en boucle et c'est impossible de le fermer...
Je te fais confiance pour y arriver!!!
0
f894009 Messages postés 17219 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 janvier 2025 1 712
7 mars 2012 à 08:46
Bonjour,
Merci de votre confiance, mais je ne vois pas ce qui ne va pas. Mon PC est en XP, vos fichiers tournent sans probleme. J'ai fait des essais sur un autre PC en W7, sans probleme. La seule difference avec vous, c'est que je ne peux pas faire les mises a jour de liaisons classeurs a cause des repertoires qui n'existe pas sur mon PC. En principe, cela ne devrait pas etre la cause de nos soucis.
A defaut de trouver le pourquoi du comment (je seche pour l'instant), dites moi s'il ne serait pas possible batir votre application differemment. Est-ce-que tout le code du fichier "Menu Normal Printemps" est utile, ainsi que tous les liens de classeurs??

A+
0
diabolo162 Messages postés 1002 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 9 octobre 2018 29
7 mars 2012 à 10:01
non les liens ne sont pas du tout utile...le texte suffirait amplement .

C'est une macro qui me génère automatiquement le classeur "Menu Normal printemps". Je ne sais pas comment on fait pour modifier format "liens" par un format "texte" par macro
0