Lire un fichier texte

DRANAC

XLDnaute Junior
Bonjour,
Je dois lire un fichier sdr33 (station totale), format texte.
Je voudrais l'insérer dans excel pour laisser une macro de calcul.
Le hic, je ne sais absolument pas comment lire le fichier et positionner son contenu dans les bonne cellule et formater le contenu.
Je vous joins un exemple de fichier sdr33.
Merci d'avance
 

Pièces jointes

  • GROUPE1.SDR.zip
    1.6 KB · Affichages: 61
Dernière édition:

jeanpierre

Nous a quitté
Repose en paix
Re : Lire un fichier texte

Bonjour DRANAC,

Dans Excel, tu fais Fichier/Ouvrir, tu selectionnes Texte, dans Type de Fichier, et l'assistant Importation s'ouvre.

Ensuite, tu choisis Délimité Suivant, tu selectionnes le séparateur selon celui employé dans ton fichier texte Suivant, Suivant et Terminer.

Si tu n'y arrives pas, l'idéal serait de joindre un petit extrait, représentatif toutefois, de ton fichier texte (sous Zip, sinon tu ne pourras pas le déposer).

A te lire.

Jean-Pierre
 

DRANAC

XLDnaute Junior
Re : Lire un fichier texte

Bonjour,
Comment parser un fichier text en vba ???
Voici un exemple de fichier text
J'aimerais importer les données dont j'ai besoin dans les cellules adéquates et de formater les nombres.
merci d'avance
 

Pièces jointes

  • GROUPE1.zip
    1.6 KB · Affichages: 32

Roland_M

XLDnaute Barbatruc
Re : Lire un fichier texte

bonjour

j'ai essayé comme ceci et ça à l'air de tourner correctement !?
tu places ce code dans un module
tu places ton fichier "GROUPE1.SDR.txt" dans le répertoire en cours !
sinon tu devras préciser le chemin exp: "C:\GROUPE1.SDR.txt"
ça copie dans la feuille active !

Code:
Sub LoadFichierTxt()
Cells.Clear
NoLig = 0
Open "GROUPE1.SDR.txt" For Input As #1
Do While Not EOF(1)
 Input #1, X$
 Tablo = Split(X$, "  ")
 NoLig = NoLig + 1: NoCol = 0
For I = LBound(Tablo) To UBound(Tablo)
 If Trim(Tablo(I)) > "" Then NoCol = NoCol + 1: Cells(NoLig, NoCol) = Tablo(I)
Next
Loop
Close #1
End Sub
 

Pièces jointes

  • Classeur1.xls
    28 KB · Affichages: 99
  • Classeur1.xls
    28 KB · Affichages: 98
  • Classeur1.xls
    28 KB · Affichages: 101
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Lire un fichier texte

Bonjour Roland_M

En guise d'hommage à tes nombreuse contributions ;)

Code:
Sub LoadFichierTxt(dossier$, fichier$)
Cells.Clear
NoLig = 0
Open fichier For Input As #1
Do While Not EOF(1)
 Input #1, X$
 Tablo = Split(X$, "  ")
 NoLig = NoLig + 1: NoCol = 0
For I = LBound(Tablo) To UBound(Tablo)
 If Trim(Tablo(I)) > "" Then NoCol = NoCol + 1: Cells(NoLig, NoCol) = Tablo(I)
Next
Loop
Close #1
End Sub
Code:
Sub traitement()
LoadFichierTxt "C:\Temp\", "GROUPE1.SDR"
End Sub
 

DRANAC

XLDnaute Junior
Re : Lire un fichier texte

Merci à vous deux,
Maintenant je vois comment ca fonctionne, reste à adapter...
Est-il possible d'ouvrir le fichier à partir d'un browser ???
En clair existe-t-il un browser tout fait ou doit on en créer un à partir d'un userform???
Merci
 

Staple1600

XLDnaute Barbatruc
Re : Lire un fichier texte

Re


Une solution possible
(Test OK, avec le fichier *.sdr et le fichier *.xls dans C:\Temp )

Code:
Sub traitement()
Dim F_n$, d$, f$
F_n = Application.GetOpenFilename("Fichier SDR, *.sdr")
d = Split(F_n, "\")(0) + "\" + Split(F_n, "\")(1) + "\"
f = Split(F_n, "\")(2)
LoadFichierTxt d, f
End Sub
Code:
Sub LoadFichierTxt(dossier$, fichier$)
Cells.Clear
NoLig = 0
Open fichier For Input As #1
Do While Not EOF(1)
 Input #1, X$
 Tablo = Split(X$, "  ")
 NoLig = NoLig + 1: NoCol = 0
For I = LBound(Tablo) To UBound(Tablo)
 If Trim(Tablo(I)) > "" Then NoCol = NoCol + 1: Cells(NoLig, NoCol) = Tablo(I)
Next
Loop
Close #1
End Sub
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Lire un fichier texte

re:

quelque chose du genre, si ça t'interresse,
j'ai adapté un classeur qui était destiné à lister des répertoires et loader des fichiers !
il ne lira que des .txt !? sinon la routine de traitement se planterait !
et à savoir que la routine de traitement est spécialement adapté au fichier que tu as parlé !
donc pas question de tirer autre chose que ce fichier !!!!!!

mais ça fait un peu lourd pour la tâche en question !?

et si tu connais pas trop tu auras du mal à modifier !
 

Pièces jointes

  • ListView RepTxt.zip
    27.2 KB · Affichages: 32

Discussions similaires

Réponses
26
Affichages
361

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 814
dernier inscrit
JLGalley