Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hilfe.

Forumthread: Hilfe.

Hilfe.
27.01.2004 15:55:47
Thorsten
Hi.
Ich habe folgende Zeile in einer Textdatei:
NODE601=4| |0,0|Katalog, Bonk,Klein u. Hallwass, 22143, Hamburg, 0.00 km|||||10°9'28" / 53°36'19" ||0|
(eine Zeile)
Ich importiere Daten der Datei mit dem Befehl:
fileno = FreeFile
Open sFile For Input As #fileno
Do Until EOF(fileno)
Line Input #fileno, sTxt
Do While InStr(sTxt, "|")
Cells(iRow, iCol).Value = Left(sTxt, InStr(sTxt, "|") - 1)
sTxt = Right(sTxt, Len(sTxt) - InStr(sTxt, "|"))
iCol = iCol + 1

Loop
Cells(iRow, iCol).Value = sTxt
Cells(iRow, 6).Value = Replace(sTour, ".ans", "")
iRow = iRow + 1
iCol = 1
Loop
Close
Das Problem, das ich habe: Nach dem Import soll nach "," getrennt werden. Das ist übel, weil dummerweise ein "," in dem Bereich steht:"...Bonk,Klein u. Hallwass..." Dieser Bereich muss zusammen bleiben. (in einer Zelle). Kann man den Import oder irgendetwas ändern, damit das geht? Wichtig für das Endergebnis sind folgende Einträge: Katalog, Bonk,Klein u. Hallwass, 22143, Hamburg, 0.00 km
Und das "," zwischen Bonk und Klein macht alles kaputt.
Bitte helft mir. :)
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe.
27.01.2004 17:08:18
Kladeb
Hi Thorsten,
ist denn die Anzahl der | immer gleich?
Gruss aus Hannover
Kladeb
http://www.Bieler.org
AW: Hilfe.
28.01.2004 08:08:28
Thorsten
Hi.
Ja, die Anzahl ist immer die selbe...
Gruß Thorsten
AW: Hilfe.
28.01.2004 11:07:28
Kladeb
Hi Thorsten,
unter der Annahme das auch die Kommas von Rechts und Links immer gleich sind, versuch mal das folgende Makro:
*-- Schnipp
Option Explicit

Sub Test()
Dim FileNo As Integer
Dim sFile As String, sTxt As String, sTour As String, sTxtx As String, sTxtxx As String
Dim iRow As Integer, iCol As Integer, nInt As Integer
FileNo = FreeFile
sFile = "E:\NODE.TXT"
iRow = 1
Open sFile For Input As #FileNo
Do Until EOF(FileNo)
Line Input #FileNo, sTxt
nInt = 0
iCol = 1
Do While InStr(sTxt, "|")
nInt = nInt + 1
ActiveSheet.Cells(iRow, iCol).Value = Left(sTxt, IIf(InStr(sTxt, "|") > 1, InStr(sTxt, "|") - 1, InStr(sTxt, "|")))
sTxtx = Left(sTxt, IIf(InStr(sTxt, "|") > 1, InStr(sTxt, "|") - 1, InStr(sTxt, "|")))
sTxt = Replace(sTxt, sTxtx, "", 1, 1)
If nInt = 7 Then
sTxtxx = Left(sTxtx, IIf(InStr(sTxtx, ",") > 1, InStr(sTxtx, ",") - 1, InStr(sTxtx, ",")))
sTxtx = Replace(sTxtx, sTxtxx, "", 1, 1)
ActiveSheet.Cells(iRow, iCol).Value = sTxtxx
iCol = iCol + 1
sTxtx = Replace(sTxtx, ", ", "", 1, 1)
sTxtxx = Left(sTxtx, IIf(InStrRev(sTxtx, ",") > 1, InStrRev(sTxtx, ",") - 1, InStrRev(sTxtx, ",")))
sTxtxx = Left(sTxtxx, IIf(InStrRev(sTxtxx, ",") > 1, InStrRev(sTxtxx, ",") - 1, InStrRev(sTxtxx, ",")))
sTxtxx = Left(sTxtxx, IIf(InStrRev(sTxtxx, ",") > 1, InStrRev(sTxtxx, ",") - 1, InStrRev(sTxtxx, ",")))
ActiveSheet.Cells(iRow, iCol).Value = sTxtxx
iCol = iCol + 1
sTxtx = Replace(sTxtx, sTxtxx, "", 1, 1)
sTxtx = Replace(sTxtx, ", ", "", 1, 1)
sTxtxx = Left(sTxtx, IIf(InStrRev(sTxtx, ",") > 1, InStrRev(sTxtx, ",") - 1, InStrRev(sTxtx, ",")))
sTxtxx = Left(sTxtxx, IIf(InStrRev(sTxtxx, ",") > 1, InStrRev(sTxtxx, ",") - 1, InStrRev(sTxtxx, ",")))
ActiveSheet.Cells(iRow, iCol).Value = sTxtxx
iCol = iCol + 1
sTxtx = Replace(sTxtx, sTxtxx, "", 1, 1)
sTxtx = Replace(sTxtx, ", ", "", 1, 1)
sTxtxx = Left(sTxtx, IIf(InStrRev(sTxtx, ",") > 1, InStrRev(sTxtx, ",") - 1, InStrRev(sTxtx, ",")))
ActiveSheet.Cells(iRow, iCol).Value = sTxtxx
iCol = iCol + 1
sTxtx = Replace(sTxtx, sTxtxx, "", 1, 1)
sTxtx = Replace(sTxtx, ", ", "", 1, 1)
ActiveSheet.Cells(iRow, iCol).Value = sTxtx
iCol = iCol + 1
Else
ActiveSheet.Cells(iRow, iCol).Value = sTxtx
iCol = iCol + 1
End If
Loop
iRow = iRow + 1
Loop
Close
End Sub

*-- Schnapp
Es ist zwar noch etwas Optimierungsbedarf an dem Makro, aber auf die schnelle sollte es schon klappen.
Gruss aus Hannover
Kladeb
http://www.Bieler.org
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige