[VBA] - Copier coller feuille entière dans un nouveau excel
Résolu
Archi89
Messages postés
6
Statut
Membre
-
Archi89 Messages postés 6 Statut Membre -
Archi89 Messages postés 6 Statut Membre -
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. ;)
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. ;)
A voir également:
- [VBA] - Copier coller feuille entière dans un nouveau excel
- Retrouver un copier-coller android - Guide
- Copier-coller - Accueil - Informatique
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Copier coller pdf - Guide
2 réponses
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")
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")
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
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
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")
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")