OVH Cloud OVH Cloud

toujours les CSV!

3 réponses
Avatar
Michel Voirain
Bonjour à tous et merci aux super répondeurs de cette liste,

Voilà mon problème : j'enregistre une feuille au format CSV par VBA. La
procédure fait tout et je me retrouve bien avec un fichier sauvegardé en CSV
et le séparateur est bien le ";". J'essaie de l'importer dans la compta et
ça ne marche pas. Mais, si j'ouvre manuellement le fichier produit (il fait
dans les 120k)et que je l'enregistre manuellement alors le fichier(là il ne
pèse que 15k) sera importé sans problème dans la compta.
De même, si à la place d'enregistrer par VBA, j'enregistre sous
manuellement, le fichier csv (de 15k) sera fonctionnel!
J'aimerais bien que cela fonctionne en VBA pour que l'utilisateur n'ait pas
besoin de faire ça manuellement!
Mais je cale !

Merci à tous,

Michel

3 réponses

Avatar
Modeste
Bonsour®
Michel Voirain wrote:
De même, si à la place d'enregistrer par VBA, j'enregistre sous
manuellement, le fichier csv (de 15k) sera fonctionnel!
J'aimerais bien que cela fonctionne en VBA pour que l'utilisateur
n'ait pas besoin de faire ça manuellement!


il faut lors de l'import par la méthode Opentext dans la macro VBA que le
dernier parametre "Local := True":
../..

Tiré de l'aide : OPENTEXT

Cette méthode ouvre et redistribue un fichier texte sous la forme d'un
nouveau classeur ne comportant qu'une seule feuille dans laquelle se
trouvent les données du fichier texte distribuées.

expression.OpenText(FileName, Origin, StartRow, DataType, TextQualifier,
ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar,
FieldInfo, TextVisualLayout, DecimalSeparator, ThousandsSeparator,
TrailingMinusNumbers, Local)

../..

@+



--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042

Avatar
michdenis
Bonjour Michel,

À partir d'un message que je publiais hier, si tu utilises ceci, est-ce que cela résout ton problème ?

À la lecture de la procédure, il y a quelques données que tu dois compléter selon ton application.

'-----------------------------------
Sub EnregistrerFormatSpecial()

Dim Plage As Range, Séparateur As String
Dim NomFichierSauvegarde As String
Dim R As Long, C As Integer

With ThisWorkbook.Worksheets("Feuil2") ' à déterminer
R = .Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
C = .Cells.Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column
Set Plage = .Range(.Range("A1"), Cells(R, C))
End With

Séparateur = ";" ' séparateur de ton choix
NomFichierSauvegarde = "C:Denis.csv" 'chemin et fichier à déterminer

SaveAsCSV Plage, Séparateur, NomFichierSauvegarde

End Sub
'-----------------------------------
Sub SaveAsCSV(Plage As Range, Séparateur As String, _
NomFichierSauvegarde As String)

Dim Temp As String, R As Range, C As Range

Open NomFichierSauvegarde For Output As #1
For Each R In Plage.Rows
Temp = ""
For Each C In R.Cells
Temp = Temp & C & Séparateur
Next
Temp = Left(Temp, Len(Temp) - 3)
Print #1, Temp
Next
Close
Set Plage = Nothing: Set C = Nothing: Set R = Nothing
End Sub
'-----------------------------------


Salutations!



"Michel Voirain" a écrit dans le message de news: %23yi8G%
Bonjour à tous et merci aux super répondeurs de cette liste,

Voilà mon problème : j'enregistre une feuille au format CSV par VBA. La
procédure fait tout et je me retrouve bien avec un fichier sauvegardé en CSV
et le séparateur est bien le ";". J'essaie de l'importer dans la compta et
ça ne marche pas. Mais, si j'ouvre manuellement le fichier produit (il fait
dans les 120k)et que je l'enregistre manuellement alors le fichier(là il ne
pèse que 15k) sera importé sans problème dans la compta.
De même, si à la place d'enregistrer par VBA, j'enregistre sous
manuellement, le fichier csv (de 15k) sera fonctionnel!
J'aimerais bien que cela fonctionne en VBA pour que l'utilisateur n'ait pas
besoin de faire ça manuellement!
Mais je cale !

Merci à tous,

Michel
Avatar
ClémentMarcotte
Bonjour,

Faut croire que je prêche dans le désert ;-)

http://groups.google.com/group/microsoft.public.fr.excel/browse_frm/thread/12d5abc8e563e119/b6d748f94a4046ea?lnk=st&q=points-virgules+guillemets+group:microsoft.public.fr.excel&rnum=1&hl=fr#b6d748f94a4046ea

http://groups.google.com/group/microsoft.public.fr.excel/browse_frm/thread/bbda902ceebe1733/a269872cbc67235c?lnk=st&q=points-virgules+guillemets+group:microsoft.public.fr.excel&rnum=2&hl=fr#a269872cbc67235c

http://groups.google.com/group/microsoft.public.fr.excel/browse_frm/thread/fdb8d5f1b0a7b833/bbe647f95da7d045?lnk=st&q=points-virgules+guillemets+group:microsoft.public.fr.excel&rnum=3&hl=fr#bbe647f95da7d045

http://groups.google.com/group/microsoft.public.fr.excel/browse_frm/thread/4462ab39cd2f62f2/c518e02d5d6df67d?lnk=st&q=points-virgules+guillemets+group:microsoft.public.fr.excel&rnum=3&hl=fr#c518e02d5d6df67d

etc.


"Michel Voirain" a écrit dans le message de
news:%23yi8G%
Bonjour à tous et merci aux super répondeurs de cette liste,

Voilà mon problème : j'enregistre une feuille au format CSV par VBA. La
procédure fait tout et je me retrouve bien avec un fichier sauvegardé en
CSV

et le séparateur est bien le ";". J'essaie de l'importer dans la compta et
ça ne marche pas. Mais, si j'ouvre manuellement le fichier produit (il
fait

dans les 120k)et que je l'enregistre manuellement alors le fichier(là il
ne

pèse que 15k) sera importé sans problème dans la compta.
De même, si à la place d'enregistrer par VBA, j'enregistre sous
manuellement, le fichier csv (de 15k) sera fonctionnel!
J'aimerais bien que cela fonctionne en VBA pour que l'utilisateur n'ait
pas

besoin de faire ça manuellement!
Mais je cale !

Merci à tous,

Michel