3.1k Aufrufe
Gefragt in Tabellenkalkulation von user61 Einsteiger_in (15 Punkte)
Wer kann mir helfen:
ich habe in Excel "Arbeitsblatt Parameter" viele Spalten, zum Teil verborgen, nun möchte ich eine Zeile auswählen und diese in eine separate Tabelle "Einzelblatt" senkrecht in 2 unterschiedliche Spalten mit vba einfügen.
Ich hoffe ich habe mich verständlich ausgedrückt und jemand kann mir helfen.

Danke

6 Antworten

0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Guten Morgen Manfred!

Um ehrlich zu sein kann ich Dir nicht 100%ig folgen.
In der Überschrift Deiner Frage schreibst Du etwas von einem neuen Blatt erstellen. Diesbezüglich kann ich nichts in der Fragestellung finden.

Wie möchtest Du die gewünschte Zeile auswählen?
Aus einer Zeile sollen im Zielblatt zwei Spalten werden? Gibt es eine Logik wie die Zeile "aufgespaltet" werden soll?

Ich bin kein VBA-Profi aber mein Vorschlag lautet wie folgt:
Sub Test()
Application.ScreenUpdating = False
Sheets("Arbeitsblatt Parameter").Rows("10:10").Copy ' Kopie der Zeile 10
Sheets("Einzelblatt").Columns("C:C").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True 'Übertrag in die Spalte C
Application.CutCopyMode = False
End Sub

Schönen Sonntag!

Tom
0 Punkte
Beantwortet von user61 Einsteiger_in (15 Punkte)
Hallo Tom,
es ist schön so schnell eine Antwort erhalten zu haben. Sorry wenn ich das Problem nicht richtig beschrieben habe. Es ist richtig im Arbeitsblatt " Parameter" möchte ich eine Zeile mit der Maus auswählen, mit Alt/F8 das Makro starten.Die Spaltenanzahl können sich in den Monaten noch ändern. Mittlerweile bin ich schon etwas weiter, das Problem ist noch im neue Arbeitsblatt " Einzelblatt" sind es noch zu viele Zeilen in einer Spalte um es auf Din A4 ausdrucken zu können.
So funktioniert es schon fast.

Sub Einzelblatt()

Selection.SpecialCells(xlCellTypeVisible).Copy

Sheets("Einzelblatt").Select
Range("C1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, _
Transpose:=True
Range("C1").Select

End Sub

Hoffe jetzt ist es klarer.

Manfred
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Manfred,
du solltest wenn möglich auf Select verzichten.

Sub Einzelblatt()
Selection.SpecialCells(xlCellTypeVisible).Copy Sheets("Einzelblatt").Cells(1)
End Sub

So klar ist mir deine Beschreibung nicht:
senkrecht in 2 unterschiedliche Spalten


Gruß
fedjo
0 Punkte
Beantwortet von user61 Einsteiger_in (15 Punkte)
Hallo Fedjo,

senkrecht im Arbeitsblatt"Einzelblatt" von z.B. C2 bis C50 und weitergehend von E2 bis E25.

Ich hoffe jetzt ist es verständlicher

Gruß

Manfred.
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Manfred,
ich dir mal eine Musterdatei erstellt.

Zeilenbereich auswählen
Makro starten
Zelle angeben
Ok oder Enter

Sub Einzelblatt()
Application.ScreenUpdating = False
Selection.SpecialCells(xlCellTypeVisible).Copy
S = InputBox("z.B E5", "Spalten eingeben", "A1")
If S = "" Then Exit Sub
Sheets("Einzelblatt").Range(S).PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _
, Transpose:=True
End Sub

Gruß
fedjo
0 Punkte
Beantwortet von user61 Einsteiger_in (15 Punkte)
Hallo Fedjo,
danke als erstes für deine Mühe, habe mir auch dein Mappe angeschaut und getestet. Soweit alles o.K. aber soweit war ich schon mit:
Sub Einzelblatt()

Selection.SpecialCells(xlCellTypeVisible).Copy

Sheets("Einzelblatt").Select
Range("C1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, _
Transpose:=True
Range("C1").Select

End Sub

siehe Antwort zwei.
Mein Problem ist noch das ich momentan ca. 110 Spalten habe und diese im Einzelblatt auf 2 Spalten untereinander haben möchte.
Also Spalte A-DC horizontal im der Ursprungsmappe in eine neue Mappe "Einzelblatt" senkrecht in 2 Spalten C1-C50 und E1-E50.


Gruß

Manfred
...