Je tente de lire dans Excel avec VBA un fichier texte "C:\Test.txt"
structuré de la façon suivante :
1 | Cod1 | Désignation 1 | 1.000
2 | Cod2 | Désignation 2 | 1.000
3 | Cod3 | Désignation 3 | 2.000
Dim NUMERO As Long
Dim COD As String
Dim QTE As String
Dim DESIGNATIONS As String
Dim n As Integer
n = FreeFile
Open "C:\Test.txt" For Input As #n
Do While Not EOF(1)
Input #n, NUMERO, COD, DESIGNATIONS, QTE
'Ici traitement
Loop
Close #n
Le problème c'est que Input # lit uniquement des séparateurs de colonne de
type virgule.
Comment faire pour lire un fichier avec des séparateurs de colonne de type |
ou ! par exemple. (je suis obligée de choisir un séparateur différent de
virgule car les désiGnations peuvent contenir des virgules)
Je tente de lire dans Excel avec VBA un fichier texte "C:Test.txt" structuré de la façon suivante : 1 | Cod1 | Désignation 1 | 1.000 2 | Cod2 | Désignation 2 | 1.000 3 | Cod3 | Désignation 3 | 2.000
Dim NUMERO As Long Dim COD As String Dim QTE As String Dim DESIGNATIONS As String
Dim n As Integer n = FreeFile
Open "C:Test.txt" For Input As #n
Do While Not EOF(1) Input #n, NUMERO, COD, DESIGNATIONS, QTE 'Ici traitement Loop
Close #n
Le problème c'est que Input # lit uniquement des séparateurs de colonne de type virgule. Comment faire pour lire un fichier avec des séparateurs de colonne de type | ou ! par exemple. (je suis obligée de choisir un séparateur différent de virgule car les désiGnations peuvent contenir des virgules)
Merci à tous ceux qui pourront m'aider.
bonjour Emile,
une autre approche "OpenText" ferait t'elle l'affaire ?
Je tente de lire dans Excel avec VBA un fichier texte "C:Test.txt"
structuré de la façon suivante :
1 | Cod1 | Désignation 1 | 1.000
2 | Cod2 | Désignation 2 | 1.000
3 | Cod3 | Désignation 3 | 2.000
Dim NUMERO As Long
Dim COD As String
Dim QTE As String
Dim DESIGNATIONS As String
Dim n As Integer
n = FreeFile
Open "C:Test.txt" For Input As #n
Do While Not EOF(1)
Input #n, NUMERO, COD, DESIGNATIONS, QTE
'Ici traitement
Loop
Close #n
Le problème c'est que Input # lit uniquement des séparateurs de colonne de
type virgule.
Comment faire pour lire un fichier avec des séparateurs de colonne de type |
ou ! par exemple. (je suis obligée de choisir un séparateur différent de
virgule car les désiGnations peuvent contenir des virgules)
Je tente de lire dans Excel avec VBA un fichier texte "C:Test.txt" structuré de la façon suivante : 1 | Cod1 | Désignation 1 | 1.000 2 | Cod2 | Désignation 2 | 1.000 3 | Cod3 | Désignation 3 | 2.000
Dim NUMERO As Long Dim COD As String Dim QTE As String Dim DESIGNATIONS As String
Dim n As Integer n = FreeFile
Open "C:Test.txt" For Input As #n
Do While Not EOF(1) Input #n, NUMERO, COD, DESIGNATIONS, QTE 'Ici traitement Loop
Close #n
Le problème c'est que Input # lit uniquement des séparateurs de colonne de type virgule. Comment faire pour lire un fichier avec des séparateurs de colonne de type | ou ! par exemple. (je suis obligée de choisir un séparateur différent de virgule car les désiGnations peuvent contenir des virgules)
Merci à tous ceux qui pourront m'aider.
Damien Kergosien
Bonjour Emilie
Si la stucture du fichier n'a pas à évoluer ceci devrait faire l'affaire : (à noter que
Sub test() Dim NUMERO As Long Dim COD As String Dim QTE As String Dim DESIGNATIONS As String
Dim déBut As Integer, chaineLue As String, posSep As Integer, sépaRateur As String
Dim n As Integer
sépaRateur = "|" n = FreeFile
Open "C:Test.txt" For Input As #n
Do While Not EOF(1) Line Input #n, chaineLue déBut = 1
Je tente de lire dans Excel avec VBA un fichier texte "C:Test.txt" structuré de la façon suivante : 1 | Cod1 | Désignation 1 | 1.000 2 | Cod2 | Désignation 2 | 1.000 3 | Cod3 | Désignation 3 | 2.000
Dim NUMERO As Long Dim COD As String Dim QTE As String Dim DESIGNATIONS As String
Dim n As Integer n = FreeFile
Open "C:Test.txt" For Input As #n
Do While Not EOF(1) Input #n, NUMERO, COD, DESIGNATIONS, QTE 'Ici traitement Loop
Close #n
Le problème c'est que Input # lit uniquement des séparateurs de colonne de type virgule. Comment faire pour lire un fichier avec des séparateurs de colonne de type | ou ! par exemple. (je suis obligée de choisir un séparateur différent de virgule car les désiGnations peuvent contenir des virgules)
Merci à tous ceux qui pourront m'aider.
Merci Isabelle
Je vais essayer cette solution si je n'arrive pas à finaliser avec celle de
Damien.
Merci pour votre aide.
Cordialement
Emilie
bonjour Emile,
une autre approche "OpenText" ferait t'elle l'affaire ?
Je tente de lire dans Excel avec VBA un fichier texte "C:Test.txt"
structuré de la façon suivante :
1 | Cod1 | Désignation 1 | 1.000
2 | Cod2 | Désignation 2 | 1.000
3 | Cod3 | Désignation 3 | 2.000
Dim NUMERO As Long
Dim COD As String
Dim QTE As String
Dim DESIGNATIONS As String
Dim n As Integer
n = FreeFile
Open "C:Test.txt" For Input As #n
Do While Not EOF(1)
Input #n, NUMERO, COD, DESIGNATIONS, QTE
'Ici traitement
Loop
Close #n
Le problème c'est que Input # lit uniquement des séparateurs de colonne de
type virgule.
Comment faire pour lire un fichier avec des séparateurs de colonne de type |
ou ! par exemple. (je suis obligée de choisir un séparateur différent de
virgule car les désiGnations peuvent contenir des virgules)
Je tente de lire dans Excel avec VBA un fichier texte "C:Test.txt" structuré de la façon suivante : 1 | Cod1 | Désignation 1 | 1.000 2 | Cod2 | Désignation 2 | 1.000 3 | Cod3 | Désignation 3 | 2.000
Dim NUMERO As Long Dim COD As String Dim QTE As String Dim DESIGNATIONS As String
Dim n As Integer n = FreeFile
Open "C:Test.txt" For Input As #n
Do While Not EOF(1) Input #n, NUMERO, COD, DESIGNATIONS, QTE 'Ici traitement Loop
Close #n
Le problème c'est que Input # lit uniquement des séparateurs de colonne de type virgule. Comment faire pour lire un fichier avec des séparateurs de colonne de type | ou ! par exemple. (je suis obligée de choisir un séparateur différent de virgule car les désiGnations peuvent contenir des virgules)
Merci à tous ceux qui pourront m'aider.
Alain CROS
Bonjour.
Sub LireFichierTexte() Dim NUMERO&, COD$, QTE$, DESIGNATIONS$ Dim Lachaine$, Tblo, n% n = FreeFile Open "C:Test.txt" For Input As #n Do While Not EOF(n) Line Input #n, Lachaine Tblo = Split(Lachaine, "|") NUMERO = CLng(Tblo(0)) COD = Tblo(1) DESIGNATIONS = Tblo(2) QTE = Tblo(3) MsgBox "NUMERO = " & NUMERO & vbNewLine & _ "COD = " & COD & vbNewLine & _ "DESIGNATIONS = " & DESIGNATIONS & vbNewLine & _ "QTE = " & QTE 'Ici traitement Loop Close #n End Sub
Alain CROS
"Emilie" a écrit dans le message de news: | Bonjour à tous | | Je tente de lire dans Excel avec VBA un fichier texte "C:Test.txt" | structuré de la façon suivante : | 1 | Cod1 | Désignation 1 | 1.000 | 2 | Cod2 | Désignation 2 | 1.000 | 3 | Cod3 | Désignation 3 | 2.000 | | Dim NUMERO As Long | Dim COD As String | Dim QTE As String | Dim DESIGNATIONS As String | | Dim n As Integer | n = FreeFile | | Open "C:Test.txt" For Input As #n | | Do While Not EOF(1) | Input #n, NUMERO, COD, DESIGNATIONS, QTE | 'Ici traitement | Loop | | Close #n | | Le problème c'est que Input # lit uniquement des séparateurs de colonne de | type virgule. | Comment faire pour lire un fichier avec des séparateurs de colonne de type | | ou ! par exemple. (je suis obligée de choisir un séparateur différent de | virgule car les désiGnations peuvent contenir des virgules) | | Merci à tous ceux qui pourront m'aider. | |
Bonjour.
Sub LireFichierTexte()
Dim NUMERO&, COD$, QTE$, DESIGNATIONS$
Dim Lachaine$, Tblo, n%
n = FreeFile
Open "C:Test.txt" For Input As #n
Do While Not EOF(n)
Line Input #n, Lachaine
Tblo = Split(Lachaine, "|")
NUMERO = CLng(Tblo(0))
COD = Tblo(1)
DESIGNATIONS = Tblo(2)
QTE = Tblo(3)
MsgBox "NUMERO = " & NUMERO & vbNewLine & _
"COD = " & COD & vbNewLine & _
"DESIGNATIONS = " & DESIGNATIONS & vbNewLine & _
"QTE = " & QTE
'Ici traitement
Loop
Close #n
End Sub
Alain CROS
"Emilie" <Emilie@discussions.microsoft.com> a écrit dans le message de news: E4520467-E8DE-4A12-BC82-4D68BFD32EFD@microsoft.com...
| Bonjour à tous
|
| Je tente de lire dans Excel avec VBA un fichier texte "C:Test.txt"
| structuré de la façon suivante :
| 1 | Cod1 | Désignation 1 | 1.000
| 2 | Cod2 | Désignation 2 | 1.000
| 3 | Cod3 | Désignation 3 | 2.000
|
| Dim NUMERO As Long
| Dim COD As String
| Dim QTE As String
| Dim DESIGNATIONS As String
|
| Dim n As Integer
| n = FreeFile
|
| Open "C:Test.txt" For Input As #n
|
| Do While Not EOF(1)
| Input #n, NUMERO, COD, DESIGNATIONS, QTE
| 'Ici traitement
| Loop
|
| Close #n
|
| Le problème c'est que Input # lit uniquement des séparateurs de colonne de
| type virgule.
| Comment faire pour lire un fichier avec des séparateurs de colonne de type |
| ou ! par exemple. (je suis obligée de choisir un séparateur différent de
| virgule car les désiGnations peuvent contenir des virgules)
|
| Merci à tous ceux qui pourront m'aider.
|
|
Sub LireFichierTexte() Dim NUMERO&, COD$, QTE$, DESIGNATIONS$ Dim Lachaine$, Tblo, n% n = FreeFile Open "C:Test.txt" For Input As #n Do While Not EOF(n) Line Input #n, Lachaine Tblo = Split(Lachaine, "|") NUMERO = CLng(Tblo(0)) COD = Tblo(1) DESIGNATIONS = Tblo(2) QTE = Tblo(3) MsgBox "NUMERO = " & NUMERO & vbNewLine & _ "COD = " & COD & vbNewLine & _ "DESIGNATIONS = " & DESIGNATIONS & vbNewLine & _ "QTE = " & QTE 'Ici traitement Loop Close #n End Sub
Alain CROS
"Emilie" a écrit dans le message de news: | Bonjour à tous | | Je tente de lire dans Excel avec VBA un fichier texte "C:Test.txt" | structuré de la façon suivante : | 1 | Cod1 | Désignation 1 | 1.000 | 2 | Cod2 | Désignation 2 | 1.000 | 3 | Cod3 | Désignation 3 | 2.000 | | Dim NUMERO As Long | Dim COD As String | Dim QTE As String | Dim DESIGNATIONS As String | | Dim n As Integer | n = FreeFile | | Open "C:Test.txt" For Input As #n | | Do While Not EOF(1) | Input #n, NUMERO, COD, DESIGNATIONS, QTE | 'Ici traitement | Loop | | Close #n | | Le problème c'est que Input # lit uniquement des séparateurs de colonne de | type virgule. | Comment faire pour lire un fichier avec des séparateurs de colonne de type | | ou ! par exemple. (je suis obligée de choisir un séparateur différent de | virgule car les désiGnations peuvent contenir des virgules) | | Merci à tous ceux qui pourront m'aider. | |
Emilie
Bonjour Alain
Ta méthode est très efficace. J'ai juste rajouté un blanc de part et d'autre de | pour avoir une extraction parfaite de la chaine de caractère.
Merci à tous
Emilie
Bonjour.
Sub LireFichierTexte() Dim NUMERO&, COD$, QTE$, DESIGNATIONS$ Dim Lachaine$, Tblo, n% n = FreeFile Open "C:Test.txt" For Input As #n Do While Not EOF(n) Line Input #n, Lachaine Tblo = Split(Lachaine, "|") NUMERO = CLng(Tblo(0)) COD = Tblo(1) DESIGNATIONS = Tblo(2) QTE = Tblo(3) MsgBox "NUMERO = " & NUMERO & vbNewLine & _ "COD = " & COD & vbNewLine & _ "DESIGNATIONS = " & DESIGNATIONS & vbNewLine & _ "QTE = " & QTE 'Ici traitement Loop Close #n End Sub
Alain CROS
"Emilie" a écrit dans le message de news: | Bonjour à tous | | Je tente de lire dans Excel avec VBA un fichier texte "C:Test.txt" | structuré de la façon suivante : | 1 | Cod1 | Désignation 1 | 1.000 | 2 | Cod2 | Désignation 2 | 1.000 | 3 | Cod3 | Désignation 3 | 2.000 | | Dim NUMERO As Long | Dim COD As String | Dim QTE As String | Dim DESIGNATIONS As String | | Dim n As Integer | n = FreeFile | | Open "C:Test.txt" For Input As #n | | Do While Not EOF(1) | Input #n, NUMERO, COD, DESIGNATIONS, QTE | 'Ici traitement | Loop | | Close #n | | Le problème c'est que Input # lit uniquement des séparateurs de colonne de | type virgule. | Comment faire pour lire un fichier avec des séparateurs de colonne de type | | ou ! par exemple. (je suis obligée de choisir un séparateur différent de | virgule car les désiGnations peuvent contenir des virgules) | | Merci à tous ceux qui pourront m'aider. | |
Bonjour Alain
Ta méthode est très efficace. J'ai juste rajouté un blanc de part et d'autre
de | pour avoir une extraction parfaite de la chaine de caractère.
Merci à tous
Emilie
Bonjour.
Sub LireFichierTexte()
Dim NUMERO&, COD$, QTE$, DESIGNATIONS$
Dim Lachaine$, Tblo, n%
n = FreeFile
Open "C:Test.txt" For Input As #n
Do While Not EOF(n)
Line Input #n, Lachaine
Tblo = Split(Lachaine, "|")
NUMERO = CLng(Tblo(0))
COD = Tblo(1)
DESIGNATIONS = Tblo(2)
QTE = Tblo(3)
MsgBox "NUMERO = " & NUMERO & vbNewLine & _
"COD = " & COD & vbNewLine & _
"DESIGNATIONS = " & DESIGNATIONS & vbNewLine & _
"QTE = " & QTE
'Ici traitement
Loop
Close #n
End Sub
Alain CROS
"Emilie" <Emilie@discussions.microsoft.com> a écrit dans le message de news: E4520467-E8DE-4A12-BC82-4D68BFD32EFD@microsoft.com...
| Bonjour à tous
|
| Je tente de lire dans Excel avec VBA un fichier texte "C:Test.txt"
| structuré de la façon suivante :
| 1 | Cod1 | Désignation 1 | 1.000
| 2 | Cod2 | Désignation 2 | 1.000
| 3 | Cod3 | Désignation 3 | 2.000
|
| Dim NUMERO As Long
| Dim COD As String
| Dim QTE As String
| Dim DESIGNATIONS As String
|
| Dim n As Integer
| n = FreeFile
|
| Open "C:Test.txt" For Input As #n
|
| Do While Not EOF(1)
| Input #n, NUMERO, COD, DESIGNATIONS, QTE
| 'Ici traitement
| Loop
|
| Close #n
|
| Le problème c'est que Input # lit uniquement des séparateurs de colonne de
| type virgule.
| Comment faire pour lire un fichier avec des séparateurs de colonne de type |
| ou ! par exemple. (je suis obligée de choisir un séparateur différent de
| virgule car les désiGnations peuvent contenir des virgules)
|
| Merci à tous ceux qui pourront m'aider.
|
|
Ta méthode est très efficace. J'ai juste rajouté un blanc de part et d'autre de | pour avoir une extraction parfaite de la chaine de caractère.
Merci à tous
Emilie
Bonjour.
Sub LireFichierTexte() Dim NUMERO&, COD$, QTE$, DESIGNATIONS$ Dim Lachaine$, Tblo, n% n = FreeFile Open "C:Test.txt" For Input As #n Do While Not EOF(n) Line Input #n, Lachaine Tblo = Split(Lachaine, "|") NUMERO = CLng(Tblo(0)) COD = Tblo(1) DESIGNATIONS = Tblo(2) QTE = Tblo(3) MsgBox "NUMERO = " & NUMERO & vbNewLine & _ "COD = " & COD & vbNewLine & _ "DESIGNATIONS = " & DESIGNATIONS & vbNewLine & _ "QTE = " & QTE 'Ici traitement Loop Close #n End Sub
Alain CROS
"Emilie" a écrit dans le message de news: | Bonjour à tous | | Je tente de lire dans Excel avec VBA un fichier texte "C:Test.txt" | structuré de la façon suivante : | 1 | Cod1 | Désignation 1 | 1.000 | 2 | Cod2 | Désignation 2 | 1.000 | 3 | Cod3 | Désignation 3 | 2.000 | | Dim NUMERO As Long | Dim COD As String | Dim QTE As String | Dim DESIGNATIONS As String | | Dim n As Integer | n = FreeFile | | Open "C:Test.txt" For Input As #n | | Do While Not EOF(1) | Input #n, NUMERO, COD, DESIGNATIONS, QTE | 'Ici traitement | Loop | | Close #n | | Le problème c'est que Input # lit uniquement des séparateurs de colonne de | type virgule. | Comment faire pour lire un fichier avec des séparateurs de colonne de type | | ou ! par exemple. (je suis obligée de choisir un séparateur différent de | virgule car les désiGnations peuvent contenir des virgules) | | Merci à tous ceux qui pourront m'aider. | |
Alain CROS
Bonjour.
Sub LireFichierTexte() Dim NUMERO&, COD$, QTE$, DESIGNATIONS$ Dim Lachaine$, TbloA, TbloB, n%, I&, J& n = FreeFile Open "C:Test.txt" For Input As #n Lachaine = Input(LOF(n), #n) Close #n TbloA = Split(Lachaine, vbCrLf) J = UBound(TbloA) - 1 For I = 0& To J - 2 TbloB = Split(TbloA(I), " | ") NUMERO = CLng(TbloB(0)) COD = TbloB(1) DESIGNATIONS = TbloB(2) QTE = TbloB(3) MsgBox "NUMERO = " & NUMERO & vbNewLine & _ "COD = " & COD & vbNewLine & _ "DESIGNATIONS = " & DESIGNATIONS & vbNewLine & _ "QTE = " & QTE 'Ici traitement Next End Sub
Alain CROS
"Emilie" a écrit dans le message de news: | Merci Damien | | Dans mon traitement je dois exclure les données des 2 dernières lignes. | | Y a t-il un moyen de connaître le nombre total de lignes à lire ? | | Avez-vous une idée ? | | Par avance merci. | | Emilie |
Bonjour.
Sub LireFichierTexte()
Dim NUMERO&, COD$, QTE$, DESIGNATIONS$
Dim Lachaine$, TbloA, TbloB, n%, I&, J&
n = FreeFile
Open "C:Test.txt" For Input As #n
Lachaine = Input(LOF(n), #n)
Close #n
TbloA = Split(Lachaine, vbCrLf)
J = UBound(TbloA) - 1
For I = 0& To J - 2
TbloB = Split(TbloA(I), " | ")
NUMERO = CLng(TbloB(0))
COD = TbloB(1)
DESIGNATIONS = TbloB(2)
QTE = TbloB(3)
MsgBox "NUMERO = " & NUMERO & vbNewLine & _
"COD = " & COD & vbNewLine & _
"DESIGNATIONS = " & DESIGNATIONS & vbNewLine & _
"QTE = " & QTE
'Ici traitement
Next
End Sub
Alain CROS
"Emilie" <Emilie@discussions.microsoft.com> a écrit dans le message de news: 01F3FD9A-241F-4090-A735-8A7DC4CDB1FC@microsoft.com...
| Merci Damien
|
| Dans mon traitement je dois exclure les données des 2 dernières lignes.
|
| Y a t-il un moyen de connaître le nombre total de lignes à lire ?
|
| Avez-vous une idée ?
|
| Par avance merci.
|
| Emilie
|
Sub LireFichierTexte() Dim NUMERO&, COD$, QTE$, DESIGNATIONS$ Dim Lachaine$, TbloA, TbloB, n%, I&, J& n = FreeFile Open "C:Test.txt" For Input As #n Lachaine = Input(LOF(n), #n) Close #n TbloA = Split(Lachaine, vbCrLf) J = UBound(TbloA) - 1 For I = 0& To J - 2 TbloB = Split(TbloA(I), " | ") NUMERO = CLng(TbloB(0)) COD = TbloB(1) DESIGNATIONS = TbloB(2) QTE = TbloB(3) MsgBox "NUMERO = " & NUMERO & vbNewLine & _ "COD = " & COD & vbNewLine & _ "DESIGNATIONS = " & DESIGNATIONS & vbNewLine & _ "QTE = " & QTE 'Ici traitement Next End Sub
Alain CROS
"Emilie" a écrit dans le message de news: | Merci Damien | | Dans mon traitement je dois exclure les données des 2 dernières lignes. | | Y a t-il un moyen de connaître le nombre total de lignes à lire ? | | Avez-vous une idée ? | | Par avance merci. | | Emilie |