Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

importation fichier texte

3 réponses
Avatar
Unss34
Bonjour,
le code ci-dessous (dont je ne suis pas l'auteur) importe des données à
partir d'un fichier texte (une ligne par enregistrement, champs séparés par
\)
tout baigne sauf qu'il n'importe pas la dernière donnée de chaque ligne qui
comporte 17 valeurs
A l'arrivée, dans Excel la dernière colonne n'est pas renseignée par les
valeurs qui sont bien dans le fichier texte

Le code:
"Open fichier For Input As #1
Ligne = 1
While Not EOF(1)
Input #1, enreg
NbLignes = NbLignes + 1
lg = Len(enreg)
If (lg > 4) Then
nb = 0
Ligne = Ligne + 1 'ligne de la feuille où écrire
For I = 1 To lg
position = InStr(enreg, "\")
If position > 0 Then
nb = nb + 1
If nb > 1 Then
chaine = Mid(enreg, 1, position - 1)
Cells(Ligne, nb).Value = chaine
End If
lg = Len(enreg)
lg = lg - position
enreg = Mid(enreg, position + 1, lg)
lg = Len(enreg)
'MsgBox (enreg)
End If
Next
'MsgBox ("nb: " & nb)
End If
Wend
Close #1
"
Merci de votre aide

3 réponses

Avatar
Daniel.C
Bonsoir.
Essaie :

Open fichier For Input As #1
While Not EOF(1)
Input #1, enreg
tabl = Split(enreg, "")
For i = 0 To UBound(tabl)
nb = nb + 1
Cells(i + 1, nb) = tabl(i)
Next i
Wend
Close #1

Cordialement.
Daniel


Bonjour,
le code ci-dessous (dont je ne suis pas l'auteur) importe des données à
partir d'un fichier texte (une ligne par enregistrement, champs séparés par
)
tout baigne sauf qu'il n'importe pas la dernière donnée de chaque ligne qui
comporte 17 valeurs
A l'arrivée, dans Excel la dernière colonne n'est pas renseignée par les
valeurs qui sont bien dans le fichier texte

Le code:
"Open fichier For Input As #1
Ligne = 1
While Not EOF(1)
Input #1, enreg
NbLignes = NbLignes + 1
lg = Len(enreg)
If (lg > 4) Then
nb = 0
Ligne = Ligne + 1 'ligne de la feuille où écrire
For I = 1 To lg
position = InStr(enreg, "")
If position > 0 Then
nb = nb + 1
If nb > 1 Then
chaine = Mid(enreg, 1, position - 1)
Cells(Ligne, nb).Value = chaine
End If
lg = Len(enreg)
lg = lg - position
enreg = Mid(enreg, position + 1, lg)
lg = Len(enreg)
'MsgBox (enreg)
End If
Next
'MsgBox ("nb: " & nb)
End If
Wend
Close #1
"
Merci de votre aide


Avatar
Unss34
Merci Daniel,
mais les données ne sont pas placées au bon endroit:
la macro passe à la ligne et colonne suivante après avoir écrit la 1ère
donnée, au lieu de passer seulement à la colonne suivante...

"Daniel.C" a écrit dans le message de news:
%
Bonsoir.
Essaie :

Open fichier For Input As #1
While Not EOF(1)
Input #1, enreg
tabl = Split(enreg, "")
For i = 0 To UBound(tabl)
nb = nb + 1
Cells(i + 1, nb) = tabl(i)
Next i
Wend
Close #1

Cordialement.
Daniel


Bonjour,
le code ci-dessous (dont je ne suis pas l'auteur) importe des données à
partir d'un fichier texte (une ligne par enregistrement, champs séparés
par )
tout baigne sauf qu'il n'importe pas la dernière donnée de chaque ligne
qui comporte 17 valeurs
A l'arrivée, dans Excel la dernière colonne n'est pas renseignée par les
valeurs qui sont bien dans le fichier texte

Le code:
"Open fichier For Input As #1
Ligne = 1
While Not EOF(1)
Input #1, enreg
NbLignes = NbLignes + 1
lg = Len(enreg)
If (lg > 4) Then
nb = 0
Ligne = Ligne + 1 'ligne de la feuille où écrire
For I = 1 To lg
position = InStr(enreg, "")
If position > 0 Then
nb = nb + 1
If nb > 1 Then
chaine = Mid(enreg, 1, position - 1)
Cells(Ligne, nb).Value = chaine
End If
lg = Len(enreg)
lg = lg - position
enreg = Mid(enreg, position + 1, lg)
lg = Len(enreg)
'MsgBox (enreg)
End If
Next
'MsgBox ("nb: " & nb)
End If
Wend
Close #1
"
Merci de votre aide






Avatar
Unss34
J'ai adapté pour corriger le placement des données, en bricolant un brin,
mais c'est OK:

Open fichier For Input As #1
While Not EOF(1)
Input #1, enreg
tabl = Split(enreg, "")
j = j + 1
For i = 0 To UBound(tabl)
nb = nb + 1
Cells(j, nb) = tabl(i)

Next i
nb = nb - 17
Wend
Close #1

"Unss34" <unss34(a_enlever)@free.fr> a écrit dans le message de news:

Merci Daniel,
mais les données ne sont pas placées au bon endroit:
la macro passe à la ligne et colonne suivante après avoir écrit la 1ère
donnée, au lieu de passer seulement à la colonne suivante...

"Daniel.C" a écrit dans le message de news:
%
Bonsoir.
Essaie :

Open fichier For Input As #1
While Not EOF(1)
Input #1, enreg
tabl = Split(enreg, "")
For i = 0 To UBound(tabl)
nb = nb + 1
Cells(i + 1, nb) = tabl(i)
Next i
Wend
Close #1

Cordialement.
Daniel


Bonjour,
le code ci-dessous (dont je ne suis pas l'auteur) importe des données à
partir d'un fichier texte (une ligne par enregistrement, champs séparés
par )
tout baigne sauf qu'il n'importe pas la dernière donnée de chaque ligne
qui comporte 17 valeurs
A l'arrivée, dans Excel la dernière colonne n'est pas renseignée par les
valeurs qui sont bien dans le fichier texte

Le code:
"Open fichier For Input As #1
Ligne = 1
While Not EOF(1)
Input #1, enreg
NbLignes = NbLignes + 1
lg = Len(enreg)
If (lg > 4) Then
nb = 0
Ligne = Ligne + 1 'ligne de la feuille où écrire
For I = 1 To lg
position = InStr(enreg, "")
If position > 0 Then
nb = nb + 1
If nb > 1 Then
chaine = Mid(enreg, 1, position - 1)
Cells(Ligne, nb).Value = chaine
End If
lg = Len(enreg)
lg = lg - position
enreg = Mid(enreg, position + 1, lg)
lg = Len(enreg)
'MsgBox (enreg)
End If
Next
'MsgBox ("nb: " & nb)
End If
Wend
Close #1
"
Merci de votre aide