Ouvrir un fichier .txt dans Excel avec espace comme séparateur de champs
16 réponses
Christian
Bonjour,
Comment ouvrir un fichier .txt dans Excel avec espace comme séparateur de
champs ?
Le code ci dessous est une tentative d'adaptation d'un code vba, mais ça ne
marche pas.
Ou est le Pb ???
Merçi de votre aide
For i = 2 To LmaxListe
CHEMIN = mafeuilleliste.Cells(i, 1).Value
Tu pourrais peut-être essayer d'appeler cette macro écrite dans un classeur Excel (version 95) depuis VB avec Application.Run.
A vrai dire c'est bien ça que j'avais fait, et je viens de le refaire pour être sûr.
Ensuite, je me suis contenté, après avoir copié l'instruction dans VB6, d'ajouter l'instance d'Excel et de la rendre visible, et aussi d'ajouter un point pour que WorkBooks renvoie à cette instance.
J'ai bougé un peu les coupures de lignes pour que ça soit lisible dans un newsgroup, en respectant l'espace et le souligné à la fin de la ligne.
Cette fois j'ai Excel d'ouvert sans classeur bien entendu, puisque je n'ai pas mis Workbooks.Add
C'est une macro que je venais juste d'enregistrer et qui avait très bien fonctionné -à partir de l'interface d'Excel.
D'ailleurs, ensuite, j'ai recopié l'instruction dans un nouveau module d'Excel, retiré le point devant Workbooks, mis un nom de procédure, et exécuté, et le fichier a été chargé et fractionné sans aucun problème.
parci a écrit, le 24/06/2005 16:43 :
Tu pourrais peut-être essayer d'appeler cette macro écrite dans un classeur
Excel (version 95) depuis VB avec Application.Run.
A vrai dire c'est bien ça que j'avais fait, et je viens de le refaire
pour être sûr.
Ensuite, je me suis contenté, après avoir copié l'instruction dans VB6,
d'ajouter l'instance d'Excel et de la rendre visible, et aussi d'ajouter
un point pour que WorkBooks renvoie à cette instance.
J'ai bougé un peu les coupures de lignes pour que ça soit lisible dans
un newsgroup, en respectant l'espace et le souligné à la fin de la ligne.
Cette fois j'ai Excel d'ouvert sans classeur bien entendu, puisque je
n'ai pas mis Workbooks.Add
C'est une macro que je venais juste d'enregistrer et qui avait très bien
fonctionné -à partir de l'interface d'Excel.
D'ailleurs, ensuite, j'ai recopié l'instruction dans un nouveau module
d'Excel, retiré le point devant Workbooks, mis un nom de procédure, et
exécuté, et le fichier a été chargé et fractionné sans aucun problème.
Tu pourrais peut-être essayer d'appeler cette macro écrite dans un classeur Excel (version 95) depuis VB avec Application.Run.
A vrai dire c'est bien ça que j'avais fait, et je viens de le refaire pour être sûr.
Ensuite, je me suis contenté, après avoir copié l'instruction dans VB6, d'ajouter l'instance d'Excel et de la rendre visible, et aussi d'ajouter un point pour que WorkBooks renvoie à cette instance.
J'ai bougé un peu les coupures de lignes pour que ça soit lisible dans un newsgroup, en respectant l'espace et le souligné à la fin de la ligne.
Cette fois j'ai Excel d'ouvert sans classeur bien entendu, puisque je n'ai pas mis Workbooks.Add
C'est une macro que je venais juste d'enregistrer et qui avait très bien fonctionné -à partir de l'interface d'Excel.
D'ailleurs, ensuite, j'ai recopié l'instruction dans un nouveau module d'Excel, retiré le point devant Workbooks, mis un nom de procédure, et exécuté, et le fichier a été chargé et fractionné sans aucun problème.
"Gloops" a écrit dans le message de news: 42bc2c0e$0$11707$ | parci a écrit, le 24/06/2005 16:43 : | > Tu pourrais peut-être essayer d'appeler cette macro écrite dans un classeur | > Excel (version 95) depuis VB avec Application.Run. | | A vrai dire c'est bien ça que j'avais fait, et je viens de le refaire | pour être sûr. | | Ensuite, je me suis contenté, après avoir copié l'instruction dans VB6, | d'ajouter l'instance d'Excel et de la rendre visible, et aussi d'ajouter | un point pour que WorkBooks renvoie à cette instance. | | J'ai bougé un peu les coupures de lignes pour que ça soit lisible dans | un newsgroup, en respectant l'espace et le souligné à la fin de la ligne. | | ça donne : | | Set ExcelApp = CreateObject("Excel.Application") | With ExcelApp | .Visible = True | .Workbooks.OpenText FileName:= _ | "C:...(chemin) ...Mes documentstest.txt", _ | Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, _ | TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab _ | :=True, Semicolon:úlse, Comma:=True, Space:úlse, Other _ | :úlse, FieldInfo:=Array(Array(1, 1), Array(2, 1), _ | Array(3, 1), Array( _ | 4, 1), Array(5, 1), Array(6, 1), Array(7, 1), _ | Array(8, 1), Array(9, 1), Array(10 _ | , 1)) | End With | | Et toujours l'erreur 1004, la méthode a échoué. | | Cette fois j'ai Excel d'ouvert sans classeur bien entendu, puisque je | n'ai pas mis Workbooks.Add | | C'est une macro que je venais juste d'enregistrer et qui avait très bien | fonctionné -à partir de l'interface d'Excel. | | D'ailleurs, ensuite, j'ai recopié l'instruction dans un nouveau module | d'Excel, retiré le point devant Workbooks, mis un nom de procédure, et | exécuté, et le fichier a été chargé et fractionné sans aucun problème. |
"Gloops" <gloops@niark.fr> a écrit dans le message de news: 42bc2c0e$0$11707$8fcfb975@news.wanadoo.fr...
| parci a écrit, le 24/06/2005 16:43 :
| > Tu pourrais peut-être essayer d'appeler cette macro écrite dans un classeur
| > Excel (version 95) depuis VB avec Application.Run.
|
| A vrai dire c'est bien ça que j'avais fait, et je viens de le refaire
| pour être sûr.
|
| Ensuite, je me suis contenté, après avoir copié l'instruction dans VB6,
| d'ajouter l'instance d'Excel et de la rendre visible, et aussi d'ajouter
| un point pour que WorkBooks renvoie à cette instance.
|
| J'ai bougé un peu les coupures de lignes pour que ça soit lisible dans
| un newsgroup, en respectant l'espace et le souligné à la fin de la ligne.
|
| ça donne :
|
| Set ExcelApp = CreateObject("Excel.Application")
| With ExcelApp
| .Visible = True
| .Workbooks.OpenText FileName:= _
| "C:...(chemin) ...Mes documentstest.txt", _
| Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, _
| TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab _
| :=True, Semicolon:úlse, Comma:=True, Space:úlse, Other _
| :úlse, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
| Array(3, 1), Array( _
| 4, 1), Array(5, 1), Array(6, 1), Array(7, 1), _
| Array(8, 1), Array(9, 1), Array(10 _
| , 1))
| End With
|
| Et toujours l'erreur 1004, la méthode a échoué.
|
| Cette fois j'ai Excel d'ouvert sans classeur bien entendu, puisque je
| n'ai pas mis Workbooks.Add
|
| C'est une macro que je venais juste d'enregistrer et qui avait très bien
| fonctionné -à partir de l'interface d'Excel.
|
| D'ailleurs, ensuite, j'ai recopié l'instruction dans un nouveau module
| d'Excel, retiré le point devant Workbooks, mis un nom de procédure, et
| exécuté, et le fichier a été chargé et fractionné sans aucun problème.
|
"Gloops" a écrit dans le message de news: 42bc2c0e$0$11707$ | parci a écrit, le 24/06/2005 16:43 : | > Tu pourrais peut-être essayer d'appeler cette macro écrite dans un classeur | > Excel (version 95) depuis VB avec Application.Run. | | A vrai dire c'est bien ça que j'avais fait, et je viens de le refaire | pour être sûr. | | Ensuite, je me suis contenté, après avoir copié l'instruction dans VB6, | d'ajouter l'instance d'Excel et de la rendre visible, et aussi d'ajouter | un point pour que WorkBooks renvoie à cette instance. | | J'ai bougé un peu les coupures de lignes pour que ça soit lisible dans | un newsgroup, en respectant l'espace et le souligné à la fin de la ligne. | | ça donne : | | Set ExcelApp = CreateObject("Excel.Application") | With ExcelApp | .Visible = True | .Workbooks.OpenText FileName:= _ | "C:...(chemin) ...Mes documentstest.txt", _ | Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, _ | TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab _ | :=True, Semicolon:úlse, Comma:=True, Space:úlse, Other _ | :úlse, FieldInfo:=Array(Array(1, 1), Array(2, 1), _ | Array(3, 1), Array( _ | 4, 1), Array(5, 1), Array(6, 1), Array(7, 1), _ | Array(8, 1), Array(9, 1), Array(10 _ | , 1)) | End With | | Et toujours l'erreur 1004, la méthode a échoué. | | Cette fois j'ai Excel d'ouvert sans classeur bien entendu, puisque je | n'ai pas mis Workbooks.Add | | C'est une macro que je venais juste d'enregistrer et qui avait très bien | fonctionné -à partir de l'interface d'Excel. | | D'ailleurs, ensuite, j'ai recopié l'instruction dans un nouveau module | d'Excel, retiré le point devant Workbooks, mis un nom de procédure, et | exécuté, et le fichier a été chargé et fractionné sans aucun problème. |
Gloops
Ah, là y a qu'e'qu'chose ... Comme dit plus haut dans le fil, la première fois j'y avais pourtant pensé.
Cette fois j'avais oublié, et ça s'est avéré décisif, le fractionnement s'est fait proprement, commandé depuis VB6.
Il me reste à regarder de près les différences de syntaxe, pour voir ce qui coince, enfin ce qui coinçait au début. Je n'ai pas tout sauvegardé en route, mais avec le premier message du fil on devrait pouvoir mettre le doigt dessus, je regarderai à tête reposée une fois déconnecté.
Une fois que ce sera fait je crois que cette fois Christian aura eu droit à une réponse dans les règles de l'art.
Merci Alain pour ce rappel à l'ordre, et merci à tous les intervenants.
_________________________________________ Alain CROS a écrit, le 24/06/2005 19:01 :
"Gloops" a écrit dans le message de news: 42bc2c0e$0$11707$ | parci a écrit, le 24/06/2005 16:43 : | > Tu pourrais peut-être essayer d'appeler cette macro écrite dans un classeur | > Excel (version 95) depuis VB avec Application.Run. | | A vrai dire c'est bien ça que j'avais fait, et je viens de le refaire | pour être sûr. | | Ensuite, je me suis contenté, après avoir copié l'instruction dans VB6, | d'ajouter l'instance d'Excel et de la rendre visible, et aussi d'ajouter | un point pour que WorkBooks renvoie à cette instance. | | J'ai bougé un peu les coupures de lignes pour que ça soit lisible dans | un newsgroup, en respectant l'espace et le souligné à la fin de la ligne. | | ça donne : | | Set ExcelApp = CreateObject("Excel.Application") | With ExcelApp | .Visible = True | .Workbooks.OpenText FileName:= _ | "C:...(chemin) ...Mes documentstest.txt", _ | Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, _ | TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab _ | :=True, Semicolon:úlse, Comma:=True, Space:úlse, Other _ | :úlse, FieldInfo:=Array(Array(1, 1), Array(2, 1), _ | Array(3, 1), Array( _ | 4, 1), Array(5, 1), Array(6, 1), Array(7, 1), _ | Array(8, 1), Array(9, 1), Array(10 _ | , 1)) | End With | | Et toujours l'erreur 1004, la méthode a échoué. | | Cette fois j'ai Excel d'ouvert sans classeur bien entendu, puisque je | n'ai pas mis Workbooks.Add | | C'est une macro que je venais juste d'enregistrer et qui avait très bien | fonctionné -à partir de l'interface d'Excel. | | D'ailleurs, ensuite, j'ai recopié l'instruction dans un nouveau module | d'Excel, retiré le point devant Workbooks, mis un nom de procédure, et | exécuté, et le fichier a été chargé et fractionné sans aucun problème. |
Ah, là y a qu'e'qu'chose ...
Comme dit plus haut dans le fil, la première fois j'y avais pourtant pensé.
Cette fois j'avais oublié, et ça s'est avéré décisif, le fractionnement
s'est fait proprement, commandé depuis VB6.
Il me reste à regarder de près les différences de syntaxe, pour voir ce
qui coince, enfin ce qui coinçait au début. Je n'ai pas tout sauvegardé
en route, mais avec le premier message du fil on devrait pouvoir mettre
le doigt dessus, je regarderai à tête reposée une fois déconnecté.
Une fois que ce sera fait je crois que cette fois Christian aura eu
droit à une réponse dans les règles de l'art.
Merci Alain pour ce rappel à l'ordre, et merci à tous les intervenants.
_________________________________________
Alain CROS a écrit, le 24/06/2005 19:01 :
"Gloops" <gloops@niark.fr> a écrit dans le message de news: 42bc2c0e$0$11707$8fcfb975@news.wanadoo.fr...
| parci a écrit, le 24/06/2005 16:43 :
| > Tu pourrais peut-être essayer d'appeler cette macro écrite dans un classeur
| > Excel (version 95) depuis VB avec Application.Run.
|
| A vrai dire c'est bien ça que j'avais fait, et je viens de le refaire
| pour être sûr.
|
| Ensuite, je me suis contenté, après avoir copié l'instruction dans VB6,
| d'ajouter l'instance d'Excel et de la rendre visible, et aussi d'ajouter
| un point pour que WorkBooks renvoie à cette instance.
|
| J'ai bougé un peu les coupures de lignes pour que ça soit lisible dans
| un newsgroup, en respectant l'espace et le souligné à la fin de la ligne.
|
| ça donne :
|
| Set ExcelApp = CreateObject("Excel.Application")
| With ExcelApp
| .Visible = True
| .Workbooks.OpenText FileName:= _
| "C:...(chemin) ...Mes documentstest.txt", _
| Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, _
| TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab _
| :=True, Semicolon:úlse, Comma:=True, Space:úlse, Other _
| :úlse, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
| Array(3, 1), Array( _
| 4, 1), Array(5, 1), Array(6, 1), Array(7, 1), _
| Array(8, 1), Array(9, 1), Array(10 _
| , 1))
| End With
|
| Et toujours l'erreur 1004, la méthode a échoué.
|
| Cette fois j'ai Excel d'ouvert sans classeur bien entendu, puisque je
| n'ai pas mis Workbooks.Add
|
| C'est une macro que je venais juste d'enregistrer et qui avait très bien
| fonctionné -à partir de l'interface d'Excel.
|
| D'ailleurs, ensuite, j'ai recopié l'instruction dans un nouveau module
| d'Excel, retiré le point devant Workbooks, mis un nom de procédure, et
| exécuté, et le fichier a été chargé et fractionné sans aucun problème.
|
Ah, là y a qu'e'qu'chose ... Comme dit plus haut dans le fil, la première fois j'y avais pourtant pensé.
Cette fois j'avais oublié, et ça s'est avéré décisif, le fractionnement s'est fait proprement, commandé depuis VB6.
Il me reste à regarder de près les différences de syntaxe, pour voir ce qui coince, enfin ce qui coinçait au début. Je n'ai pas tout sauvegardé en route, mais avec le premier message du fil on devrait pouvoir mettre le doigt dessus, je regarderai à tête reposée une fois déconnecté.
Une fois que ce sera fait je crois que cette fois Christian aura eu droit à une réponse dans les règles de l'art.
Merci Alain pour ce rappel à l'ordre, et merci à tous les intervenants.
_________________________________________ Alain CROS a écrit, le 24/06/2005 19:01 :
"Gloops" a écrit dans le message de news: 42bc2c0e$0$11707$ | parci a écrit, le 24/06/2005 16:43 : | > Tu pourrais peut-être essayer d'appeler cette macro écrite dans un classeur | > Excel (version 95) depuis VB avec Application.Run. | | A vrai dire c'est bien ça que j'avais fait, et je viens de le refaire | pour être sûr. | | Ensuite, je me suis contenté, après avoir copié l'instruction dans VB6, | d'ajouter l'instance d'Excel et de la rendre visible, et aussi d'ajouter | un point pour que WorkBooks renvoie à cette instance. | | J'ai bougé un peu les coupures de lignes pour que ça soit lisible dans | un newsgroup, en respectant l'espace et le souligné à la fin de la ligne. | | ça donne : | | Set ExcelApp = CreateObject("Excel.Application") | With ExcelApp | .Visible = True | .Workbooks.OpenText FileName:= _ | "C:...(chemin) ...Mes documentstest.txt", _ | Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, _ | TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab _ | :=True, Semicolon:úlse, Comma:=True, Space:úlse, Other _ | :úlse, FieldInfo:=Array(Array(1, 1), Array(2, 1), _ | Array(3, 1), Array( _ | 4, 1), Array(5, 1), Array(6, 1), Array(7, 1), _ | Array(8, 1), Array(9, 1), Array(10 _ | , 1)) | End With | | Et toujours l'erreur 1004, la méthode a échoué. | | Cette fois j'ai Excel d'ouvert sans classeur bien entendu, puisque je | n'ai pas mis Workbooks.Add | | C'est une macro que je venais juste d'enregistrer et qui avait très bien | fonctionné -à partir de l'interface d'Excel. | | D'ailleurs, ensuite, j'ai recopié l'instruction dans un nouveau module | d'Excel, retiré le point devant Workbooks, mis un nom de procédure, et | exécuté, et le fichier a été chargé et fractionné sans aucun problème. |
Gloops
Oh ben v'là aut'chose, au début j'avais bien explicité xlWindows et xlDelimited, mais on dirait bien que j'avais oublié xlDoubleQuote, si on le met aussi le code de Christian fonctionne.
J'ai été piteux sur ce coup-là ...
Oh ben v'là aut'chose, au début j'avais bien explicité xlWindows et
xlDelimited, mais on dirait bien que j'avais oublié xlDoubleQuote, si on
le met aussi le code de Christian fonctionne.
Oh ben v'là aut'chose, au début j'avais bien explicité xlWindows et xlDelimited, mais on dirait bien que j'avais oublié xlDoubleQuote, si on le met aussi le code de Christian fonctionne.
J'ai été piteux sur ce coup-là ...
Gloops
Finalement, la bonne réponse pour Christian, c'est qu'en début de module, il faut mettre une ligne "Option Explicit" (sans les guillemets).
De cette façon, Excel fait un bip sur chaque variable ou constante non définie, et on ne risque pas de l'oublier.
Pour être complet il aurait bien fallu dire comment avoir ça par défaut, pour le moment j'avoue que j'ai un trou de mémoire ...
Finalement, la bonne réponse pour Christian, c'est qu'en début de
module, il faut mettre une ligne "Option Explicit" (sans les guillemets).
De cette façon, Excel fait un bip sur chaque variable ou constante non
définie, et on ne risque pas de l'oublier.
Pour être complet il aurait bien fallu dire comment avoir ça par défaut,
pour le moment j'avoue que j'ai un trou de mémoire ...