VBA Excel Zellen anders anordnen

zitroooo
Goto Top
Hallo alle zusammen,

Ich bin dabei eine Excel Tabelle zu programmieren und benötige etwas Hilfe.
Ich habe folgendes Tabellenblatt (Sheet1) :

unbenannt


Spalte A bis K kommen aus einer Datenbankabfrage, jetzt müssen diese nurnoch durch ein Makro anders angeordnet werden.

So sollte es aussehen (Sheet2):

ergebniss

Ich habe bereits ein Makro, welches mir die Zeiten in 2 Spalten untereinander einfügt, jedoch besteht noch das Problem dass dort keine leerzeilen berücksichtigt werden und alles aus der Tabelle runter geschrieben wird. Außerdem bekomme ich keine Namenszuordnung hin, da in manchen Fällen der Vor- oder Nachname gleich sind, trotz anderer Nummer.
Der Name und das Datum müssen so oft runter kopiert werden wie Zeiten einer Person zugeordnet sind /2 (Da es in 2 Spalten aufgelistet werden soll).


mit folgendem Skript arbeite ich:

Sub ConsolidateIn2Columns()
Dim r As Range, pos As Integer, rowCurrent As Long, c As Integer, wsSource As Worksheet, wsDest As Worksheet
pos = 3
' source sheet
Set wsSource = Sheets("Sheet1")
' destination sheet
Set wsDest = Sheets("Sheet2")
' get next free row in sheet 2
rowCurrent = wsDest.Cells(Rows.Count, "A").End(xlUp).Row
With wsSource
' for each row in sheets 1
For Each r In .Range("A2:A" & .Cells(Rows.Count, "A").End(xlUp).Row)
' for 1 to last non empty column in row
For c = 1 To .Cells(r.Row, Columns.Count).End(xlToLeft).Column
' if cell is non empty
If .Cells(r.Row, c).Value <> "" Then
' copy value to destination sheet
.Cells(r.Row, c).Copy Destination:=wsDest.Cells(rowCurrent, pos)
' set column for next value
pos = IIf(pos = 3, 4, 3)
' increment row counter
If pos = 3 Then rowCurrent = rowCurrent + 1
End If
Next
Next
End With
End Sub

Content-Key: 3082037984

Url: https://administrator.de/contentid/3082037984

Ausgedruckt am: 11.08.2022 um 19:08 Uhr

Mitglied: colinardo
Lösung colinardo 15.06.2022 aktualisiert um 16:52:45 Uhr
Goto Top
Servus,
mal auf die schnell auf dem "Tatschphone" zusammengetippelt (Die Bahn hat, wer ahnt es, natürlich Verspätung, Gott sei Dank bin ich dann irgendwann heute noch in Frankreich, da fluppt es dann wieder zu 100% 🤞):
Grüße Uwe
Mitglied: zitroooo
zitroooo 15.06.2022 um 17:06:28 Uhr
Goto Top
Schon eine sehr große Hilfe, leider verrutschen die Zeiten und das Datum an manchen stellen.

Gute Reise &
Danke für den Beitrag!
Mitglied: colinardo
colinardo 15.06.2022 aktualisiert um 17:28:33 Uhr
Goto Top
Zitat von @zitroooo:
Schon eine sehr große Hilfe, leider verrutschen die Zeiten und das Datum an manchen stellen.
Was heißt das konkret? Das Ergebnis mit deinen Daten sieht hier im Test danach exakt so aus wie dein SOLL-Screenshot.
Ich gehe davon aus das die Tabelle natürlich schon korrekt vorsortiert ist.

screenshot

Kannst dich ja auch mal selbst mit dem Code beschäftigen.

Gute Reise &
Merci face-smile.
Danke für den Beitrag!
Immer gerne, wenn ich helfen kann.
Mitglied: MirkoKR
MirkoKR 15.06.2022 um 18:39:42 Uhr
Goto Top
Wenn das aus einer Datenbankabfrage kommt, warum nicht direkt die SQL-Abfrage entsprechend aufgebaut, das dein gewünschtes Ergebnis ohne weiteres Makro geliefert wird?

.