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
chrisn
Bonjour FAB,
Dans mon fichier texte, les donnée sont séparée par des point virgule car
générer par un autre logiciel.
Apparement la fonction INPUT ou INPUT # ne fonctionne qu'avec des virgules.
la fontion input(nombre_de_caractères,[#]fichier_lu) sait lire
caractère par caractères, il suffit de reconstituer vos entrées Exemple :
Sub litfic()
Dim Moncar, Monart Moncar = "" Monart = "" Open "c:monfichier.txt" For Input As #1 Moncar = Input(1, #1) Do While Not EOF(1) If Moncar = ";" Then ' mettre monart ou vous voulez Moncar = Input(1, #1) Monart = "" Else Monart = Monart + Moncar Moncar = Input(1, #1) End If Loop Close #1
'juste pour vérification du dernier article Sheets("feuil1").Select Range("A1").Select ActiveCell.FormulaR1C1 = Monart End Sub
Attention, il vous faudra gérer le cas où votre dernière chaîne ne se termine pas par ";"
-- chrisn mettre le bon fai, libertysurf pour me répondre
Bonjour FAB,
Dans mon fichier texte, les donnée sont séparée par des point
virgule car
générer par un autre logiciel.
Apparement la fonction INPUT ou INPUT # ne fonctionne qu'avec des
virgules.
la fontion input(nombre_de_caractères,[#]fichier_lu) sait lire
caractère par caractères, il suffit de reconstituer vos entrées
Exemple :
Sub litfic()
Dim Moncar, Monart
Moncar = ""
Monart = ""
Open "c:monfichier.txt" For Input As #1
Moncar = Input(1, #1)
Do While Not EOF(1)
If Moncar = ";" Then
' mettre monart ou vous voulez
Moncar = Input(1, #1)
Monart = ""
Else
Monart = Monart + Moncar
Moncar = Input(1, #1)
End If
Loop
Close #1
'juste pour vérification du dernier article
Sheets("feuil1").Select
Range("A1").Select
ActiveCell.FormulaR1C1 = Monart
End Sub
Attention, il vous faudra gérer le cas où votre dernière chaîne ne
se termine pas par ";"
--
chrisn
mettre le bon fai, libertysurf pour me répondre
Dans mon fichier texte, les donnée sont séparée par des point virgule car
générer par un autre logiciel.
Apparement la fonction INPUT ou INPUT # ne fonctionne qu'avec des virgules.
la fontion input(nombre_de_caractères,[#]fichier_lu) sait lire
caractère par caractères, il suffit de reconstituer vos entrées Exemple :
Sub litfic()
Dim Moncar, Monart Moncar = "" Monart = "" Open "c:monfichier.txt" For Input As #1 Moncar = Input(1, #1) Do While Not EOF(1) If Moncar = ";" Then ' mettre monart ou vous voulez Moncar = Input(1, #1) Monart = "" Else Monart = Monart + Moncar Moncar = Input(1, #1) End If Loop Close #1
'juste pour vérification du dernier article Sheets("feuil1").Select Range("A1").Select ActiveCell.FormulaR1C1 = Monart End Sub
Attention, il vous faudra gérer le cas où votre dernière chaîne ne se termine pas par ";"
-- chrisn mettre le bon fai, libertysurf pour me répondre
Clément Marcotte
Bonjour,
Apparement la fonction INPUT ou INPUT # ne fonctionne qu'avec des virgules.
Jamais eu ce problème. Ceci dit, deux façons parmi d'autres, en lisant le ligne au complet et en la séparant après. Nécessite Excel 2000 ou plus à cause du Split(). Pour Excel 97, il y a des fonctions de remplacement pour Split() sur le site de Frédéric.
http://perso.wanadoo.fr/frederic.sigonneau
Sun ouvrirfichiertexteetseparer() Dim separateur As String, i As Integer, f1 As Object Dim fso As Object, f As Object, laligne As String Const ForReading = 1 separateur = InputBox("Indiquez votre séparateur", _ "Choix du séparateur") lenom = "c:copieunbeaufichiertexte.txt" Set fso = CreateObject("Scripting.FileSystemObject") Set f1 = fso.GetFile(lenom) Set f = f1.OpenAsTextStream(ForReading, TristateUseDefault) i = 1 Do While Not f.AtEndOfStream laligne = f.ReadLine laligne1 = Split(laligne, separateur) For j = 0 To UBound(laligne1) If InStr(laligne1(j), Chr(34)) = 1 Then laligne1(j) = Right(laligne1(j), Len(laligne1(j)) - 1) End If If InStrRev(laligne1(j), Chr(34)) > 0 Then laligne1(j) = Left(laligne1(j), InStrRev(laligne1(j), Chr(34)) - 1) End If Cells(i, j + 1).Value = laligne1(j) Next i = i + 1 Loop f.Close End Sub
Sub ouvrirfichiertexteetseparer1() Dim separateur As String, i As Integer Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso, f separateur = InputBox("Indiquez votre séparateur", "Choix du séparateur") Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("c:copieunbeaufichiertexte.txt", _ ForAppending, True) derniereligne = f.Line f.Close Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("c:copieunbeaufichiertexte.txt", _ ForReading, TristateUseDefault) For i = 1 To derniereligne laligne = f.ReadLine If laligne > "" Then laligne1 = Split(laligne, separateur) For j = 0 To UBound(laligne1) If InStr(laligne1(j), Chr(34)) = 1 Then laligne1(j) = Right(laligne1(j), Len(laligne1(j)) - 1) End If If InStrRev(laligne1(j), Chr(34)) > 0 Then laligne1(j) = Left(laligne1(j), InStrRev(laligne1(j), Chr(34)) - 1) End If Cells(i, j + 1).Value = laligne1(j) Next Else Exit For End If Next f.Close End Sub
"FAB" a écrit dans le message de news:
Boujour a tous,
Je cherche à lire un fichier texte où des donnée sont stokée via le vba.
Dans mon fichier texte, les donnée sont séparée par des point virgule car
générer par un autre logiciel.
Merci à tous pour votre aide.
Fab.
-- Mettre un tiret entre be et iees pour me répondre.
Bonjour,
Apparement la fonction INPUT ou INPUT # ne fonctionne qu'avec des
virgules.
Jamais eu ce problème. Ceci dit, deux façons parmi d'autres, en lisant
le ligne au complet et en la séparant après. Nécessite Excel 2000 ou
plus à cause du Split(). Pour Excel 97, il y a des fonctions de
remplacement pour Split() sur le site de Frédéric.
http://perso.wanadoo.fr/frederic.sigonneau
Sun ouvrirfichiertexteetseparer()
Dim separateur As String, i As Integer, f1 As Object
Dim fso As Object, f As Object, laligne As String
Const ForReading = 1
separateur = InputBox("Indiquez votre séparateur", _
"Choix du séparateur")
lenom = "c:copieunbeaufichiertexte.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.GetFile(lenom)
Set f = f1.OpenAsTextStream(ForReading, TristateUseDefault)
i = 1
Do While Not f.AtEndOfStream
laligne = f.ReadLine
laligne1 = Split(laligne, separateur)
For j = 0 To UBound(laligne1)
If InStr(laligne1(j), Chr(34)) = 1 Then
laligne1(j) = Right(laligne1(j), Len(laligne1(j)) - 1)
End If
If InStrRev(laligne1(j), Chr(34)) > 0 Then
laligne1(j) = Left(laligne1(j), InStrRev(laligne1(j), Chr(34)) - 1)
End If
Cells(i, j + 1).Value = laligne1(j)
Next
i = i + 1
Loop
f.Close
End Sub
Sub ouvrirfichiertexteetseparer1()
Dim separateur As String, i As Integer
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f
separateur = InputBox("Indiquez votre séparateur", "Choix du
séparateur")
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:copieunbeaufichiertexte.txt", _
ForAppending, True)
derniereligne = f.Line
f.Close
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:copieunbeaufichiertexte.txt", _
ForReading, TristateUseDefault)
For i = 1 To derniereligne
laligne = f.ReadLine
If laligne > "" Then
laligne1 = Split(laligne, separateur)
For j = 0 To UBound(laligne1)
If InStr(laligne1(j), Chr(34)) = 1 Then
laligne1(j) = Right(laligne1(j), Len(laligne1(j)) - 1)
End If
If InStrRev(laligne1(j), Chr(34)) > 0 Then
laligne1(j) = Left(laligne1(j), InStrRev(laligne1(j), Chr(34)) - 1)
End If
Cells(i, j + 1).Value = laligne1(j)
Next
Else
Exit For
End If
Next
f.Close
End Sub
"FAB" <beiees@infonie.fr> a écrit dans le message de
news:O85fvGTIEHA.828@TK2MSFTNGP12.phx.gbl...
Boujour a tous,
Je cherche à lire un fichier texte où des donnée sont stokée via le
vba.
Dans mon fichier texte, les donnée sont séparée par des point
virgule car
générer par un autre logiciel.
Merci à tous pour votre aide.
Fab.
--
Mettre un tiret entre be et iees pour me répondre.
Apparement la fonction INPUT ou INPUT # ne fonctionne qu'avec des virgules.
Jamais eu ce problème. Ceci dit, deux façons parmi d'autres, en lisant le ligne au complet et en la séparant après. Nécessite Excel 2000 ou plus à cause du Split(). Pour Excel 97, il y a des fonctions de remplacement pour Split() sur le site de Frédéric.
http://perso.wanadoo.fr/frederic.sigonneau
Sun ouvrirfichiertexteetseparer() Dim separateur As String, i As Integer, f1 As Object Dim fso As Object, f As Object, laligne As String Const ForReading = 1 separateur = InputBox("Indiquez votre séparateur", _ "Choix du séparateur") lenom = "c:copieunbeaufichiertexte.txt" Set fso = CreateObject("Scripting.FileSystemObject") Set f1 = fso.GetFile(lenom) Set f = f1.OpenAsTextStream(ForReading, TristateUseDefault) i = 1 Do While Not f.AtEndOfStream laligne = f.ReadLine laligne1 = Split(laligne, separateur) For j = 0 To UBound(laligne1) If InStr(laligne1(j), Chr(34)) = 1 Then laligne1(j) = Right(laligne1(j), Len(laligne1(j)) - 1) End If If InStrRev(laligne1(j), Chr(34)) > 0 Then laligne1(j) = Left(laligne1(j), InStrRev(laligne1(j), Chr(34)) - 1) End If Cells(i, j + 1).Value = laligne1(j) Next i = i + 1 Loop f.Close End Sub
Sub ouvrirfichiertexteetseparer1() Dim separateur As String, i As Integer Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso, f separateur = InputBox("Indiquez votre séparateur", "Choix du séparateur") Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("c:copieunbeaufichiertexte.txt", _ ForAppending, True) derniereligne = f.Line f.Close Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("c:copieunbeaufichiertexte.txt", _ ForReading, TristateUseDefault) For i = 1 To derniereligne laligne = f.ReadLine If laligne > "" Then laligne1 = Split(laligne, separateur) For j = 0 To UBound(laligne1) If InStr(laligne1(j), Chr(34)) = 1 Then laligne1(j) = Right(laligne1(j), Len(laligne1(j)) - 1) End If If InStrRev(laligne1(j), Chr(34)) > 0 Then laligne1(j) = Left(laligne1(j), InStrRev(laligne1(j), Chr(34)) - 1) End If Cells(i, j + 1).Value = laligne1(j) Next Else Exit For End If Next f.Close End Sub
"FAB" a écrit dans le message de news:
Boujour a tous,
Je cherche à lire un fichier texte où des donnée sont stokée via le vba.
Dans mon fichier texte, les donnée sont séparée par des point virgule car
générer par un autre logiciel.
Merci à tous pour votre aide.
Fab.
-- Mettre un tiret entre be et iees pour me répondre.
FAB
Salut,
Grand merçi a toi.
A+
Fab
"chrisn" a écrit dans le message de news:
Bonjour FAB,
Dans mon fichier texte, les donnée sont séparée par des point virgule car
générer par un autre logiciel.
Apparement la fonction INPUT ou INPUT # ne fonctionne qu'avec des virgules.
la fontion input(nombre_de_caractères,[#]fichier_lu) sait lire
caractère par caractères, il suffit de reconstituer vos entrées Exemple :
Sub litfic()
Dim Moncar, Monart Moncar = "" Monart = "" Open "c:monfichier.txt" For Input As #1 Moncar = Input(1, #1) Do While Not EOF(1) If Moncar = ";" Then ' mettre monart ou vous voulez Moncar = Input(1, #1) Monart = "" Else Monart = Monart + Moncar Moncar = Input(1, #1) End If Loop Close #1
'juste pour vérification du dernier article Sheets("feuil1").Select Range("A1").Select ActiveCell.FormulaR1C1 = Monart End Sub
Attention, il vous faudra gérer le cas où votre dernière chaîne ne se termine pas par ";"
-- chrisn mettre le bon fai, libertysurf pour me répondre
Salut,
Grand merçi a toi.
A+
Fab
"chrisn" <chrisn@freesurf.invalid> a écrit dans le message de
news:OiI7r4TIEHA.520@tk2msftngp13.phx.gbl...
Bonjour FAB,
Dans mon fichier texte, les donnée sont séparée par des point
virgule car
générer par un autre logiciel.
Apparement la fonction INPUT ou INPUT # ne fonctionne qu'avec des
virgules.
la fontion input(nombre_de_caractères,[#]fichier_lu) sait lire
caractère par caractères, il suffit de reconstituer vos entrées
Exemple :
Sub litfic()
Dim Moncar, Monart
Moncar = ""
Monart = ""
Open "c:monfichier.txt" For Input As #1
Moncar = Input(1, #1)
Do While Not EOF(1)
If Moncar = ";" Then
' mettre monart ou vous voulez
Moncar = Input(1, #1)
Monart = ""
Else
Monart = Monart + Moncar
Moncar = Input(1, #1)
End If
Loop
Close #1
'juste pour vérification du dernier article
Sheets("feuil1").Select
Range("A1").Select
ActiveCell.FormulaR1C1 = Monart
End Sub
Attention, il vous faudra gérer le cas où votre dernière chaîne ne
se termine pas par ";"
--
chrisn
mettre le bon fai, libertysurf pour me répondre
Dans mon fichier texte, les donnée sont séparée par des point virgule car
générer par un autre logiciel.
Apparement la fonction INPUT ou INPUT # ne fonctionne qu'avec des virgules.
la fontion input(nombre_de_caractères,[#]fichier_lu) sait lire
caractère par caractères, il suffit de reconstituer vos entrées Exemple :
Sub litfic()
Dim Moncar, Monart Moncar = "" Monart = "" Open "c:monfichier.txt" For Input As #1 Moncar = Input(1, #1) Do While Not EOF(1) If Moncar = ";" Then ' mettre monart ou vous voulez Moncar = Input(1, #1) Monart = "" Else Monart = Monart + Moncar Moncar = Input(1, #1) End If Loop Close #1
'juste pour vérification du dernier article Sheets("feuil1").Select Range("A1").Select ActiveCell.FormulaR1C1 = Monart End Sub
Attention, il vous faudra gérer le cas où votre dernière chaîne ne se termine pas par ";"
-- chrisn mettre le bon fai, libertysurf pour me répondre