Enrégistrer des feuilles excel d'un classeur à un autre en CSV
omegaspe
-
omegaspe -
omegaspe -
Bonjour à tous,
J'espère qu'il y a encore du monde susceptible de m'aider. Mon pb est le suivant:
J'ai un classeur Excel avec plusieurs feuilles. Je dois faire un programme vba (bouton) me permettant, lors du click de copier les valeurs des feuilles du classeurs et d'enregistrer chaque feuille sur un nouveau classeur excel différent et de sauvegarder le tout dans un dossier créer automatiquement par la mm macro sur mon bureau. Et cela à chaque click il doit créer un nouveau dossier différent de l'ancien pour ainsi sauver à chaque fois les nouveau classeur.
J'arrive à créer un nouveau classeur pour copier les valeur des feuilles de l'autre classeur, mais il ne l'enrégistre pas format csv; voici mon programme:
Private Sub Enregistrer_Click()
Dim xlApp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = CreateObject("Excel.Application")
Set xlbook = xlApp.Workbooks.Add
xlApp.Visible = True
Set xlSheet = xlbook.Worksheets(1)
xlSheet.Name = "CSV_2014"
xlbook.Worksheets(1).Range("A1:B62").Value = Sheets("CSV_2014").Range("A1:B62").Value
xlbook.SaveAs ("ClasseurCSV_2014")
Nom = FormatCSV2014
Extension = ".csv"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs ("C:\Utilisateurs\Mon Nom\Mes documents") & Format2014_ & ".csv", xlCSV
ActiveWindow.Close
Application.DisplayAlerts = True
End Sub
ça c'est juste pour une feuille, je fais le reste en répétant plusieurs fois le mm prog.
Pour la création de dossier, il marque Erreur d'exécution 76, chemin d'accès introuvable:
Dim Chemin$, NomClient$, Fichier$
Const Cible = &H10 'Bureau
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(Cible)
Set objFolderItem = objFolder.Self
Chemin = "C:\Utilisateurs\AXFR9002.ENELFB\Mes Documents"
NomClient = Sheets("CSV_2014").Range("B3").Value
Dossier = NomClient & "CSV_2014"
MkDir objFolderItem.Path & Chemin & "Dossier"
ActiveWorkbook.SaveAs Chemin & NomClient
QlQ1 pourrait-il bien m'aider svp
J'espère qu'il y a encore du monde susceptible de m'aider. Mon pb est le suivant:
J'ai un classeur Excel avec plusieurs feuilles. Je dois faire un programme vba (bouton) me permettant, lors du click de copier les valeurs des feuilles du classeurs et d'enregistrer chaque feuille sur un nouveau classeur excel différent et de sauvegarder le tout dans un dossier créer automatiquement par la mm macro sur mon bureau. Et cela à chaque click il doit créer un nouveau dossier différent de l'ancien pour ainsi sauver à chaque fois les nouveau classeur.
J'arrive à créer un nouveau classeur pour copier les valeur des feuilles de l'autre classeur, mais il ne l'enrégistre pas format csv; voici mon programme:
Private Sub Enregistrer_Click()
Dim xlApp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = CreateObject("Excel.Application")
Set xlbook = xlApp.Workbooks.Add
xlApp.Visible = True
Set xlSheet = xlbook.Worksheets(1)
xlSheet.Name = "CSV_2014"
xlbook.Worksheets(1).Range("A1:B62").Value = Sheets("CSV_2014").Range("A1:B62").Value
xlbook.SaveAs ("ClasseurCSV_2014")
Nom = FormatCSV2014
Extension = ".csv"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs ("C:\Utilisateurs\Mon Nom\Mes documents") & Format2014_ & ".csv", xlCSV
ActiveWindow.Close
Application.DisplayAlerts = True
End Sub
ça c'est juste pour une feuille, je fais le reste en répétant plusieurs fois le mm prog.
Pour la création de dossier, il marque Erreur d'exécution 76, chemin d'accès introuvable:
Dim Chemin$, NomClient$, Fichier$
Const Cible = &H10 'Bureau
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(Cible)
Set objFolderItem = objFolder.Self
Chemin = "C:\Utilisateurs\AXFR9002.ENELFB\Mes Documents"
NomClient = Sheets("CSV_2014").Range("B3").Value
Dossier = NomClient & "CSV_2014"
MkDir objFolderItem.Path & Chemin & "Dossier"
ActiveWorkbook.SaveAs Chemin & NomClient
QlQ1 pourrait-il bien m'aider svp
A voir également:
- Excel enregistrer une seule feuille
- Audacity enregistrer son pc - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Déplacer une colonne excel - Guide
1 réponse
Bonjour,
1/
2/
si vous utilisez deja excel, pourquoi
Pour sauvegarder chaque feuille en fichiers CSV separee, pas besoin de creer un classeur
exemple de code pour sauvegarder la feuil1 en csv:
Worksheets("feuil1").SaveAs Filename:="C:\Utilisateurs\Mon Nom\Mes documents\" & Format2014_ & ".csv", FileFormat:=xlCSV, CreateBackup:=False
1/
Chemin = "C:\Utilisateurs\AXFR9002.ENELFB\Mes Documents\"
NomClient = Sheets("CSV_2014").Range("B3").Value
Dossier = NomClient & "CSV_2014"
MkDir objFolderItem.Path & Chemin & Dossier
2/
si vous utilisez deja excel, pourquoi
Dim xlApp As Excel.Applicationet ainsi de suite
Pour sauvegarder chaque feuille en fichiers CSV separee, pas besoin de creer un classeur
exemple de code pour sauvegarder la feuil1 en csv:
Worksheets("feuil1").SaveAs Filename:="C:\Utilisateurs\Mon Nom\Mes documents\" & Format2014_ & ".csv", FileFormat:=xlCSV, CreateBackup:=False
Merci pour ton aide. J'ai pu faire ce que je voulais mais j'ai juste un pb au nivo de la sauvegarde, il ne sauvegarde pas quand je choisis le dossier dans lequel il devrait s'enregistrer.
Encore merci pour ton aide et dsl du retard
voici où j'en suis:
Sub Enregistrer_Click()
Dim xlApp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim xlbook1 As Excel.Workbook
Dim xlSheet1 As Excel.Worksheet
Dim xlbook2 As Excel.Workbook
Dim xlSheet2 As Excel.Worksheet
Dim xlbook3 As Excel.Workbook
Dim xlSheet3 As Excel.Worksheet
Dim Chx As Integer
Set xlApp = CreateObject("Excel.Application")
Set xlbook = xlApp.Workbooks.Add
Set xlbook1 = xlApp.Workbooks.Add
Set xlbook2 = xlApp.Workbooks.Add
Set xlbook3 = xlApp.Workbooks.Add
xlApp.Visible = True
Set xlSheet = xlbook.Worksheets(1)
Set xlSheet1 = xlbook1.Worksheets(1)
Set xlSheet2 = xlbook2.Worksheets(1)
Set xlSheet3 = xlbook3.Worksheets(1)
xlSheet.Name = "CSV_2014"
xlSheet1.Name = "CSV_2015"
xlSheet2.Name = "CSV_2016"
xlSheet3.Name = "CSV_2017"
xlbook.Worksheets(1).Range("A1:B62").Value = Sheets("CSV_2014").Range("A1:B62").Value
xlbook1.Worksheets(1).Range("A1:B62").Value = Sheets("CSV_2015").Range("A1:B62").Value
xlbook2.Worksheets(1).Range("A1:B62").Value = Sheets("CSV_2016").Range("A1:B62").Value
xlbook3.Worksheets(1).Range("A1:B62").Value = Sheets("CSV_2017").Range("A1:B62").Value
Chx = MsgBox("où voulez-vous sauvegarder?", vbYesNo + vbQuestion, "mDF XLpages.com")
If Chx = vbYes Then
Dim chemin As String
Dim Cls As String
Dim objShell As Object, objFolder As Object, oFolderItem As Object
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire pour l'enregistrement du fichier", &H1&)
On Error GoTo Gesterr
Set oFolderItem = objFolder.Items.Item
chemin = oFolderItem.Path
nom = InputBox("Indiquer le nom du fichier :")
xlbook.SaveAs ("CopieCSV_2014") & chemin & ".csv" & Chx
xlbook1.SaveAs ("CopieCSV_2015") & chemin & ".csv" & Chx
xlbook2.SaveAs ("CopieCSV_2016") & chemin & ".csv" & Chx
xlbook3.SaveAs ("CopieCSV_2017") & chemin & ".csv" & Chx
MsgBox chemin & nom & ".csv"
Gesterr::
Else
CreateObject("Wscript.shell").Popup "Le fichier n'a pas été sauvegardé... Bonne journée", vbExclamation
End If
ActiveWorkbook.SaveAs Filename:=("\")
End Sub
Après avoir créer mes 4 classeur, il me laisse le choix de la sauvegarde. Je choisis le dossier mais apres il ne sauvegarde rien.
et apres il faut mettre ce nom au bout du chemin, mais attention un seul nom pour quatre fichiers!!!!!
ne pas oublier le backslash
ca ne vous fera jamais un fichier CSV
ca oui:
exemple de code pour sauvegarder la feuil1 en csv:
Vous n'avez pas repondu a la question: pourquoi
Dsl je n'ai pas fais attention, vu que je suis débutant sur excel, l'application excel m'a semblé plus simple, j'ai pu comprendre facilement. Mais tu as raison, pourquoi créer une application excel alors que je suis sur excel.
Mais justement il y a un autre pb, lorsque je mets xlbook.SaveAs(" ") & chemin a ".csv" & chx
après xlbook3.Worksheets(1).Range("A1:B62").Value = Sheets("CSV_2017").Range("A1:B62").Value
il sauvegarde mes 4 classeurs en Format csv mais automatiquement dans mes document et cela malgrés le msgbox
xlbook.Worksheets(1).SaveAs Filename:="C:\...\" & nom & ".csv", FileFormat:=xlCSV, CreateBackup:=False