Enregistrement fichier csv

Bonjour à toutes et à tous,

Je rencontre quelques soucis... Mon programme que suit ne se lance plus..

je souhaiterai que l'on puisse choisir l'emplacement et le nom d'enregistrement du fichier excel enregistré sous csv..

J'ai pensé à ajouter un Filename:="" ou encore Filename:=TextBox.value or plus rien ne se lance.. >.<

Merci d'avance pour votre aide ! :)

Sub ExportCSV()

Dim Fichier As String

On Error Resume Next

Fichier = Application.GetSaveAs(fileFilter:="Excel Files (*.csv), *.csv")

If Fichier <> False Then ThisWorkbook.SaveAs Filename:=TextBox.Value, FileFormat:=xlCSV, CreateBackup:=True

End Sub

Bonjour

Vous auriez pu rester sur votre fil initial -->https://forum.excel-pratique.com/excel/exporter-fichier-excel-en-csv-170856

Qui plus est, dans ce même fil, je vous ai invité à mettre vos codes avec les balises... allez-vous le faire ?

Vous lancez votre code depuis une userform ?

Qu'appelez-vous "balises"?

Du tout, je le lance depuis un bouton affecté à une macro..

J'ai tenté de modifier votre programme pour pouvoir choisir le nom et depuis plus rien ne se passe... (Je ne suis pas forte en vba je débute^^')

Qu'appelez-vous "balises"?

Je vous l'ai expliqué dans le fil précédent..

dans la barre de menu -->

balises

Du tout, je le lance depuis un bouton affecté à une macro..

1. Dans votre code du bouton ajoutez l'instruction ci-dessous

Call ExportCSV

2. Placez le code Sub ExportCSV dans votre userform. Ajoutez aussi le mot PRIVATE devant SUB --> Private Sub ExportCSV

Je n'avais pas compris, excusez-moi.. ^^

Le code que j'ai mis dans le userform est :

Private Sub ExportCSV()
    Dim Fichier As String
    On Error Resume Next 'Continuer l'exécution du programme même lorsqu'une erreur est détectée
    Fichier = Application.GetSaveAs(fileFilter:="Excel Files (*.csv), *.csv" & Name = "ProjetStockCSV")
    If Fichier <> False Then ThisWorkbook.SaveAs FileFormat:=xlCSV, CreateBackup:=True   'Si le fichier n'est pas vide, le sauvegarder sous format Excel-CSV en créant une sauvegarde
End Sub

Dans le bouton "oui" j'ai mis :

Private Sub ExportCSV()
    Dim Fichier As String
    On Error Resume Next 'Continuer l'exécution du programme même lorsqu'une erreur est détectée
    Fichier = Application.GetSaveAs(fileFilter:="Excel Files (*.csv), *.csv" & Name = "ProjetStockCSV")
    If Fichier <> False Then ThisWorkbook.SaveAs FileFormat:=xlCSV, CreateBackup:=True   'Si le fichier n'est pas vide, le sauvegarder sous format Excel-CSV en créant une sauvegarde
End Sub

Private Sub CommandButton1_Click()
Call ExportCSV
End Sub
image

Si je mets oui, cela va m'enregistrer le même fichier sous CSV et non pouvoir modifier le nom...

- Que pourrais-je ajouter afin d'avoir l'explorateur de fichier et pouvoir choisir un nom d'enregistrement + choisir l'endroit où l'enregistrer ?

- Autre question, comment faire pour n'exporter que la feuille "résultats" en csv et non tout le fichier excel ?

merci pour l'info !

et merci pour vos réponses :)

Bonjour

Si je mets oui, cela va m'enregistrer le même fichier sous CSV et non pouvoir modifier le nom...

La ligne de code Fichier = ....... que vous utilisez n'est pas identique à celui que je vous ai proposé
Vous aviez demandé à ouvrir une fenêtre pour le choix. --> https://forum.excel-pratique.com/s/goto/1059184
Avec la ligne que vous avez mise, ce n'est pas correct et le code va planter. Si vous ne le voyez pas c'est dû à la ligne On error resume next

Expliquez ce que vous voulez faire exactement

J'ai tenté de modifier votre proposition afin de pouvoir changer le nom et l'emplacement

En enlevant la partie avec "name" cela me donne le même résultat :

image

Que dois-je faire pour que cela fonctionne?

Quel est le nom du fichier que vous utilisez et sous quel nom voulez-vous le sauver ?

Le nom de base est "Projet Stock VBA Macro"

Je souhaiterai avoir la possibilité lors de l'enregistrement de modifier ce nom (créer une sauvegarde avec un nom que je choisirai en l'enregistrant et pouvoir dire "je l'enregistre sur le bureau ou dans tel dossier"

Avec le code que je vous ai donné dans le fil précédent, le code

- ouvre la fenêtre "Enregister Sous" de windows
- vous permet d'ajouter votre nom dans la rubrique "Nom de fichier"

image

Voilà ce que me donne votre code du fil précédent... Cela ouvre, je peux modifier le nom mais après "enregistrer" cela me met ça :

image

Bah logique car de nouveau le code n'est pas celui que je vous ai proposé
Pourquoi mettez-vous l'instruction CreateBackup à TRUE ?

Essayez le code comme ceci :

Sub ExportCSV()
    Dim Fichier As String
    On Error Resume Next
    Fichier = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.csv), *.csv")
    If Fichier <> False Then ThisWorkbook.SaveAs Fichier
End Sub

Par contre dans la rubrique Type, vous devriez trouver CSV

Edit : vous pouvez aussi essayer comme ceci. C'est même mieux

Private Sub ExportCSV()
Dim Fichier As String
Fichier = Application.GetSaveAsFilename(FileFilter:="Excel Files (*.csv), *.csv")
If Fichier <> False Then
    ActiveSheet.Copy 'sauvegarde de la feuille active
    With ActiveWorkbook
        .SaveAs FileName:=Fichier, FileFormat:=xlCSV 
        .Close SaveChanges:=False
    End With
End If
End Sub

Où se situe la rubrique Type svp? Je ne l'ai pas trouvée

image

Où se situe la rubrique Type svp? Je ne l'ai pas trouvée

presse papier02

Pour l'erreur je ne sais rien dire là... cliquer sur débogage pour voir la ligne où se situe l'erreur

edit :
si c'est sur Activesheet, remplacez le nom Activesheet par --> Sheets("nom de votre feuille") . Mettez bien les guillemets avant et après le nom de votre feuille

Je n'ai pas comme vous..

image image

Le bug se situe au niveau du If

image

Mettez des lettres mais pas de chiffres uniquement

Cela donne la même chose..

Quelle est votre version excel (là je vois 2203 dans votre profil !. cela n'existe pas)

Lorsque vous cliquez sur TYPE vous voyez bien une option CSV ?

image

C'est tout ce que j'ai comme info..

Rechercher des sujets similaires à "enregistrement fichier csv"