Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
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

Definierten Zellbereich mit VBA transponieren

Definierten Zellbereich mit VBA transponieren
19.05.2016 19:33:02
Thomas
Hallo Zusammen,
ich möchte die Werte einer Liste in eine Spalte auf einem anderen Tabellebblatt transponieren. Dabei stehen Quell und Zielrange fest. Ich habe es so versucht, aber laufe immer auf einen Laufzeitfehler (1004).
Wo ist denn mein Denkfehler?
Viele Grüße,
Thomas
Private Sub Worksheet_Activate()
Dim i As Integer
Dim q As Integer
Dim quelle As Range
Dim ziel As Range
Set quelle = Worksheets("Schülerliste").Range(Cells(q, 5), Cells(q, 5))
Set ziel = Worksheets("Fehltagedatenbank_entsch").Range(Cells(3, i), Cells(3, i))
For i = 1 To 31
q = 7
ziel = quelle.Value
q = q + 1
Next
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Definierten Zellbereich mit VBA transponieren
19.05.2016 19:40:11
Hajo_Zi
warum nicht einfach kopieren, Inhalte einfügen, transponieren?
Das kann man auch mit dem Makrorecorder aufzeichnen.

AW: Definierten Zellbereich mit VBA transponieren
19.05.2016 19:43:39
Thomas
Hallo Hajo,
der Makrorekorder macht dan wieder ganz viele selects und activates und ich möchte versuchen den Code so schlank und simpel zu halten wie möglich.
Viele Grüße,
Thomas

AW: Definierten Zellbereich mit VBA transponieren
19.05.2016 19:45:44
Hajo_Zi
entferne das select usw. Du siehst ja den Code. Ich sehe ihn nicht.
Gruß Hajo

AW: Definierten Zellbereich mit VBA transponieren
19.05.2016 20:03:27
Thomas
Hallo Hajo,
du hast Recht, so gings:
Dim quelle As Range
Set quelle = Sheets("Schülerliste").Range("E7:E37")
quelle.Copy
Sheets("Fehltagedatenbank_entsch").Range("A3").PasteSpecial Paste:=xlPasteValues,  _
Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Danke für die Denkhilfe. Mich würde jetzt trotzdem interessieren, warum in meinem Ursprungscode bei der Zeile
Set quelle = Worksheets("Schülerliste").Range(Cells(q, 5), Cells(q, 5))

der Laufzeitfehler kam. Denn meiner Meinung nach hätte mein code auch so funktionieren müssen, bis auf dass das q = 7 an der falschen Stelle stand...
Hast du da eine Idee?
Viele Grüße,
Thomas

Anzeige
AW: Definierten Zellbereich mit VBA transponieren
19.05.2016 20:06:24
Hajo_Zi
Hallo Thomas,
Range bezieht sich auf Worksheets("Schülerliste") cells auf die aktuelle, Die nicht die gleichen sein müssen.
Gruß Hajo

AW: Definierten Zellbereich mit VBA transponieren
19.05.2016 20:20:06
Werner
Hallo Thomas,
kürzer:
Sheets("Schülerliste").Range("E7:E37").Copy
Sheets("Fehltagedatenbank_entsch").Range("A3").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Wie Hajo schon schrieb, wenn du eine Range in dieser Schreibweise definierst dann muss für eine korrekte Referenzierung das entsprechende Tabellenblatt vor dem Range und vor den beiden Cells mit angegeben werden.
Zudem hattest du mit deinen Variablen q bzw. i Zeilen bzw. Spaltenwerte angegeben, die Variablen waren zu diesem Zeitpunkt aber noch nicht belegt. Und die Zeile 0 bzw. die Spalte 0 gibt es nicht.
Gruß Werner

Anzeige
AW: Definierten Zellbereich mit VBA transponieren
19.05.2016 20:34:28
Thomas
Hallo Werner,
das mit den beiden Variablen verstehe ich, das mit dem Tabellenblatt gerade nicht. Ist durch
Set quelle = Sheets("Schülerliste").Range(Cells(q, 5), Cells(q, 5))
nicht die Range im Tabellenblatt Schülerliste definiert?
VG
Thomas

AW: Definierten Zellbereich mit VBA transponieren
19.05.2016 20:42:25
Werner
Hallo Thomas,
nein, eben nicht. Das Blatt muss vor die Range und vor beide Cells. Da das aber ein bißchen umständlich ist kann man sich mit einer With - End With Verschachtelung behelfen.
With("Tabelle1")
.Range(.Cells(1, 1), .Cells(4, 1))
End With
Dabei ist dann wichtig, dass sowohl vor dem Range als auch vor beiden Cells ein Punkt ist. Die Punkte setzen dabei den Bezug zum Tabellenblatt das bei With angegeben wurde.
Gruß Werner

Anzeige
AW: Definierten Zellbereich mit VBA transponieren
19.05.2016 20:50:15
Thomas
Danke Werner, jetzt habe ich es endlich auch gerafft :)

AW: Gerne und danke für die Rückmeldung. o.w.T.
19.05.2016 20:58:09
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige