Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bestimmte Werte aus definierten Zeilen einlesen

Bestimmte Werte aus definierten Zeilen einlesen
05.06.2008 12:43:00
Andre´
Hallo alle zusammen,
Ich möchte gern aus einen frei auszuwählenden Ordner einige Daten aus bestimmten Zeilen jeder enthaltenen nio Datei einlesen.
Wenn Excel geöffnet ist, möchte ich dass die eingelesenen Daten aus der nio Datei in eine Neue Exceldatei wie folgt eingelesen werden:
Aus Zeile 3 die ersten zehn Zeichen in die Zelle A2
Aus Zeile 3 alle Zeichen ab Zeichen zwölf in die Zelle B2
Aus Zeile 8 das zwölfte bis fünfzehnte Zeichen in die Zelle C2
Aus Zeile 9 die zwei Zeichen von rechts in die Zelle D2
Aus Zeile 55 erste und zweite Zeichen in die Zelle E2
Aus Zeile 55 dritte und vierte Zeichen in die Zelle F2
Aus Zeile 55 fünfte und sechste Zeichen in die Zelle G2
Wenn dies eingelesen wurde dann sollen die Daten aus der nächsten nio Datei angehängt werden.
Aus Zeile 3 die ersten zehn Zeichen in die Zelle A3 u.s.w.
.
.
Hier zwei Bsp. Der nio Dateien die ich als txt umbenannt habe um sie hochladen zu können.
https://www.herber.de/bbs/user/52841.txt
https://www.herber.de/bbs/user/52842.txt
So sollten die Daten in Excel stehen: https://www.herber.de/bbs/user/52843.xls
(In Zeile 1 steht der Formataufbau zu den Spalten)
Ich wäre sehr dankbar wenn mir jemand helfen könnte!
MFG Andre

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Werte aus definierten Zeilen einlesen
05.06.2008 13:07:58
Rudi
Hallo,
sollte klappen:
Sub tt() Dim strDatei As String, iCounter As Integer, iFree As Integer Dim arrTmp(1 To 1, 1 To 7), strTmp As String strDatei = Dir("c:\test\*.nio") 'anpassen Do While strDatei "" iFree = FreeFile Open strDatei For Input As #iFree Do While Not EOF(iFree) iCounter = iCounter + 1 Line Input #iFree, strTmp Select Case iCounter Case 3 arrTmp(1, 1) = Int(strTmp * 1) arrTmp(1, 2) = (strTmp * 1) - Int(strTmp * 1) Case 8 arrTmp(1, 3) = Mid(strTmp, 12, 4) Case 9 arrTmp(1, 4) = Right(strTmp, 2) Case 55 arrTmp(1, 5) = Mid(strTmp, 1, 2) arrTmp(1, 6) = Mid(strTmp, 3, 2) arrTmp(1, 7) = Mid(strTmp, 5, 2) End Select Loop Close iFree Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 7) = arrTmp Erase arrTmp strDatei = Dir Loop End Sub


Gruß
Rudi

Anzeige
AW: Bestimmte Werte aus definierten Zeilen einlesen
05.06.2008 13:30:09
Andre´
Hallo Rudi,
erstmals Danke für die schnelle Antwort.
Code bleibt hier hängen.
Userbild
Laufzeitfehler 53 Datei nicht gefunden
Hast du einen Rat
MFG Andre

AW: Bestimmte Werte aus definierten Zeilen einlesen
05.06.2008 13:37:00
Rudi
Hallo,
2.Versuch:

Sub tt()
Dim strDatei As String, iCounter As Integer, iFree As Integer
Dim arrTmp(1 To 1, 1 To 7), strTmp As String
Const strPfad As String = "c:\Test\"  'anpassen
strDatei = Dir(strPfad & "*.nio")
Do While strDatei  ""
iFree = FreeFile
Open (strPfad & strDatei) For Input As #iFree
Do While Not EOF(iFree)
iCounter = iCounter + 1
Line Input #iFree, strTmp
Select Case iCounter
Case 3
arrTmp(1, 1) = Int(strTmp * 1)
arrTmp(1, 2) = (strTmp * 1) - Int(strTmp * 1)
Case 8
arrTmp(1, 3) = Mid(strTmp, 12, 4)
Case 9
arrTmp(1, 4) = Right(strTmp, 2)
Case 55
arrTmp(1, 5) = Mid(strTmp, 1, 2)
arrTmp(1, 6) = Mid(strTmp, 3, 2)
arrTmp(1, 7) = Mid(strTmp, 5, 2)
End Select
Loop
Close iFree
Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 7) = arrTmp
Erase arrTmp
strDatei = Dir
Loop
End Sub


Gruß
Rudi

