Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
368to372
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
368to372
368to372
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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. :)

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige