Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 VBA fichier CSV

jcpat

XLDnaute Occasionnel
Bonjour,
j' espère tout le monde se porte bien.
Je cherche à extraire en mode macro de mon fichier excel une sauvegarde de mon onglet en fichier CSV
J'ai trouvé sur le web une macro VBA que j'ai adaptée mais celle ci m'extrait un fichier vide dans Mes Documents ..

je joint mon exemple , le bouton 1 lance ma macro.

Merci pour votre aide précieuse
Jc
 

Pièces jointes

  • csvtest.xlsm
    19.7 KB · Affichages: 10

patricktoulon

XLDnaute Barbatruc
bonjour
3 erreurs dans ton principe
1° le chemin doit etre complet
exemple ici on créée le csv sur le bureau

2 ton test if tablot(i,40)<>"" va forcement sauter toute les ligne puisque tu a rien dans la colonne 40
la bonne blague

3° on ouvre jamais un fichier avec l'index 1 tu a 90% de chance qu'un fichier actif ai cet index
utilise freefile pour avoir de sur!!! un index de libre
voila corrige moi la ligne if tablot(i,40).... et ce sera bon

VB:
Sub CSVfichier()
Dim Tablot, iR%, i%, Tmp$, Sep$, X
X = FreeFile
With Sheets("CSVtest") 'On travaille directement sur la feuille export
Sep = ";"
iR = .Range("A65000").End(xlUp).Row 'Détermine la dernière ligne
Tablot = .Range("A1:AP" & iR).Value 'Mémorise le tout dans un tableau
'Open "CSVtest.csv" For Output As #X
Open Environ("userprofile") & "\DeskTop\CSVtest.csv" For Output As #X
For i = 1 To iR
' ta colonne 40 est vide forcement toute les lignes vont etre sautées '
If Tablot(i, 40) <> "" Then 'Recopie uniquement les lignes du tableau <> ""
Tmp = ""
For k = 1 To 40
Tmp = Tmp & CStr(Tablot(i, k)) & Sep
Next

Print #X, Tmp

End If

Next

Close #1

End With

MsgBox "CSvtest.csv > OK !", vbInformation + vbOKOnly, "EXPORT DONNEES CSVWYND"

End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…