Anzeige
AW: Bestimmte Werte aus definierten Zeilen einlesen
05.06.2008 14:40:00
Andre´
Hallo Rudi,
jetzt bleibt der Code hier hängen :-(((
Userbild
MFG Andre

AW: Bestimmte Werte aus definierten Zeilen einlesen
05.06.2008 14:51:00
Rudi
Hallo,
aller guten Dinge sind 3:

Sub tt()
Dim strDatei As String, iCounter As Integer, iFree As Integer
Dim arrTmp(1 To 1, 1 To 7), strTmp As String
Const strPfad As String = "c:\Test\"  'anpassen
strDatei = Dir(strPfad & "*.nio")
Do While strDatei  ""
iFree = FreeFile
Open (strPfad & strDatei) For Input As #iFree
Do While Not EOF(iFree)
iCounter = iCounter + 1
Line Input #iFree, strTmp
Select Case iCounter
Case 3
arrTmp(1, 1) = Left(strTmp, 10)
arrTmp(1, 2) = Mid(strTmp, 12, 255)
Case 8
arrTmp(1, 3) = Mid(strTmp, 12, 4)
Case 9
arrTmp(1, 4) = Right(strTmp, 2)
Case 55
arrTmp(1, 5) = Mid(strTmp, 1, 2)
arrTmp(1, 6) = Mid(strTmp, 3, 2)
arrTmp(1, 7) = Mid(strTmp, 5, 2)
End Select
Loop
Close iFree
Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 7) = arrTmp
Erase arrTmp
iCounter = 0
strDatei = Dir
Loop
End Sub


Gruß
Rudi

Anzeige
AW: Bestimmte Werte aus definierten Zeilen einlesen
05.06.2008 15:30:25
Andre´
Hallo Rudi,
jetzt funktioniert es :-))) habe aber ebenfalls noch das Problem wie bereits bei Worti erwähnt mit dem Datumsformat hier der Link https://www.herber.de/bbs/user/52853.htm
MFG Andre

Melde mich heute Abend nochmals oT
05.06.2008 15:33:04
Andre´

AW: Bestimmte Werte aus definierten Zeilen einlesen
05.06.2008 15:44:58
Rudi
kein Problem:

Sub tt()
Dim strDatei As String, iCounter As Integer, iFree As Integer
Dim arrTmp(1 To 1, 1 To 7), strTmp As String
Const strPfad As String = "c:\Test\"  'anpassen
strDatei = Dir(strPfad & "*.nio")
Do While strDatei  ""
iFree = FreeFile
Open (strPfad & strDatei) For Input As #iFree
Do While Not EOF(iFree)
iCounter = iCounter + 1
Line Input #iFree, strTmp
Select Case iCounter
Case 3
arrTmp(1, 1) = Replace(Left(strTmp, 10), "/", ".")
arrTmp(1, 2) = Mid(strTmp, 12, 255)
Case 8
arrTmp(1, 3) = Mid(strTmp, 12, 4)
Case 9
arrTmp(1, 4) = Right(strTmp, 2)
Case 55
arrTmp(1, 5) = Mid(strTmp, 1, 2)
arrTmp(1, 6) = Mid(strTmp, 3, 2)
arrTmp(1, 7) = Mid(strTmp, 5, 2)
End Select
Loop
Close iFree
Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 7) = arrTmp
Erase arrTmp
iCounter = 0
strDatei = Dir
Loop
End Sub


Gruß
Rudi

Anzeige
AW: Bestimmte Werte aus definierten Zeilen einlesen
05.06.2008 20:21:00
Andre´
Hallo Rudi,
vielen Dank funktioniert prima :-)))
Eine letzte Frage hätte ich noch.
Bevor die Daten in die Tabelle geschrieben werden werden diese doch vorher in ein Temp.Verzeichniss geschrieben Oder? Kann man sich die Daten ansehen?
MFG Andre

AW: Bestimmte Werte aus definierten Zeilen einlesen
06.06.2008 12:47:32
Rudi
Hallo,

doch vorher in ein Temp.Verzeichniss geschrieben Oder?


Nein, in ein Array (Datenfeld)


Kann man sich die Daten ansehen?


Blende das Lokalfenster ein (Ansicht-Lokalfenster) und setze bei Erase ArrTmp einen Haltepunkt.
Dann kannst du dir im LF den Inhalt der Variablen arrTmp anschauen.
Gruß
Rudi

Anzeige
AW: Bestimmte Werte aus definierten Zeilen einlesen
06.06.2008 22:02:32
Andre´
Hallo Rudi,
Vielen Dank für den Tipp, hab ich wieder etwas dazu gelernt :-)))
Schönes Wochenende.
MFG Andre

AW: Bestimmte Werte aus definierten Zeilen einlesen
05.06.2008 15:17:22
Andre´
Hallo Worti,
Auch Dir Danke für die Antwort. Dein Code funktioniert ganz gut. Es gibt noch zwei Probleme.
1. Wenn ich bei der Ordnerauswahl auf abbrechen gehe bleibt der Code hängen. Kann man das abfangen?
2. Habe mal zwei andere nio Dateien angehängt
https://www.herber.de/bbs/user/52851.txt
https://www.herber.de/bbs/user/52852.txt
wo ich in Zeile A3 ein anderes Format erhalte: siehe nachfolgende Darstellung:
Tabelle1

 ABCDEFG
1DatumsformatUhrzeitformatText formatStandardformatText formatText formatText format
205.06.200810:30:0020  28001210
316/04/200808:55:009   28000004


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Erst mit F2 und Enter in die Zelle dann erhalte ich das richtige Format.
Tabelle1

 ABCDEFG
1DatumsformatUhrzeitformatText formatStandardformatText formatText formatText format
205.06.200810:30:0020  28001210
316.04.200808:55:009   28000004


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Kann man das ändern!
MFG Andre
Anzeige

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige