PDA

Vollständige Version anzeigen : Daten transponiert einfügen


Frozen_Heaven
28.09.2016, 09:46
Liebe Leute,

ich möchte Daten von einem Tabellenblatt in ein anderes Tabellenblatt transponiert einfügen. Hier der Code den ich dazu geschrieben habe:


Dim WB As Workbook
Dim tabGeneris As Worksheet
Dim tabVal As Worksheet
Dim lastColumn As Integer

Set WB = ThisWorkbook
Set tabGen = WB.Worksheets("Tabelle1")
Set tabVal = WB.Worksheets("Validierung")

lastColumn = tabGen.UsedRange.Columns.Count

tabGen.Range(Cells(2, 2), Cells(2, lastColumn)).Copy
tabVal.Range("B4").PasteSpecial Paste:=xlPasteValues, Transpose:=True


Bei der Ausführung bekomme ich immer einen Laufzeitfehler 1004 (Anwendungs-oder objektdefinierter Fehler). Beim Debuggen wird immer die Zeile in der kopiert wird markiert.

Hat von euch jemand eine Idee woran das liegen könnte?

Danke!

Schöne Grüße
Frank

mathieu_91
28.09.2016, 09:48
Hi,

versuche es mal so:

tabGen.Range(Cells(2, 2).address & ":" & Cells(2, lastColumn).address).Copy

Grüße

Mathieu

Frozen_Heaven
28.09.2016, 09:52
Hallo Mathieu,

vielen Dank! So scheint es zu funktionieren.
Wobei mir der Grund noch nicht ganz klar ist.
Sollte nicht mein Code eigentlich auch funktionieren?

Schöne Grüße
Frank

mathieu_91
28.09.2016, 10:03
Hallo,

eigentlich ja, da ein Range ebenfalls so dargestellt werden kann, wie du es gezeigt hast.
Problem ist jedoch, dass es bei manchen Funktionen nicht läuft, zB. bei .Copy aber auch bei .Sort.

Ich denke aber dass User mit deutlich mehr Erfahrung dazu fundiertes Wissen beitragen können.^^

Grüße

Mathieu

Frozen_Heaven
28.09.2016, 10:23
Vielen Dank für die Erklärung! :-)

Scorefun
28.09.2016, 10:30
Frank's Code funktioniert bei mir problemlos, wenn tabGen auch deklariert wird

Bei Dir steht fälschlicherweise:
Dim tabGeneris As Worksheet
Set tabGen = WB.Worksheets("Tabelle1")



Von daher: Option Explicit am Modulanfang nicht vergessen