Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1468to1472
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
Inhaltsverzeichnis

Transformation

Transformation
27.01.2016 10:27:40
Larissa
Hallo liebe Community,
ich habe folgendes Problem:
Ich habe eine txt-Datei mit einem Datensatz der folgendermaßen aussieht:
;per Fax,322013,,LIE15/149317;Onlineshop,192972,,LIE15/149321,LIE15/149321;Onlineshop,192992,,LIE15/149322,LIE15/149322;Onlineshop,192733,,LIE15/149324,LIE15/149324;
Die Daten sind ohne Leerzeichen, Tab etc. getrennt. Einzig mit Komma und Semikolon.
So sollen die Daten am Ende aussehen:
per Fax	141285		LIE15/139852	LIE15/139852
per Fax	303194		LIE15/139853	LIE15/139853	LIE15/139853
Wenn ich jetzt unter Daten-> Aus Text etc. die Daten importieren habe ich das Problem, dass die Daten alle in einer Zeile stehen.
Hat dafür jemand eine Lösung? Das wäre super!
Liebe Grüße,
Larissa

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wos steht denn "Fax 303194" ? ...
27.01.2016 10:34:40
...
Hallo Larisa,
... außerdem schreibst Du "... die Daten alle in einer Zeile stehen" Du meinst in einer Zelle?
Gruß Werner
.. , - ...

AW: Transformation
27.01.2016 13:28:33
selli
hallo larissa,
deine quelldaten sind absolut nichtssagend und haben nichts mit deinem sollbeispiel zu tun.
manchmal ist es ratsam, den eigenen beitrag zu lesen und zu überlegen, ob man selber als außenstehender damit etwas anfangen könnte.
keine beispieldateien, kein eigener ansatz - mumpitz.
gruß
selli

AW: mir stellt sich da die Frage ...
27.01.2016 15:03:32
...
Hallo selli,
... warum Du so genervt reagierst, noch dazu wo ich Larissa Stunden zuvor schon auf Widersprüche in Ihrer Fragestellung aufmerksam gemacht hatte. Sie hat auch "kaum Excel"-Kenntnisse angegeben und außerdem kann doch jeder mal nicht die beste Stunde haben.
Gruß Werner
.. , - ...

Anzeige
AW: mir stellt sich da die Frage ...
29.01.2016 07:30:34
Larissa
Hi,
dann jetzt noch einmal ein neuer Versuch:
;per Fax,322013,,LIE15/149317;
Onlineshop,192972,,LIE15/149321,LIE15/149321;
Onlineshop,192992,,LIE15/149322,LIE15/149322;

So sieht der Datensatz aus, aber ohne Absätze (die habe ich manuell eingeführt, zur besseren Leserlichkeit.
Mein Ansatz bisher:
Public Sub datachoose()
Dim FileName As String
Dim FilePath As String
FilePath = Application.GetOpenFilename("Excel-Dateien (*.txt), *.txt")
If FilePath  "Falsch" Then
FileName = Dateiname(FilePath)
Call genwkb(FileName, FilePath)
Else
MsgBox "Bitte eine Datei auswählen !", vbOKOnly + vbCritical, "Excel-Tool-Fehler"
End If
End Sub
Sub genwkb(ByVal zWkb As String, ByVal FilePath As String)
Dim xlsName As String
Dim ct As Integer
Dim zWkb2 As String
zWkb2 = Application.ThisWorkbook.Name
ct = 1
Application.Workbooks.Add
Cells.Select
Selection.NumberFormat = "@"
xlsName = zWkb & ActiveWorkbook.Name & ".xls"
ActiveWorkbook.SaveAs (xlsName)
Call txt2xls(FilePath, xlsName)
End Sub
Sub txt2xls(sText As String, sWkb As String)
Dim Buffer As String, arrTmp
Dim wksZiel As Worksheet
Dim lRow As Long
Set wksZiel = Workbooks(sWkb).Sheets(1)
Open sText For Input As #1
Do While Not EOF(1)
lRow = lRow + 1
Line Input #1, Buffer
arrTmp = Split(Mid(Trim(Buffer), 2), ",")
wksZiel.Cells(lRow, 1).Resize(, UBound(arrTmp) + 1) = arrTmp
Loop
Close #1
End Sub
Sub txttoxls()
Dim txt As String
Dim Buffer As String
Dim acLine As Long
Dim acCol As Long
Dim zWkb2 As String
Dim xlsName As String
Application.Workbooks.Add
Cells.Select
Selection.NumberFormat = "@"
xlsName = zWkb & ActiveWorkbook.Name & ".xls"
ActiveWorkbook.SaveAs (xlsName)
zWkb2 = Application.ActiveWorkbook.Name
acLine = 0
acRow = 1
txt = Application.GetOpenFilename("Excel-Dateien (*.txt), *.txt")
Open txt For Input As 1
While Not EOF(1)
Buffer = Input(1, #1)
If Buffer = ";" Then
acLine = acLine + 1
acRow = 1
ElseIf Buffer = "," Then
acRow = acRow + 1
Else
Application.Workbooks(zWkb2).Sheets(1).Cells(acLine, acRow).Value = _
Application.Workbooks(zWkb2).Sheets(1).Cells(acLine, acRow).Value & _
Buffer
'Application.Workbooks(zWkb).Sheets(1).Cells(1, 2).Value = "tesr"
End If
Wend
Close #1
ActiveWorkbook.Save
End Sub
Function Dateiname(Pfad As String)
Dim x As Long
If InStr(Pfad, "\") Then
For x = Len(Pfad) To 1 Step -1
If Mid(Pfad, x, 1) = "\" Then
S = Mid(Pfad, x + 1)
Exit For
End If
Next x
ElseIf InStr(Pfad, ":") = 2 Then
S = Mid(Pfad, 3)
Else
S = Pfad
End If
Dateiname = S
End Function
In der Excel-Datei wird per Button die Methode "datachoose" aufgerufen. Mit diesem Makro oder der von Excel bereitgestellten Funktion "Daten aus Text" stehen alle Datensätze in A1, B1, C1, D1, etc. Die Daten sollen aber wie oben untereinander stehen.
Ich hoffe, dass das Beispiel jetzt deutlicher geworden ist und Entschuldigung für den chaotischen ersten Beitrag.

Anzeige
AW: VBA-Lösung gesucht ...
29.01.2016 20:40:40
...
Hallo Larisa,
... aus VBA-Lösungen halte ich mich heraus. Deshalb hab ich Deinen thread nun als offen markiert, damit die VBA-Profis auf diesen aufmerksam werden.
Gruß Werner
.. , - ...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige