Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1096to1100
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

Datensätze mittels VBA transponieren und...

Datensätze mittels VBA transponieren und...
cornelius
leere Zellen übernehmen
Hallo,
ich habe folgendes Problem:
Ich habe eine Excel Datei mit einer größeren Anzahl an Datensätzen (welche händisch in die datei reingepasted wurden) aufgeteilt in 2 Spalten:
Grober Aufbau:
Spalte A/ Spalte B
Vorname:/ Max
Nachname:/ Mustermann
Alter:/53
Info:/True
etc./#
etc./*
etc./?
[2-4 leere Spalten bis nächster Datensatz]
Vorname:/ Otto
Nachname:/ Mayer
Alter:/ 20.01.1965
Info:/False
etc./#
etc./*
etc/?
[2-4 leere Spalten bis nächster Datensatz]
und so weiter....
Diese möchte ich in Spalten transponieren - so dass nur noch einmalig Vorname, Nachname, Alter, etc steht, und darunter die jeweiligen "Werte".
Also:
Vorname/ Nachname/ Alter/ Info/ etc./etc. /etc
Max/ Mustermann/ 53/ True/ #/ */ ?
Otto/ Mayer/.../.../.../.../
...../..../.../.../.../
Über den VBA Code (dankend erhalten):
----

Sub Transe()
Dim rng As Range
Dim rngArea As Range
Dim i As Long
On Error GoTo ENDE
Set rng = Range("B:B").ColumnDifferences(Cells(Rows.Count, 2))
For i = 1 To rng.Areas.Count
Set rngArea = rng.Areas(i).Offset(, -1)
Range("E1").Resize(, rngArea.Rows.Count) = _
WorksheetFunction.Transpose(rngArea)
Set rngArea = rng.Areas(i)
Range("E" & Rows.Count).End(xlUp).Offset(1).Resize(, rngArea.Rows.Count) = _
WorksheetFunction.Transpose(rngArea)
Next
ENDE:
If Err Then _
MsgBox Err.Description, , "Fehler: " & Err
End Sub

----
klappt das schon ganz gut...JEDOCH...ab und zu sind die Datensätze unvollständig:
d.h. Nachname, Vorname oder Alter etc fehlen -> folglich verschieben sich die Daten.
Beispiel: Wenn Vorname fehlt, wird einfach der Nachname in die Spalte übernommen, wo eigentlich der Vorname hingehört...
Gibt es eine möglichkeit den Code so zu ändern, dass leere Zellen innerhalb der abgefragten Range auch übernommen werden?

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Datensätze mittels VBA transponieren und...
02.09.2009 09:14:56
Martin
Hallo Cornelius,
probiere es mal so:
Sub Transe()
Dim DatenArr
DatenArr = Application.Transpose(Range("A1:B256").Value)
Cells(1, 1).Resize(UBound(DatenArr, 1), UBound(DatenArr, 2)) = DatenArr
End Sub
Viele Grüße
Martin
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige