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

Daten vertikal zu horizontal

Daten vertikal zu horizontal
28.09.2007 11:01:00
Michael
Hallo!
Ich möchte gerne ein Problem aus dem letzten Jahr nochmal aufgreifen.
Ich wollte Datensätze in der Form von:
AAA0001
ABA0001
ACA0001
BAA0001
AXA0002
BYA0002
AAA0003
AGA0003
zu:
AAA0001 ABA0001 ACA0001
BAA0001
AXA0002
BYA0002
AAA0003 AGA0003
umsortieren.
Mit Hilfe dieses Makros hat das auch problemlos funktionert:

Option Explicit
Sub Umsort()
Dim zz As Long, ss As Integer
Dim strC As String, strB As String, strN As String
zz = 1 ' 0, wenn es keine Überschriftzeile gibt
While Not IsEmpty(Cells(zz + 1, 1))
strC = Cells(zz + 1, 1)
If Left(strC, 1) = strB And Right(strC, 4) = strN Then
ss = ss + 1
If ss > 256 Then
MsgBox "Spaltenzahl überschritten"
Exit Sub
End If
Cells(zz, ss) = Cells(zz + 1, 1)
Rows(zz + 1).Delete
Else
strB = Left(strC, 1)
strN = Right(strC, 4)
ss = 1
zz = zz + 1
End If
Wend
End Sub


Nun möchte ich jedoch auch das (in diesem Fall) dritte Zeichen berücksichtigen.
Was muß ich am Makro ändern, damit ich Daten in der Form von:
AAA0001
ABA0001
ACB0001
ADB0001
BAA0001
AXA0002
BYA0002
AAA0003
AGA0003
in diese bringe?
AAA0001 ABA0001
ACB0001 ADB0001
BAA0001
AXA0002
BYA0002
AAA0003 AGA0003
Schonmal vielen Dank für eure Mühe!
Michael

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten vertikal zu horizontal
28.09.2007 11:29:59
Erich
Hallo Michael,
damit sollte es gehen:

Option Explicit
Sub Umsort2()
Dim zz As Long, ss As Integer
Dim strC As String, strB As String, strN As String
zz = 1 ' 0, wenn es keine Überschriftzeile gibt
While Not IsEmpty(Cells(zz + 1, 1))
strC = Cells(zz + 1, 1)
If Left(strC, 1) & Right(Left(strC, 3), 1) = strB And Right(strC, 4) = strN Then
ss = ss + 1
If ss > 256 Then
MsgBox "Spaltenzahl überschritten"
Exit Sub
End If
Cells(zz, ss) = Cells(zz + 1, 1)
Rows(zz + 1).Delete
Else
strB = Left(strC, 1) & Right(Left(strC, 3), 1)
strN = Right(strC, 4)
ss = 1
zz = zz + 1
End If
Wend
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige

52 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige