Zeilen ins spalten mit VBA

Bild

Betrifft: Zeilen ins spalten mit VBA
von: Kisselstein
Geschrieben am: 29.06.2015 21:32:52

Hallo Zusammen und Guten Abend,
Ich versuch grad etwas VBA anzuwenden, aber leider scheitere ich, vielleicht habt ihr einen kleinen Tipp für mich:
Ich habe eine Tabelle in Zeilen
.............Spalte1.Sp2,SP3,SP4,SP5, SP6, SP7
Zeile 1:.....Namen1,..A,..B,..C,..D,...E,...F
Zeile 2:.....Namen2,..A,..B,. C,..D,...E,...F
Ich würde es aber gerne umbauen in
Name1 A, B
Name1 C, D
Name1 E, F
Name 2 A, B
Etc.
Ich schaffe leider mit meinem Code nur bis A,B


Sub test()
Dim myLastRow As Long
Dim myFirstFreeRow As Long
Dim myRow As Long
Dim myMaximum As Long
Dim myCount As Long
With Sheets("Table")
     ' letzte gefüllte Zeile in Table Spalte I ermitteln
     myLastRow = .Cells(Rows.Count, 9).End(xlUp).Row
         
         ' Schleife für alle Einträge in Table Spalte I
         For myRow = 16 To myLastRow
             
             ' Anzahl Durchläufe
             myMaximum = 2
                 
                     
                     ' Schleife für die Anzahl
                     For myCount = 1 To myMaximum
                         
                         ' erst noch die erste freie Zeile in Tabelle1 Spalte B ermitteln
                         With Sheets("Tabelle1")
                             myFirstFreeRow = .Cells(Rows.Count, 2).End(xlUp).Row + 1
                         End With
                         
                         For i = 1 To 2
                         ' Wert von Table Spalte E nach Tabelle2 Spalte E übertragen
                         Sheets("Tabelle1").Cells(myFirstFreeRow, 2).Value = .Cells(myRow, 9).   _
 _
 _
_
_
Value
                         Sheets("Tabelle1").Cells(myFirstFreeRow, 2 + i).Value = .Cells(myRow,   _
 _
 _
 _
_
9 + i).Value
                        
                         
                         Next i
                         
                     Next myCount
                 
                 
         
         Next myRow
End With
End Sub

Güsse Kisselstein

Bild

Betrifft: AW: Zeilen ins spalten mit VBA
von: Kisselstein
Geschrieben am: 29.06.2015 21:35:32
hier noch ein Beispiel glaube das ist besser :-)
https://www.herber.de/bbs/user/98550.xlsx

Bild

Betrifft: AW: Zeilen ins spalten mit VBA
von: Kisselstein
Geschrieben am: 29.06.2015 23:49:10


Bild

Betrifft: AW: Zeilen ins spalten mit VBA
von: MCO
Geschrieben am: 30.06.2015 08:04:50
Guten Morgen!
Hiermit sollte es klappen:

Sub test()
Dim myLastRow As Long
Dim myFirstFreeRow As Long
Dim myRow As Range
Dim sh_tab As Worksheet
Set sh_tab = Sheets("Tabelle1")
With Sheets("Table")
     'letzte gefüllte Zeile in Table Spalte I ermitteln
     myLastRow = .Cells(Rows.Count, 9).End(xlUp).Row
    ' Schleife für alle zusammenhängenden Einträge in Table Spalte I
    For Each myRow In .Range("I16").CurrentRegion.Rows
    
        'erst noch die erste freie Zeile in Tabelle1 Spalte B ermitteln
        myFirstFreeRow = sh_tab.Cells(Rows.Count, 2).End(xlUp).Row + 1
        'Namen eintragen
        .Range("I" & myRow.Row).Copy sh_tab.Range(sh_tab.Cells(myFirstFreeRow, 1), sh_tab.Cells( _
myFirstFreeRow + 2, 1))
        '3x 2 Spalten kopieren
        .Range("J" & myRow.Row & ":K" & myRow.Row).Copy sh_tab.Cells(myFirstFreeRow, 2)
        .Range("L" & myRow.Row & ":M" & myRow.Row).Copy sh_tab.Cells(myFirstFreeRow + 1, 2)
        .Range("N" & myRow.Row & ":O" & myRow.Row).Copy sh_tab.Cells(myFirstFreeRow + 2, 2)
        
    Next
End With
End Sub

Gruß, MCO

Bild

Betrifft: AW: Zeilen ins spalten mit VBA
von: Kisselstein
Geschrieben am: 30.06.2015 12:03:47
Hallo MCO,
vielen Dank, das klappt schon ganz gut :-)
Eine Frage noch jetzt wird auch die Spalten Über der I16 kopiert, also übertragen in Tabelle 1 wie kann ich das ausschließen. also nur Werte ab der I16 und darunter.
Gruß Kisselstein

Bild

Betrifft: Zeilen begrenzen / Auswählen
von: MCO
Geschrieben am: 30.06.2015 14:33:48
Hi!
Das machst du mit der Zeile

.Range("I16").CurrentRegion.rows 

Die nimmt alle Zeilen die mit "i16" zusammenhängen. Wenn du lieber einen speziellen Bereich _ nehmen möchtest, ändere es in z.B.

.Range("I16:I55").rows
Gruß, MCO

Bild

Betrifft: AW: Zeilen begrenzen / Auswählen
von: Kisselstein
Geschrieben am: 02.07.2015 16:34:27
Hi MCO,
sorry für die späte Antwort, bin erst gerade wieder dazugekommen:
Also das klappt Danke!
Mir ist noch eins aufgefallen: beim ersten Durchlauf werden die drei Namen richtig kopiert. Beim zweiten Durchlauf wird der letzte Name und die Werte also die dritte spalte mit dem nächsten Namen etc. überschrieben.
Gruß und eine Kühlen Abend Kisselstein

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zeilen ins spalten mit VBA"