[VBA] - Copier coller feuille entière dans un nouveau excel [Résolu/Fermé]

Signaler
Messages postés
6
Date d'inscription
mercredi 23 juillet 2014
Statut
Membre
Dernière intervention
29 juillet 2014
-
Messages postés
6
Date d'inscription
mercredi 23 juillet 2014
Statut
Membre
Dernière intervention
29 juillet 2014
-
Bonjour tout le monde,

J'ai un soucis, je voudrais copier une feuille entière ("Etape1") de mon classeur actuel (là où il y a ma macro, donc thisworkbook) dans un nouveau classeur dans une feuille "Calcul".
Ce nouveau classeur n'existe encore pas et je voudrais qu'il s'appelle "Visualisation picking.xls" avec trois feuilles ("Picking_S4", "Picking_S5" et "Calcul").
J'ai commencé ce code mais il y a une erreur d'exècution que je ne parviens pas à résoudre:

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

'On créer l'objet Excel
Set xlApp = CreateObject("Excel.Application")
'On défini le nombre d'onglets (ici 2)
xlApp.SheetsInNewWorkbook = 3
'On ajoute un classeur
Set xlBook = xlApp.Workbooks.Add
'On donne un nom au classeur
xlBook.SaveAs ("Visualisation picking.xls")
'On rend le classeur visible.
xlApp.Visible = True
'On créer l'objet onglet dans le nouveau classeur créé
Set xlSheet = xlBook.Worksheets(1)
'On affecte un nom aux l'onglets
xlSheet.Name = "Picking_S4"
'on libère l'objet onglet pour pouvoir en créer un nouveau ... etc
Set xlSheet = Nothing
Set xlSheet = xlBook.Worksheets(2)
xlSheet.Name = "Picking_S5"
Set xlSheet = Nothing
Set xlSheet = xlBook.Worksheets(3)
xlSheet.Name = "Calcul" '
'On remet la propriété de l'application à 3 (par défaut)
xlApp.SheetsInNewWorkbook = 3


Dim classeurSource1 As Workbook, classeurDestination1 As Workbook
Set classeurSource1 = ThisWorkbooks
Set classeurDestination1 = Workbooks("Visualisation picking.xls")

classeurSource.Sheets("Etape1").Cells.Copy classeurDestination.Sheets("Calcul").Range("A1")



Le problème se situe au niveau de la boucle xlBook.SaveAs mais si j'enlève la fin de mon code (à partir de Dim classeurSource1...). Le code marche. La combinaison des deux ne marche pas, comme si il y avait conflit entre xlBook.SaveAs ("Visualisation picking.xls") et Set classeurDestination1 = Workbooks("Visualisation picking.xls")

Merci par avance. ;)

2 réponses

Messages postés
113
Date d'inscription
vendredi 18 juillet 2014
Statut
Membre
Dernière intervention
21 novembre 2014
7
Bonjour,

Le problème vient de là :

xlBook.SaveAs ("Visualisation picking.xls")

Quand tu enregistres sous il faut indiquer l'addresse complète comme par ex :

xlBook.SaveAs ("C:\REPERTOIRE\Visualisation picking.xls")
Messages postés
6
Date d'inscription
mercredi 23 juillet 2014
Statut
Membre
Dernière intervention
29 juillet 2014

Merci.
Je n'avais pas pensé à ceci. Et comment enregistrer directement dans le même répertoire que mon thisworkbook?
Quelle est la syntaxe pour avoir le nom du chemin complet de mon thisworkbook?
Merci
Messages postés
113
Date d'inscription
vendredi 18 juillet 2014
Statut
Membre
Dernière intervention
21 novembre 2014
7
Dans un premier temps delare une variable public dans un module à part du genre :

Public Chemin as variant (en dehors d'une macro

Ensuite mets le code suiivant dans This Workbook :

Sub Workbook_Open()
Chemin = ActiveWorkbook.Path & "\"
End Sub


La variable Chemin contiendra l'adresse de ton fichier tu n'as plus qu'à utiliser ensuitte :

xlBook.SaveAs (Chemin & "Visualisation picking.xls")
Messages postés
6
Date d'inscription
mercredi 23 juillet 2014
Statut
Membre
Dernière intervention
29 juillet 2014

Parfait! Merci beaucoup. Il manquait la commande "path" à mon vocabulaire.