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 !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
-- 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
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.
--
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
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.
-- 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
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
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" <michel.voirain@wanadoo.fr> a écrit dans le message de news: %23yi8G%23ZxFHA.2848@TK2MSFTNGP15.phx.gbl...
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 !
À 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 !
"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
"Michel Voirain" <michel.voirain@wanadoo.fr> a écrit dans le message de
news:%23yi8G%23ZxFHA.2848@TK2MSFTNGP15.phx.gbl...
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
"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