Export CSV

Export CSV - VB/VBA/VBS - Programmation

Marsh Posté le 09-07-2012 à 12:30:20    

Hello,
 
question moisie que vous avez déjà du faire :
 
j'ai un beau classeur, et j'aimerais en sortir des CSV.
Seul problème, quand j'enregistre en csv :  
ActiveWorkbook.SaveAs FileName:=FileName, FileFormat:=xlCSV, CreateBackup:=False, Local:=True
il change le nom du classeur courant, or mon utilisateur voudrait continuer à bosser sur son fichier.
Je peux le ressauver en xls derrière, mais c'est foireux, faut aussi renommer l'onglet, et ca pose quelques problèmes de compatibilités de version :
ActiveWorkbook.SaveAs FileName:=FileName, FileFormat:="56", CreateBackup:=False
 
On doit pouvoir faire plus classe, non ?

Reply

Marsh Posté le 09-07-2012 à 12:30:20   

Reply

Marsh Posté le 10-07-2012 à 11:50:32    

Bon, je me réponds sur moi-même :
j'ai trouvé quantité de macros pour écrire un csv à la mano.
J'imagine qu'ils n'auraient pas fait ça s'il y avait un moyen d'écrire de faire proprement des exports csv.

Reply

Marsh Posté le 13-07-2012 à 01:12:01    

Salut, à adapter à ton contexte.
Un fichier CSV ne comporte qu'une feuille, si ton fichier XLS en comporte plusieurs il faudra sélectionner celle que l'on veut sauver en CSV.
Par défaut ici le fichier CSV portera la nom d'onglet de la feuille sélectionnée.

Option Explicit
 
Sub Tst()
Dim sNomCsv As String
Dim Wkb As Workbook
Dim Plage As Range
 
    Application.ScreenUpdating = False
     
    ChDir ThisWorkbook.Path
    sNomCsv = ThisWorkbook.ActiveSheet.Name & ".csv"
 
    Set Plage = ThisWorkbook.ActiveSheet.UsedRange
    Set Wkb = Workbooks.Add
 
    Plage.Copy Wkb.ActiveSheet.Range("A1" )
 
    Application.DisplayAlerts = False
    Wkb.SaveAs _
            Filename:=ThisWorkbook.Path & "\" & sNomCsv, _
            FileFormat:=xlCSV, Local:=True
    Wkb.Close
 
    With Application
        .DisplayAlerts = True
        .ScreenUpdating = True
    End With
 
    Set Plage = Nothing
    Set Wkb = Nothing
End Sub


Message édité par kiki29 le 13-07-2012 à 01:22:23

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 25-09-2012 à 18:49:24    

Ahh, je n'avais pas vu cette réponse !
C'est génial, tu crées un autre classeur que tu remplis, sauve, et ferme !
Bien que j'aie fini mon projet précédent avec la méthode crade sus-citée, je vais me faire un plaisir de le mettre à jour avec cette méthode classe.
 
Thx !!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed