VBA: Spalten untereinander kopieren

Hallo,

habe mich gerade an VBA versucht und bin kläglich gescheitert…
Es geht um das Verschieben von Spalten in Excel 2007.

Meine Tabelle sieht folgendermaßen aus:

1-2-3-4
A-B-C-D
E-F-G-H
I-J-K-L

das Ergebnis, dass ich gerne hätte, wäre so:

A-1
E-1
I-1
B-2
F-2
J-2
und das gleiche für 3 und 4 nochmal

was ich bis jetzt hinbekommen habe ist:

Sub DEA()

’ DEA Makro

Dim x As Integer
Dim i As Integer

x = 1
For i = 1 To 4


Range(„C2“).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Selection.End(xlDown).Select
Range(„C8“).Select
ActiveSheet.Paste

x = x + 1

Next i

End Sub

Damit könnte ich jetzt eine Spalte beliebig oft untereinander schreiben, aber wie bekomme ich das jetzt hin, dass ich „durch die Spalten“ laufe.
Ein ungelöstes Problem ist auch noch, wie ich die Überschrift (im Beispiel die Zahlen) neben die entsprechenden Zellen bekomme.

Bin für jeden Hinweis dankbar
Anja

1-2-3-4
A-B-C-D
E-F-G-H
I-J-K-L

A-1
E-1
I-1
B-2
F-2
J-2

Hallo Anja,

benutze im Beitrag bei Codes oder kl. Tabellen den pre-Tag, der wird unter dem Beitragseingabefenster erläutert.

Sub DEA()
Dim Zei1 As Long, Zei2 As Long, Spa1 As Long, wks1 As Worksheet, wks2 As Worksheet
Set wks1 = Worksheets("Tabelle1")
Set wks2 = Worksheets("Tabelle2")
With wks1
 For Spa1 = 1 To 4
 For Zei1 = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
 Zei2 = Zei2 + 1
 wks2.Cells(Zei2, 1).Value = .Cells(Zei1, Spa1).Value
 wks2.Cells(Zei2, 2).Value = .Cells(1, Spa1).Value
 Next Zei1
 Next Spa1
End With
End Sub

Gruß
Reinhard

Hallo Reinhard,

zunächst mal vielen Dank für deine Mühe.

wenn ich deinen Code benutze bekomme ich die Fehlermeldung: Laufzeitfehler 9: Index außerhalb des gültigen Bereichs.

Wo könnte der Fehler liegen?

Danke und Gruß
Anja

wenn ich deinen Code benutze bekomme ich die Fehlermeldung:
Laufzeitfehler 9: Index außerhalb des gültigen Bereichs.

Wo könnte der Fehler liegen?

Hallo Anja,

Code ist getestet, Excel2000.
In welcher Zeile kommt der Fehler?

Existieren in der geöffnetetn Mappe beide Blätter mit EXAKT diesen Namen?

Ansonsten bitte immer komplett Fehlernummer, Fehlertext und Fehlerzeile nennen. Ich weiß, zwei davon hast du erledigt *lob*
Ich brauche aber 3/3 :smile:)

Gruß
Reinhard

Hat sich erledigt! Läuft! Danke! OWT

Wie gesagt…
Hallo Reinhard,

also, wie gesagt, es hat sich erledigt.

Mir hat die Tabelle 2 gefehlt.

Nochmal Danke

also, wie gesagt, es hat sich erledigt.
Mir hat die Tabelle 2 gefehlt.

hallo Anja,

sei bei Vba immer wachsam mit den Leerzeichen,
Tabelle2
Tabelle 2
ist für Vba etwas völlig anderes.

In gewisser Weise sehr leider bietet MS ja heutzutage an die meisten Namen 256 Zeichen lang zu machen und mit Leerzeichen dadrin.
Ich bin quasi mit der 8.3 Regel aufgewachsen, also bei Dateien 8 Zeichen ohne Leerzeichen u.a. Sonderzeichen für den namen und max. 3 für die Endung.

Ich sehe das sehr kritisch wie da heutzutage ellenlange namen erzeugt werden.
Klappt, leider, in den meisten Fällen auch. Aber irgednwann nicht.

Dann haben die Anwender ein Problem, versuchen selbst es zu lösen, kann Stunden Tage dauern, dann landen sie hier und jammern da klappt was nicht. Und wenn sie dann in der Anfrage verschweigen daß es um lange Dateinamen mit Leerzeichen geht oder Blattnamen oder sonstwas,
kann es lange Beitrgasfolgen geben bis die Antworter erkennen um was es geht um mal nach den genauen namen fragen.

Ist jetzt in keiner Weise ein Vorwurf an heutige Neuanwender.
Die können ja gar nicht wissen daß leerzeichen probleme machen KÖNNTEN, woher auch.

Schuld daran ist m.E. wie fast immer Bill Gates.
Vin mir aus hätten sie 8.3 auf 100.5 erweitern können, aber niemals zulassen daß man da Leerzeichen oder sonstigen Sondermüll als Zeichen einfügen darf.

In Excelmappen die ich geschrieben habe wirst du bei Namen nie ein Leerzeichen sehen.
Als Ersatz für ein leerzeichen kann man ja den Unterstrich nehmen, der gefällt mir aber optisch nicht so.
Anstatt
Summe_bei_Klick
nehme ich lieber
SummeBeiKlick

Mir reicht der Großbuchstebe um auf einen Blick zu erkennen, aha, dreiteiliger Name.

Wie auch immer, du kannst ja machen was du willst, ich kann dir nur empfehlen, laß Leerzeichen in Namen weg, bringt ggfs. nur Ärcher.

Und, es gab zwar bei mir noch nie Probleme deshalb (naja, ich machs ja nicht *gg*), aber Vorsicht ist die Mutter der Porzellankiste, in Namen für Makros nehme ich nie äöü, ich schreibs immer aus.

Ich schreibe ja nicht international, aber ob Vba mit äöü in engl. oder franz. Vba klarkommt weiß ich gar nicht.

@Rainer, nicht so wichtig, Interesse ist wie immer vorhanden aber nicht so daß ich es unbedingt wissen muß. Aber weißt du zufällig ob’s in VB Probleme gibt mit äöü im Namen einer Sub?

Gruß
Reinhard