Macro VBA : Exporter données en .csv

Lau_rent

XLDnaute Nouveau
Bonjour,

Je cherche une macro permettant de générer un fichier .csv, des colonnes B, C et H de mon fichier "Données.xls",
mais uniquement à partir de la 3ème ligne, et sans les cellules vides

J'ai trouvé quelques trucs sur le net ressemblant à ce que je souhaite faire, notamment ceci :

Code:
Sub ExportCSV()
Dim Plage As Object, oL As Object, oC As Object, Tmp As String, Sep$
Dim NomEtCheminFichier As String
NomEtCheminFichier = "C:\Temp\Export.csv"
 Set plage = ActiveSheet.Range("A2:f" & ActiveSheet.Range("A65000").End(3).Row)
   Plage.Copy
    Workbooks.Add
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWorkbook.SaveAs Filename:=NomEtCheminFichier, FileFormat:=xlCSV, CreateBackup:=False
    ActiveWindow.Close
End Sub


Mais je n'arrive pas à l'adapté à mes colonnes B, C et H et à partir de la 3eme ligne.

Si quelqu'un peut m'aider ? Merci bcp !
 

Pièces jointes

  • Donnees.xlsx
    8.2 KB · Affichages: 94
  • Donnees.xlsx
    8.2 KB · Affichages: 94
  • Donnees.xlsx
    8.2 KB · Affichages: 107
Dernière édition:

Paf

XLDnaute Barbatruc
Re : Macro VBA : Exporter données en .csv

Bonjour

peut-être en modifiant la plage comme ceci:

Code:
DerLig = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
Set Plage = ActiveSheet.Range("B3:C" & DerLig & ",H3:H" & DerLig)

A+

EDIT:

Bonjour camarchepas
 
Dernière édition:

Lau_rent

XLDnaute Nouveau
Re : Macro VBA : Exporter données en .csv

Merci pour cotre correction. Cela fonctionne nickel.

Je voudrais apporter une autre modification à ce code :
Je voudrais que le nom du fichier exporté comporte (automatiquement) la date du jour. Il aurait donc le format suivant :

Export_2015_01_05.csv pour un export réalisé aujourd'hui.

Pouvez-vous adapter le code en conséquence ?
 

camarchepas

XLDnaute Barbatruc
Re : Macro VBA : Exporter données en .csv

Bonjour Paf, Laurent

comme ceci peut être :

Code:
Sub ExportCSV()
 Dim Plage As Object, oL As Object, oC As Object, Tmp As String, Sep$
 Dim NomEtCheminFichier As String, Derlig as long 
 NomEtCheminFichier = "C:\Temp\Export_" & Year(Date) & "_" & Right("0" & Month(Date), 2) & "_" & Right("0" & Day(Date), 2) & ".csv"

DerLig = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
 Set Plage = ActiveSheet.Range("B3:C" & DerLig & ",H3:H" & DerLig)
    Plage.Copy
     Workbooks.Add
     ActiveSheet.Paste
     Application.CutCopyMode = False
     ActiveWorkbook.SaveAs Filename:=NomEtCheminFichier, FileFormat:=xlCSV, CreateBackup:=False
     ActiveWindow.Close
 End Sub
 

Lau_rent

XLDnaute Nouveau
Re : Macro VBA : Exporter données en .csv

Super, ça marche ! Vous êtes vraiment incroyable pour la rapidité et la justesse de vos réponses !

Du coup j'en profite pour vous demander une dernière chose par rapport à ce code :

Je voudrais, qu'avant de créer l'export en question :

- que certains caractères des colonnes B ET C soient remplacés par d'autres caractères. (Exemple "é","è","ë" remplacés par "e" ; "ç" par "c" ou encore "-" par " ")
- que certain caractères de la colonne H soient remplacés par d'autres caractères (mais pas les mêmes règles que pour la colonne que les colonne H)

Ceci, afin de pouvoir garder les caractères "spéciaux" dans le fichier donees.xls

Pouvez-vous ajouter les lignes de codes permettant cela. J'adapterai le code avec les caractères que je souhaite remplacer....
 

Pièces jointes

  • Donnees.xlsx
    9.4 KB · Affichages: 88
  • Donnees.xlsx
    9.4 KB · Affichages: 89
  • Donnees.xlsx
    9.4 KB · Affichages: 124

camarchepas

XLDnaute Barbatruc
Re : Macro VBA : Exporter données en .csv

une solution facile à mettre en oeuvre :

Nom = Replace(Nom, "É", "E")
Nom = Replace(Nom, "Ñ", "N")
Nom = Replace(Nom, "â", "a")
Nom = Replace(Nom, "ä", "a")
Nom = Replace(Nom, "á", "a")
Nom = Replace(Nom, "ê", "e")
Nom = Replace(Nom, "ë", "e")
Nom = Replace(Nom, "é", "e")
Nom = Replace(Nom, "è", "e")
Nom = Replace(Nom, "ï", "i")
Nom = Replace(Nom, "í", "i")
Nom = Replace(Nom, "ö", "o")
Nom = Replace(Nom, "ü", "u")
 

Discussions similaires

Réponses
4
Affichages
1 K

Statistiques des forums

Discussions
312 152
Messages
2 085 797
Membres
102 979
dernier inscrit
brossadan