Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1252to1256
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

Umsortieren von einer Spalte in mehrere Spalten

Umsortieren von einer Spalte in mehrere Spalten
einer
Hallo Leute,
mal wieder bin ich mit meinem Latein am Ende. Ich versuche mir gerade eine halbwegs automatische Möglichkeit zu bauen meine Kontodaten in Excel einzufügen. Ich muss die Kontodaten von meinem Online Banking aus dem Browser per Copy & Paste kopieren, meine Bank ist etwas rückständig was CSV Daten angeht. Wenn ich die HTML Daten aber direkt als Tabelle in Excel einfüge, dann dauert das sehr lange (Excel rechnet bis zu 5 Minuten, bis die Daten dann auch mal als Tabelle auftauchen).
Wenn ich aber nur "Inhalte Einfügen Text", geht es direkt - dann habe ich aber keine Tabellenaufteilung mehr sondern nur eine lange Spalte mit allen Daten untereinander. Da die Daten aber mit einer gewissen Logik untereinander geschrieben werden, habe ich die Hoffnung per Marko oder per Formel, diese lange Spalte in mehrere Spalten aufteilen zu können, so dass ich am Ende eine Tabelle mit mehrer Spalten habe, in der pro Zahlungsvorgang eine Zeile "verbraucht" wird.
Die Spalte nach "Inhalte einfügen" sieht so aus (man beachte, dass pro Zahlungsvorgang die Anzahl für die Betreff Zeilen der Bank variieren kann - manchmal sind es nur 3, es können aber bis zu 10 sein).
In Klammern habe ich immer eine kurze Erklärung geschrieben.
14.03.2012 (Buchungstag)
KUNDE GMBH (nach dem Buchungstag kommt immer der Sender / Empfänger des Geldes)
BETREFF TEXT 1 (diverser Betreff Text - die Anzahl der Zeilen kann variieren)
BETREFF TEXT 2 (diverser Betreff Text - die Anzahl der Zeilen kann variieren)
BETREFF TEXT 3 (diverser Betreff Text - die Anzahl der Zeilen kann variieren)
14.03.2012 (Valutatag)
1.000,00+ (Betrag - der Eintrag endet IMMER mit dem Betrag = was danach kommt gehört in die nächste Zeile als neuer Zahlungsvorgang)
13.03.2012 (Buchungstag - Vorgang 2 - soll also in die nächste Zeile)
KUNDE2 GMBH
BETREFF TEXT 1 (diverser Betreff Text - die Anzahl der Zeilen kann variieren)
BETREFF TEXT 2 (diverser Betreff Text - die Anzahl der Zeilen kann variieren)
BETREFF TEXT 3 (diverser Betreff Text - die Anzahl der Zeilen kann variieren)
BETREFF TEXT 4 (diverser Betreff Text - die Anzahl der Zeilen kann variieren)
13.03.2012 (Valutatag)
595,00- (Betrag - der Eintrag endet IMMER mit dem Betrag = was danach kommt gehört in die nächste Zeile als neuer Zahlungsvorgang)
Hat da jemand von euch eine Idee?
Vielen Dank,
Nontacky
AW: Umsortieren von einer Spalte in mehrere Spalten
16.03.2012 23:26:16
einer
Hi,
vllt. so?
Sub multiTranformer()
    Dim sp, lz, ze As Long
    Dim sh As Worksheet
    Dim rng As Range
    Set sh = ThisWorkbook.Sheets("Tabelle1")
    With sh
        lz = .Cells(.Rows.Count, 1).End(xlUp).Row
        Set rng = .Range("A2:A" & lz)
        sp = 2: ze = 2
        For Each c In rng
            If IsNumeric(c) = False Then
                If IsDate(c) Then
                    .Cells(ze, sp).NumberFormat = "dd.mm.yyyy"
                End If
                .Cells(ze, sp) = c
                sp = sp + 1
            Else
                .Cells(ze, sp).NumberFormat = "0.00"
                .Cells(ze, sp) = c * 1
                ze = ze + 1
                sp = 2
            End If
        Next
    End With
End Sub
Code eingefügt mit http://vbahtml.origo.ethz.ch VBA in HTML 1.2
Ergebnis:
 ABCDEFGHI
214.03.201214.03.2012KUNDE GMBHBETREFF TEXT 1BETREFF TEXT 2BETREFF TEXT 314.03.20121000,00 
3KUNDE GMBH13.03.2012KUNDE2 GMBHBETREFF TEXT 1BETREFF TEXT 2BETREFF TEXT 3BETREFF TEXT 413.03.2012-595,00
4BETREFF TEXT 1        
5BETREFF TEXT 2        
6BETREFF TEXT 3        
714.03.2012        
81.000,00+        
913.03.2012        
10KUNDE2 GMBH        
11BETREFF TEXT 1        
12BETREFF TEXT 2        
13BETREFF TEXT 3        
14BETREFF TEXT 4        
1513.03.2012        
16595-        
17         

Jetzt kannst Du die Spalte A noch löschen, ich habe sie zur Kontrolle drin gelassen.
Gruß
Jochen
Anzeige
AW: Umsortieren von einer Spalte in mehrere Spalten
21.03.2012 10:00:28
einer
Hallo Jochen,
das funktioniert sehr gut. Jetzt habe ich natürlich eine Sache nicht genug präzisiert. Die Beträge sollen am Ende immer in der gleichen Spalte landen, so dass ich sie summieren kann. Im besten Fall direkt in die Spalte nach dem ersten Datum und danach der ganze Betreff Text, etc.
Kriegst Du das auch hin?
Vielen Dank
AW: Umsortieren von einer Spalte in mehrere Spalten
21.03.2012 10:07:45
einer
Hallo Jochen,
eine weitere Sache ist mir noch aufgefallen. In den Betreff Zeilen können manchmal auch Zahlen stehen, manche Kunden geben da Referenznummern an, ohne dass wir danach fragen. Sobald so eine Zahl im Betreff vorkommt, verruscht die automatische Aufteilung von Dir.
Kann man das lösen, oder ist das damit nicht mehr machbar?
Viele Grüße,
Nontacky
Anzeige
AW: Umsortieren von einer Spalte in mehrere Spalten
21.03.2012 17:57:33
einer
Hallo
ja natürlich läßt sich das lösen.
z.B. so:
Sub multiTranformer()
 Dim sp, lz, ze As Long
 Dim sh As Worksheet
 Dim rng As Range
 Set sh = ThisWorkbook.Sheets("Tabelle1")
 With sh
 lz = .Cells(.Rows.Count, 1).End(xlUp).Row
 Set rng = .Range("A2:A" & lz)
 sp = 4: ze = 2
 For Each c In rng
 If IsNumeric(c) = False Then
 If IsDate(c) Then
 .Cells(ze, sp).NumberFormat = "dd.mm.yyyy"
 End If
 .Cells(ze, sp) = c
 sp = sp + 1
 Else
 If Right(CStr(c), 1) = "+" Or Right(CStr(c), 1) = "-" Then
 .Cells(ze, 3).NumberFormat = "0.00"
 .Cells(ze, 3) = c * 1
 ze = ze + 1
 sp = 4
 Else
 .Cells(ze, sp).NumberFormat = "0.00"
 .Cells(ze, sp) = c * 1
 ze = ze + 1
 sp = 4
 End If
 End If
 Next
 End With
End Sub
[size=9]Code eingefügt mit [url=http://vbahtml.origo.ethz.ch]VBA in HTML 1.2[/url] ([url=http://vbahtml.origo.ethz.ch] Hilfe zum Programm)[/url][/size]
Aber dabei rutscht der gewünschte Wert in die Spalte 2 oder 3 (ich hab sie mal zur besseren Dartstellung in die Spalte drei gelegt. und der Rest wird dann in Spalte 4 ff abgelegt. Grund ist natürlich die Tatsache, dass es völlig unbekannt ist wieviele Spalten jeder "zerpfückte Datensatz" benötigt.
Gruß
Jochen
Anzeige
AW: Umsortieren von einer Spalte in mehrere Spalten
22.03.2012 11:27:22
einer
noch ein wenig mehr...
Sub multiTransform()
Dim sp, lz, ze As Long
Dim sh As Worksheet
Dim rng As Range
Set sh = ThisWorkbook.Sheets("Tabelle1")
With sh
lz = .Cells(.Rows.Count, 1).End(xlUp).Row
Set rng = .Range("A2:A" & lz)
sp = 3: ze = 2
For Each c In rng
If IsNumeric(c) = False Then
If IsDate(c) Then
.Cells(ze, sp).NumberFormat = "dd.mm.yyyy"
End If
.Cells(ze, sp) = c
sp = sp + 1
Else
If Right(CStr(c), 1) = "+" Or Right(CStr(c), 1) = "-" Then
.Cells(ze, 3).NumberFormat = "0.00"
.Cells(ze, 3) = c * 1
Else
.Cells(ze, sp).NumberFormat = "0.00"
.Cells(ze, sp) = c * 1
End If
ze = ze + 1
sp = 3
End If
Next
End With
sh.Range("C2:C65536").Copy _
Destination:=sh.Cells(2, sh.Range("C2").CurrentRegion.Columns.Count + 4)
sh.Columns(3).Delete
End Sub

Gruß
Jochen
Anzeige
AW: Umsortieren von einer Spalte in mehrere Spalten
21.03.2012 10:00:33
einer
Hallo Jochen,
das funktioniert sehr gut. Jetzt habe ich natürlich eine Sache nicht genug präzisiert. Die Beträge sollen am Ende immer in der gleichen Spalte landen, so dass ich sie summieren kann. Im besten Fall direkt in die Spalte nach dem ersten Datum und danach der ganze Betreff Text, etc.
Kriegst Du das auch hin?
Vielen Dank
AW: Umsortieren von einer Spalte in mehrere Spalten
21.03.2012 10:00:35
einer
Hallo Jochen,
das funktioniert sehr gut. Jetzt habe ich natürlich eine Sache nicht genug präzisiert. Die Beträge sollen am Ende immer in der gleichen Spalte landen, so dass ich sie summieren kann. Im besten Fall direkt in die Spalte nach dem ersten Datum und danach der ganze Betreff Text, etc.
Kriegst Du das auch hin?
Vielen Dank
Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige