OVH Cloud OVH Cloud

Importer un fichier texte sous excel

7 réponses
Avatar
Michel Hirard
Bonsoir,
Je souhaiterais importer un fichier texte (.txt) comportant une seule
colonne de plusieurs centaines de chiffres
avec des ruptures (ligne vierge par exemple) permettant d'isoler X groupes
de donnees de 35 chiffres par exemple.

Je souhaiterais que cette importation sous Excel se traduise par un tableau
de X colonnes de 35 lignes.
J'ai essayé Fichier, Ouvrir, Fichier texte...etc sans succès. J'ai du rater
quelque chose

Auriez-vous un idée ? ou bien une autre approche ?

Merci

Michel

7 réponses

Avatar
Ricky
Bonjour *Michel Hirard*

Si j'ai bien compris, c'est un Copier / Collage Spécial / Transposé que tu veux
A effectuer par bloc de X lignes

| Bonsoir,
| Je souhaiterais importer un fichier texte (.txt) comportant une seule
| colonne de plusieurs centaines de chiffres
| avec des ruptures (ligne vierge par exemple) permettant d'isoler X
| groupes de donnees de 35 chiffres par exemple.
|
| Je souhaiterais que cette importation sous Excel se traduise par un
| tableau de X colonnes de 35 lignes.
| J'ai essayé Fichier, Ouvrir, Fichier texte...etc sans succès. J'ai du
| rater quelque chose
|
| Auriez-vous un idée ? ou bien une autre approche ?
|
| Merci
|
| Michel

--
Ricky [MVP] Visitez les faq....
http://www.faqoe.com http://faqword.free.fr
http://dj.joss.free.fr/faq.htm http://www.excelabo.net
Avatar
Michel Hirard
Désolé Ricky, cela ne marche pas, j'obtiens X fois 35 colonnes sur une seule
ligne et je souhaite obtenir
X colonnes de 35 lignes
Merci quand même
Michel



"Ricky" a écrit dans le message de news:

Bonjour *Michel Hirard*

Si j'ai bien compris, c'est un Copier / Collage Spécial / Transposé que tu
veux
A effectuer par bloc de X lignes

| Bonsoir,
| Je souhaiterais importer un fichier texte (.txt) comportant une seule
| colonne de plusieurs centaines de chiffres
| avec des ruptures (ligne vierge par exemple) permettant d'isoler X
| groupes de donnees de 35 chiffres par exemple.
|
| Je souhaiterais que cette importation sous Excel se traduise par un
| tableau de X colonnes de 35 lignes.
| J'ai essayé Fichier, Ouvrir, Fichier texte...etc sans succès. J'ai du
| rater quelque chose
|
| Auriez-vous un idée ? ou bien une autre approche ?
|
| Merci
|
| Michel

--
Ricky [MVP] Visitez les faq....
http://www.faqoe.com http://faqword.free.fr
http://dj.joss.free.fr/faq.htm http://www.excelabo.net



Avatar
MichDenis
Bonjour Michel,

Essaie ceci en adaptant le nom de la feuille du classeur où les info. doivent être copiées.
Les données vont être copiées à partir de la cellule A1

'-----------------------
Sub Test()
' à déterminer le chemin et le nom du fichier
ImportTextFile CStr("C:test.txt")
End Sub
'------------------------

Sub ImportTextFile(Fichier As String)

Dim WholeLine As String
Dim A As Long, B As Integer

Application.ScreenUpdating = False
B = 1
With Worksheets("Feuil1") ' Nom Feuille à déterminer
Open Fichier For Input Access Read As #1

While Not EOF(1)
A = A + 1
Line Input #1, WholeLine
If WholeLine = "" Then
A = 0
B = B + 1
Else
.Cells(A, B).Value = WholeLine
End If
Wend
End With
Application.ScreenUpdating = True
Close #1

End Sub
'-----------------------------------


Salutations!


"Michel Hirard" a écrit dans le message de news: 4244684e$0$3106$
Bonsoir,
Je souhaiterais importer un fichier texte (.txt) comportant une seule
colonne de plusieurs centaines de chiffres
avec des ruptures (ligne vierge par exemple) permettant d'isoler X groupes
de donnees de 35 chiffres par exemple.

