Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Daten automatisch einlesen

Daten automatisch einlesen
11.11.2006 14:44:05
Uwe
Hallo an Alle,
hab hier eine für mich kniffelige Aufgabe die ich alleine nicht hinbekomme.
Folgenden Wunsch hab ich....
möchte auf Tabellenblatt"Eingabe"einen Button der mir auf dem Tabellenblatt "Dateneingang" aus einer Datei"dsnoff" immer die letzten fünf Zeilen einliest und sie entsprechend in einzelne Zellen aufteilt.
Die Datei ist immer unterschiedlich groß jedoch bleiben die letzten fünf Zeilen immer gleich.
Die sehen so aus....
X900012EUR100000248065+101000039690+102000248065+103000039690+104000248065+105000039690+106000248065+107000039690+ 1
X900012EUR108000000000+109000000000+110000000000+111000000000+112000129855+113000046060+114000000047+115000061100+ 1
X900012EUR116000000047+117000000000+118000001250+119000000010+120000287755+121000287755+122000000000+123000000000+ 1
X900012EUR124000000000+125000000000+126000000000+127000000000+128000000000+129000011050+140000000000+141 EUR 1
X900013EUR142000000000+143000000000+144000000000+145000000000+146000000000+147000000000+148000000000+ 1
Die Zeilen fangen immer mit X9000... an.
Die wichtigen Inhalte befinden sich ab dem EUR und zwischen den +.
Hierbei sieht so ein Block (der erste nach EUR)so z.b. aus "100000248065" und bedeutet folgendes Block 100 gleich 2 480.65,- u.s.w.
Der letzte Block wäre in letzter Zeile Block "148000000000" hier ist bei diesem Beispiel nur kein Wert hinterlegt.
schön wäre wenn ich auf den Button drücke und in Tabellenblatt"Dateneingang" würde dann in A1=100 und in B1=2 480.65 u.s.w. stehen. Dann könnte ich mit entsprechenden Sverweisen mit die Inhalte in verschiedene Tabellenblätter holen.
Hoffe ich habs verständlich erklärt, und es gibt eine Lösung dafür.
Vorab schon mal vielen Dank für eure unermütliche Hilfe.
Gruß Uwe

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten automatisch einlesen
11.11.2006 18:32:59
Erich
Hallo Uwe,
probiers mal mit
Option Explicit
Sub Letzte5()
Dim strFile As String, lngAnz As Long, strRec As String, strT As String
Dim ii As Integer, jj As Integer, zz As Long
strFile = "f:\exc\w-w-w\tmp\dsnoff.txt"                  ' anpassen
Close #1
Open strFile For Input As #1
Do While Not EOF(1)
Line Input #1, strRec:       lngAnz = lngAnz + 1     ' Sätze zählen
Loop
Close #1
Open strFile For Input As #1
Do While Not EOF(1)
Line Input #1, strRec                                 ' Sätze einlesen
ii = ii + 1
If ii > lngAnz - 5 Then          ' nur die letzten 5 Sätze verarbeiten
For jj = 1 To 8
strT = Right(Left(strRec, jj * 13), 3)
If Len(strT) = 3 And InStr(strT, " ") = 0 And IsNumeric(strT) Then
zz = zz + 1
Cells(zz, 1) = strT
strT = Right(Left(strRec, jj * 13 + 9), 9)
If IsNumeric(strT) Then Cells(zz, 2) = strT / 100
End If
Next jj
End If
Loop
Close #1
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Daten automatisch einlesen
11.11.2006 19:46:12
Uwe
Hallo Erich,
also ich bin immer wieder erstaunt.Läuft soweit erstklassig.Vielen Dank dafür.
Hab deinen Code in einen Button eingebunden.
Jedoch wenn der Button in meinem Tabellenblatt"Eingabe" ist schreibt er es auch in das Tabellenblatt und nicht in das Tabellenblatt"Dateneingang".
Wie muß das aussehen das der Button auf dem Tabellenblatt"Eingabe" bleiben kann. Und die Daten halt in "Dateneingang" geschrieben werden.
Wenn es einfacher ist kann es auch so bleiben, nur dann sollten die Daten erst bei Zelle A2000 eingefügt werden.
Ist das noch ohne größeren Aufwand möglich?
Gruß
Uwe
Anzeige
AW: Daten automatisch einlesen
11.11.2006 20:10:43
Erich
Hallo Uwe,
du brauchst nur an den beiden Stellen, wo Cells vorkommt, vor Cell das Blatt anzugeben, also
sheets("Dateneingang").Cells(zz, 1) = strT
bzw.
... sheets("Dateneingang").Cells(zz, 2) = strT / 100
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Daten automatisch einlesen
11.11.2006 20:26:46
Uwe
Hallo Erich,
den Samstag Abend hast Du dir verdient.
Läuft wirklich wunschgemäß.
Nochmals Dank.
GrußUwe

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige