Voil=E0 mon probl=E8me :
J'enregistre un fichier Excel au format CSV du type 4=20
colonnes, 10 lignes et =E7a marche tres bien sur mon poste=20
(Excel XP) : le fichier contient les donn=E9es s=E9par=E9es par=20
des ';' et quand je le r=E9-ouvre, tout revient en colonnes.
Si je copie ce CSV sur un autre PC (Excel 2000), tout=20
fonctionne encore tr=E8s bien : quand j'ouvre le fichier,=20
tout se remet en colonnes.
Par contre sur ce nouveau PC (Excel 2000), si je modifie=20
quelquechose et que je l'enregistre =E0 nouveau (toujours en=20
CSV), le fichier contient bien les donn=E9es s=E9par=E9es par=20
des ';' mais quand je le r=E9-ouvre, il apparait sur une=20
seule colonne avec les ';'...
J'ai v=E9rifi=E9 les options r=E9gionales de chacun des 2 PC,=20
c'est bien le ';' qui est le s=E9parateur de liste...
Je cherche donc une =E2me charitable capable de m'aider...
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
michdenis
Bonjour Fabrice,
La différence comportementale des version excel 2000 et excel 2002 tiens à ce paramètre que l'on retrouve sur excel xp lorsque l'on enregistre le fichier par le bouton de commande ou par une ligne de code comme celle-là .
ThisWorkbook.SaveAs ..... Excel 2000 ne dispose pas du paramètre suivant et le comportement que tu observes sur celui-ci est "!normal".
Local Argument de type Variant facultatif. La valeur True enregistre les fichiers en fonction de la langue de Microsoft Excel (y compris les paramètres du Panneau de configuration). La valeur False (valeur par défaut) enregistre les fichiers en fonction de la langue de Visual Basic pour Applications (VBA) (qui est généralement l'anglais des États-Unis, sauf si le projet VBA où Workbooks.Open est exécuté est un ancien projet VBA XL5/95 de niveau international).
Salutations!
"Fabrice" a écrit dans le message de news:077801c3ce24$fbf8ffd0$ Bonjour à tous
Voilà mon problème : J'enregistre un fichier Excel au format CSV du type 4 colonnes, 10 lignes et ça marche tres bien sur mon poste (Excel XP) : le fichier contient les données séparées par des ';' et quand je le ré-ouvre, tout revient en colonnes.
Si je copie ce CSV sur un autre PC (Excel 2000), tout fonctionne encore très bien : quand j'ouvre le fichier, tout se remet en colonnes.
Par contre sur ce nouveau PC (Excel 2000), si je modifie quelquechose et que je l'enregistre à nouveau (toujours en CSV), le fichier contient bien les données séparées par des ';' mais quand je le ré-ouvre, il apparait sur une seule colonne avec les ';'...
J'ai vérifié les options régionales de chacun des 2 PC, c'est bien le ';' qui est le séparateur de liste...
Je cherche donc une âme charitable capable de m'aider...
Merci
Fabrice
Bonjour Fabrice,
La différence comportementale des version excel 2000 et excel 2002 tiens à ce paramètre que l'on retrouve sur excel xp
lorsque l'on enregistre le fichier par le bouton de commande ou par une ligne de code comme celle-là .
ThisWorkbook.SaveAs ..... Excel 2000 ne dispose pas du paramètre suivant et le comportement que tu observes sur celui-ci est
"!normal".
Local Argument de type Variant facultatif. La valeur True enregistre les fichiers en fonction de la langue de Microsoft
Excel (y compris les paramètres du Panneau de configuration). La valeur False (valeur par défaut) enregistre les fichiers en
fonction de la langue de Visual Basic pour Applications (VBA) (qui est généralement l'anglais des États-Unis, sauf si le
projet VBA où Workbooks.Open est exécuté est un ancien projet VBA XL5/95 de niveau international).
Salutations!
"Fabrice" <bertrandsf@hotmail.com> a écrit dans le message de news:077801c3ce24$fbf8ffd0$a601280a@phx.gbl...
Bonjour à tous
Voilà mon problème :
J'enregistre un fichier Excel au format CSV du type 4
colonnes, 10 lignes et ça marche tres bien sur mon poste
(Excel XP) : le fichier contient les données séparées par
des ';' et quand je le ré-ouvre, tout revient en colonnes.
Si je copie ce CSV sur un autre PC (Excel 2000), tout
fonctionne encore très bien : quand j'ouvre le fichier,
tout se remet en colonnes.
Par contre sur ce nouveau PC (Excel 2000), si je modifie
quelquechose et que je l'enregistre à nouveau (toujours en
CSV), le fichier contient bien les données séparées par
des ';' mais quand je le ré-ouvre, il apparait sur une
seule colonne avec les ';'...
J'ai vérifié les options régionales de chacun des 2 PC,
c'est bien le ';' qui est le séparateur de liste...
Je cherche donc une âme charitable capable de m'aider...
La différence comportementale des version excel 2000 et excel 2002 tiens à ce paramètre que l'on retrouve sur excel xp lorsque l'on enregistre le fichier par le bouton de commande ou par une ligne de code comme celle-là .
ThisWorkbook.SaveAs ..... Excel 2000 ne dispose pas du paramètre suivant et le comportement que tu observes sur celui-ci est "!normal".
Local Argument de type Variant facultatif. La valeur True enregistre les fichiers en fonction de la langue de Microsoft Excel (y compris les paramètres du Panneau de configuration). La valeur False (valeur par défaut) enregistre les fichiers en fonction de la langue de Visual Basic pour Applications (VBA) (qui est généralement l'anglais des États-Unis, sauf si le projet VBA où Workbooks.Open est exécuté est un ancien projet VBA XL5/95 de niveau international).
Salutations!
"Fabrice" a écrit dans le message de news:077801c3ce24$fbf8ffd0$ Bonjour à tous
Voilà mon problème : J'enregistre un fichier Excel au format CSV du type 4 colonnes, 10 lignes et ça marche tres bien sur mon poste (Excel XP) : le fichier contient les données séparées par des ';' et quand je le ré-ouvre, tout revient en colonnes.
Si je copie ce CSV sur un autre PC (Excel 2000), tout fonctionne encore très bien : quand j'ouvre le fichier, tout se remet en colonnes.
Par contre sur ce nouveau PC (Excel 2000), si je modifie quelquechose et que je l'enregistre à nouveau (toujours en CSV), le fichier contient bien les données séparées par des ';' mais quand je le ré-ouvre, il apparait sur une seule colonne avec les ';'...
J'ai vérifié les options régionales de chacun des 2 PC, c'est bien le ';' qui est le séparateur de liste...
Je cherche donc une âme charitable capable de m'aider...
Merci
Fabrice
Fabrice
Merci pour la rapidité de la réponse mais...
En clair, est-ce qu'il y a une solution ???
Je n'utilise pas VBA dans ce cas et le passage par Excel XP n'est que facultatif...
Puis-je m'en sortir avec mon Excel 2000 ?
Merci
Fabrice
Merci pour la rapidité de la réponse mais...
En clair, est-ce qu'il y a une solution ???
Je n'utilise pas VBA dans ce cas et le passage par Excel
XP n'est que facultatif...
Je n'utilise pas VBA dans ce cas et le passage par Excel XP n'est que facultatif...
Puis-je m'en sortir avec mon Excel 2000 ?
Merci
Fabrice
Clément Marcotte
Bonjour,
Juste à pas passer par enregistrer sous.
La procédure suivante utilise trois façons d'écrire un fichier texte avec VB-VBA:
Sub ecrirelefichiertexteavecdesvirgules() Open "unbeaufichiertexte.txt" For Output As 1 Dim i As Integer, derniereligne As Integer Sheets("Feuil1").Select derniereligne = [a65536].End(xlUp).Row 'Avec Write For i = 1 To derniereligne Write #1, Cells(i, 1).Value; Cells(i, 2).Value; _ Cells(i, 3).Value; Cells(i, 4).Value Next 'Avec Print et virgules 'Le séparateur dans le fichier est entre guillemets 'le séparateur VBA n'est pas entre guillemets For i = 1 To derniereligne Print #1, Chr(34); Cells(i, 1).Value; Chr(34); _ ","; Chr(34); Cells(i, 2).Value; Chr(34); _ ","; Cells(i, 3).Value; ","; Chr(34); _ Cells(i, 4).Value; Chr(34) Next 'Le séparateur dans le fichier est entre guillemets 'le séparateur VBA n'est pas entre guillemets 'sauf pour les points-virgules qui collent les 'nom et les guillemets For i = 1 To derniereligne Print #1, Chr(34); Cells(i, 1).Value; Chr(34), ",", _ Chr(34); Cells(i, 2).Value; Chr(34); , _ ",", Cells(i, 3).Value, ",", Chr(34); _ Cells(i, 4).Value; Chr(34) Next Close End Sub
"Fabrice" a écrit dans le message de news:07ff01c3ce29$d5c14520$ Merci pour la rapidité de la réponse mais...
En clair, est-ce qu'il y a une solution ???
Je n'utilise pas VBA dans ce cas et le passage par Excel XP n'est que facultatif...
Puis-je m'en sortir avec mon Excel 2000 ?
Merci
Fabrice
Bonjour,
Juste à pas passer par enregistrer sous.
La procédure suivante utilise trois façons d'écrire un fichier texte
avec VB-VBA:
Sub ecrirelefichiertexteavecdesvirgules()
Open "unbeaufichiertexte.txt" For Output As 1
Dim i As Integer, derniereligne As Integer
Sheets("Feuil1").Select
derniereligne = [a65536].End(xlUp).Row
'Avec Write
For i = 1 To derniereligne
Write #1, Cells(i, 1).Value; Cells(i, 2).Value; _
Cells(i, 3).Value; Cells(i, 4).Value
Next
'Avec Print et virgules
'Le séparateur dans le fichier est entre guillemets
'le séparateur VBA n'est pas entre guillemets
For i = 1 To derniereligne
Print #1, Chr(34); Cells(i, 1).Value; Chr(34); _
","; Chr(34); Cells(i, 2).Value; Chr(34); _
","; Cells(i, 3).Value; ","; Chr(34); _
Cells(i, 4).Value; Chr(34)
Next
'Le séparateur dans le fichier est entre guillemets
'le séparateur VBA n'est pas entre guillemets
'sauf pour les points-virgules qui collent les
'nom et les guillemets
For i = 1 To derniereligne
Print #1, Chr(34); Cells(i, 1).Value; Chr(34), ",", _
Chr(34); Cells(i, 2).Value; Chr(34); , _
",", Cells(i, 3).Value, ",", Chr(34); _
Cells(i, 4).Value; Chr(34)
Next
Close
End Sub
"Fabrice" <bertrandsf@hotmail.com> a écrit dans le message de
news:07ff01c3ce29$d5c14520$a401280a@phx.gbl...
Merci pour la rapidité de la réponse mais...
En clair, est-ce qu'il y a une solution ???
Je n'utilise pas VBA dans ce cas et le passage par Excel
XP n'est que facultatif...
La procédure suivante utilise trois façons d'écrire un fichier texte avec VB-VBA:
Sub ecrirelefichiertexteavecdesvirgules() Open "unbeaufichiertexte.txt" For Output As 1 Dim i As Integer, derniereligne As Integer Sheets("Feuil1").Select derniereligne = [a65536].End(xlUp).Row 'Avec Write For i = 1 To derniereligne Write #1, Cells(i, 1).Value; Cells(i, 2).Value; _ Cells(i, 3).Value; Cells(i, 4).Value Next 'Avec Print et virgules 'Le séparateur dans le fichier est entre guillemets 'le séparateur VBA n'est pas entre guillemets For i = 1 To derniereligne Print #1, Chr(34); Cells(i, 1).Value; Chr(34); _ ","; Chr(34); Cells(i, 2).Value; Chr(34); _ ","; Cells(i, 3).Value; ","; Chr(34); _ Cells(i, 4).Value; Chr(34) Next 'Le séparateur dans le fichier est entre guillemets 'le séparateur VBA n'est pas entre guillemets 'sauf pour les points-virgules qui collent les 'nom et les guillemets For i = 1 To derniereligne Print #1, Chr(34); Cells(i, 1).Value; Chr(34), ",", _ Chr(34); Cells(i, 2).Value; Chr(34); , _ ",", Cells(i, 3).Value, ",", Chr(34); _ Cells(i, 4).Value; Chr(34) Next Close End Sub
"Fabrice" a écrit dans le message de news:07ff01c3ce29$d5c14520$ Merci pour la rapidité de la réponse mais...
En clair, est-ce qu'il y a une solution ???
Je n'utilise pas VBA dans ce cas et le passage par Excel XP n'est que facultatif...
Puis-je m'en sortir avec mon Excel 2000 ?
Merci
Fabrice
michdenis
Bonjour Fabrice,
Il y a cette macro :
'-------------------------------- Sub CSVOpener() 'd'après P. Penet, mpfe Dim wb As Workbook, NomFich
With Application NomFich = Application.GetOpenFilename("Fichiers texte,*.csv;*.txt") If NomFich = False Then Exit Sub Set wb = .Workbooks.Open(NomFich) wb.Sheets(1).Columns(1).TextToColumns Range("A1"), , , False, , True End With
End Sub '--------------------------------
Il y aussi ceci : Une variante
Un fichier .cvs de ce type
Hello;salut;0321;bonjour
'--------------------------- Sub Ouvrir() Dim Fichier As String Dim Wk As Workbook Fichier = "c:test1.csv" Set Wk = Workbooks.Open(Fichier) Wk.Worksheets(1).Columns(1).TextToColumns Range("A1"), _ DataType:=xlDelimited, _ ConsecutiveDelimiter:=True, Semicolon:=True, _ FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 2), Array(4, 1)) Set Wk = Nothing
End Sub '---------------------------
Regarde dans l'aide le paramètre "FieldInfo" de la méthode "Open" pour les formats de tes données.
Salutations!
"Fabrice" a écrit dans le message de news:07ff01c3ce29$d5c14520$ Merci pour la rapidité de la réponse mais...
En clair, est-ce qu'il y a une solution ???
Je n'utilise pas VBA dans ce cas et le passage par Excel XP n'est que facultatif...
Puis-je m'en sortir avec mon Excel 2000 ?
Merci
Fabrice
Bonjour Fabrice,
Il y a cette macro :
'--------------------------------
Sub CSVOpener()
'd'après P. Penet, mpfe
Dim wb As Workbook, NomFich
With Application
NomFich = Application.GetOpenFilename("Fichiers texte,*.csv;*.txt")
If NomFich = False Then Exit Sub
Set wb = .Workbooks.Open(NomFich)
wb.Sheets(1).Columns(1).TextToColumns Range("A1"), , , False, , True
End With
End Sub
'--------------------------------
Il y aussi ceci : Une variante
Un fichier .cvs de ce type
Hello;salut;0321;bonjour
'---------------------------
Sub Ouvrir()
Dim Fichier As String
Dim Wk As Workbook
Fichier = "c:test1.csv"
Set Wk = Workbooks.Open(Fichier)
Wk.Worksheets(1).Columns(1).TextToColumns Range("A1"), _
DataType:=xlDelimited, _
ConsecutiveDelimiter:=True, Semicolon:=True, _
FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 2), Array(4, 1))
Set Wk = Nothing
End Sub
'---------------------------
Regarde dans l'aide le paramètre "FieldInfo" de la méthode "Open" pour les formats de tes données.
Salutations!
"Fabrice" <bertrandsf@hotmail.com> a écrit dans le message de news:07ff01c3ce29$d5c14520$a401280a@phx.gbl...
Merci pour la rapidité de la réponse mais...
En clair, est-ce qu'il y a une solution ???
Je n'utilise pas VBA dans ce cas et le passage par Excel
XP n'est que facultatif...
'-------------------------------- Sub CSVOpener() 'd'après P. Penet, mpfe Dim wb As Workbook, NomFich
With Application NomFich = Application.GetOpenFilename("Fichiers texte,*.csv;*.txt") If NomFich = False Then Exit Sub Set wb = .Workbooks.Open(NomFich) wb.Sheets(1).Columns(1).TextToColumns Range("A1"), , , False, , True End With
End Sub '--------------------------------
Il y aussi ceci : Une variante
Un fichier .cvs de ce type
Hello;salut;0321;bonjour
'--------------------------- Sub Ouvrir() Dim Fichier As String Dim Wk As Workbook Fichier = "c:test1.csv" Set Wk = Workbooks.Open(Fichier) Wk.Worksheets(1).Columns(1).TextToColumns Range("A1"), _ DataType:=xlDelimited, _ ConsecutiveDelimiter:=True, Semicolon:=True, _ FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 2), Array(4, 1)) Set Wk = Nothing
End Sub '---------------------------
Regarde dans l'aide le paramètre "FieldInfo" de la méthode "Open" pour les formats de tes données.
Salutations!
"Fabrice" a écrit dans le message de news:07ff01c3ce29$d5c14520$ Merci pour la rapidité de la réponse mais...
En clair, est-ce qu'il y a une solution ???
Je n'utilise pas VBA dans ce cas et le passage par Excel XP n'est que facultatif...