Je souhaiterais que cette importation sous Excel se traduise par un tableau
de X colonnes de 35 lignes.
J'ai essayé Fichier, Ouvrir, Fichier texte...etc sans succès. J'ai du rater
quelque chose

Auriez-vous un idée ? ou bien une autre approche ?

Merci

Michel
Avatar
Michel Hirard
Bonjour Denis,
J'ai essayé ta macro. L'importation se fait parfaitement, mais sous forme
d'une colonne de chiffres comme dans le fichier texte d'origine.
Je souhaiterais que chaque rupture (saut de ligne) dans les données source,
se traduise par un changement de colonne dans l'importation Excel
(le premier saut de ligne rencontré provoquerait un changement de colonne)

Pour résumer, ma colonne de plusieurs centaines de chiffres avec sauts de
lignes, serait importée sous forme d'un tableau sous Excel

Il manque sans doute peu de choses dans la macro que tu me proposes, mais
j'avoue ne pas savoir la modifier

Merci,
Michel


"MichDenis" a écrit dans le message de news:
%
Bonjour Michel,

Essaie ceci en adaptant le nom de la feuille du classeur où les info.
doivent être copiées.
Les données vont être copiées à partir de la cellule A1

'-----------------------
Sub Test()
' à déterminer le chemin et le nom du fichier
ImportTextFile CStr("C:test.txt")
End Sub
'------------------------

Sub ImportTextFile(Fichier As String)

Dim WholeLine As String
Dim A As Long, B As Integer

Application.ScreenUpdating = False
B = 1
With Worksheets("Feuil1") ' Nom Feuille à déterminer
Open Fichier For Input Access Read As #1

While Not EOF(1)
A = A + 1
Line Input #1, WholeLine
If WholeLine = "" Then
A = 0
B = B + 1
Else
.Cells(A, B).Value = WholeLine
End If
Wend
End With
Application.ScreenUpdating = True
Close #1

End Sub
'-----------------------------------


Salutations!


"Michel Hirard" a écrit dans le message de news:
4244684e$0$3106$
Bonsoir,
Je souhaiterais importer un fichier texte (.txt) comportant une seule
colonne de plusieurs centaines de chiffres
avec des ruptures (ligne vierge par exemple) permettant d'isoler X groupes
de donnees de 35 chiffres par exemple.

Je souhaiterais que cette importation sous Excel se traduise par un
tableau
de X colonnes de 35 lignes.
J'ai essayé Fichier, Ouvrir, Fichier texte...etc sans succès. J'ai du
rater
quelque chose

Auriez-vous un idée ? ou bien une autre approche ?

Merci

Michel





Avatar
MichDenis
Bonjour MIchel,

Le fichier texte exemple que j'ai utilisé ressemblait à ceci :

1
2

3
4

Si tu veux, tu peux m'envoyer directement dans ma boîte aux lettres un petit exemplaire de ton fichier texte pour que je
puisse voir la disposition du texte ...


Salutations!





"Michel Hirard" a écrit dans le message de news: 42451359$0$19353$
Bonjour Denis,
J'ai essayé ta macro. L'importation se fait parfaitement, mais sous forme
d'une colonne de chiffres comme dans le fichier texte d'origine.
Je souhaiterais que chaque rupture (saut de ligne) dans les données source,
se traduise par un changement de colonne dans l'importation Excel
(le premier saut de ligne rencontré provoquerait un changement de colonne)

Pour résumer, ma colonne de plusieurs centaines de chiffres avec sauts de
lignes, serait importée sous forme d'un tableau sous Excel

Il manque sans doute peu de choses dans la macro que tu me proposes, mais
j'avoue ne pas savoir la modifier

Merci,
Michel


"MichDenis" a écrit dans le message de news:
%
Bonjour Michel,

Essaie ceci en adaptant le nom de la feuille du classeur où les info.
doivent être copiées.
Les données vont être copiées à partir de la cellule A1

'-----------------------
Sub Test()
' à déterminer le chemin et le nom du fichier
ImportTextFile CStr("C:test.txt")
End Sub
'------------------------

Sub ImportTextFile(Fichier As String)

Dim WholeLine As String
Dim A As Long, B As Integer

Application.ScreenUpdating = False
B = 1
With Worksheets("Feuil1") ' Nom Feuille à déterminer
Open Fichier For Input Access Read As #1

While Not EOF(1)
A = A + 1
Line Input #1, WholeLine
If WholeLine = "" Then
A = 0
B = B + 1
Else
.Cells(A, B).Value = WholeLine
End If
Wend
End With
Application.ScreenUpdating = True
Close #1

End Sub
'-----------------------------------


Salutations!


"Michel Hirard" a écrit dans le message de news:
4244684e$0$3106$
Bonsoir,
Je souhaiterais importer un fichier texte (.txt) comportant une seule
colonne de plusieurs centaines de chiffres
avec des ruptures (ligne vierge par exemple) permettant d'isoler X groupes
de donnees de 35 chiffres par exemple.

Je souhaiterais que cette importation sous Excel se traduise par un
tableau
de X colonnes de 35 lignes.
J'ai essayé Fichier, Ouvrir, Fichier texte...etc sans succès. J'ai du
rater
quelque chose

Auriez-vous un idée ? ou bien une autre approche ?

Merci

Michel





Avatar
MichDenis
Bonjour Michel,

J'ai reçu ton fichier et la seule caractère que tu dois changer à ma procédure est celui-ci :
Dans la version originel du fichier, j'avais supposé que la ligne était vide d'où ceci : If WholeLine = " " Then

En regardant ton fichier, je me suis rendu compte rapidement que la ligne n'était pas vide entre 2 séries de nombre,
mais, elle comportait un tiret "-". La nouvelle ligne de code est devenu : If WholeLine = "-" Then


'--------------------------
Sub Test()
' à déterminer le chemin et le nom du fichier
ImportTextFile CStr("C:Pixel.txt")
End Sub
'--------------------------

Sub ImportTextFile(Fichier As String)

Dim WholeLine As String
Dim A As Long, B As Integer

Application.ScreenUpdating = False
B = 1
With Worksheets("Feuil1") ' Nom Feuille à déterminer
Open Fichier For Input Access Read As #1

While Not EOF(1)
A = A + 1
Line Input #1, WholeLine
If WholeLine = "-" Then
A = 0
B = B + 1
Else
.Cells(A, B).Value = WholeLine
End If
Wend
End With
Application.ScreenUpdating = True
Close #1

End Sub
'--------------------------


Salutations!
Avatar
Michel Hirard
Merci beaucoup Denis, cela fonctionne parfaitement,
tu es un chef à 4 plumes
Michel

"MichDenis" a écrit dans le message de news:

Bonjour Michel,

J'ai reçu ton fichier et la seule caractère que tu dois changer à ma
procédure est celui-ci :
Dans la version originel du fichier, j'avais supposé que la ligne était
vide d'où ceci : If WholeLine = " " Then

En regardant ton fichier, je me suis rendu compte rapidement que la ligne
n'était pas vide entre 2 séries de nombre,
mais, elle comportait un tiret "-". La nouvelle ligne de code est devenu
: If WholeLine = "-" Then


'--------------------------
Sub Test()
' à déterminer le chemin et le nom du fichier
ImportTextFile CStr("C:Pixel.txt")
End Sub
'--------------------------

Sub ImportTextFile(Fichier As String)

Dim WholeLine As String
Dim A As Long, B As Integer

Application.ScreenUpdating = False
B = 1
With Worksheets("Feuil1") ' Nom Feuille à déterminer
Open Fichier For Input Access Read As #1

While Not EOF(1)
A = A + 1
Line Input #1, WholeLine
If WholeLine = "-" Then
A = 0
B = B + 1
Else
.Cells(A, B).Value = WholeLine
End If
Wend
End With
Application.ScreenUpdating = True
Close #1

End Sub
'--------------------------


Salutations!