Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Werte kopieren und in Tab2 einfügen (transponieren)

Forumthread: Werte kopieren und in Tab2 einfügen (transponieren)

Werte kopieren und in Tab2 einfügen (transponieren)
06.02.2026 10:27:36
Wolfgang
Hallo liebe Excelfreunde,
leider komme ich mit meinem Problem nicht so weiter und der VBA-Recorder hilft auch nicht so.
In der Bespieldatei werden in der Tabelle1 mittels Eingabe immer eine neue Zeile mit den Werten eingefügt. Das ist auch OK. Nun wollte ich eben die neuesten = letzte beschrieben Zellen und deren Werte in die Tabelle 2 an die entsprechende Zellen transponieren; Spalte B und C ab Zeile 5.
Mit dem VBA-Recorder habe ich zwar ein Makro, dass beim erstenmal funktionierte, aber wenn ich nun eine neue Zeile mit Werte erstelle und dann das Makro starte, kommt leider kein passendes Ergebnis an.
Es soll doch die entsprechende Artikelnummer der Tabelle1 aus den Spalten M - AD nach Tabelle2 Spalte B Zeile 6 transponiert werden und dann die Summen der entsprechenden Spalten nach Tabelle 2 Spalte C Zeile 6

Hoffe man versteht es ;-)

Vielleicht kann jemand helfen. Hier die Beispieldatei: https://www.herber.de/bbs/user/180170.xlsb

Wolfgang
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte kopieren und in Tab2 einfügen (transponieren)
06.02.2026 11:00:51
daniel
Hi
kleiner Tip, wenn du mit dem Recorder arbeitest:
der Code, den der Recorder aufzeichnet, zeichnet auch viel unnötiges (z.B. deine Scrollbewegungen im Tabellenblatt) und umständlich auf.
dh aufgezeichneter Code sollte immer erstmal überarbeitet werden, dann wird er kürzer und übersichtlicher, und man sieht ggf schneller, wo man noch was ändern kann.

hierbei gelten zwei einfache Regeln:
1. alle Scrollbewegungen im Fenster löschen (ActiveWindow.LargeScroll = ).
das brauchst du als Anwender, um an die richtige Stelle im Blatt zu kommen, ein Makro braucht das nicht, das kann auch Zellen bearbeiten, die außerhalb des sichtbaren Bereichs liegen.

2. alle .Select und .Selection zusammenfassen.
aus
Range(...).Select

Selection.Copy

wird
Range(...).Select

der Recorder zeichnet so auf, weil wir zuerst den Zellbereich auswählen und dann den Befehl dazu anklicken und diesen auf die Auswahl (Selection) anwenden.
in VBA benötigt man das nicht, hier kann man den Befehl direkt an den Zellbereich anhängen, ohne in vorher zu selektieren.

3. sollte man alles übrerflüssige löschen.
dh wenn du erst die Zellen A1, C1, D1 selektierst und dann direkt danach A1, C1;' D1, F1, ist der erste Schritt unnötig.

4. wenn man mit mehreren Tabellenblättern arbeitet, solllte man vor Range und Cells immer das Tabellenblatt angeben, dann läuft das Makro, egal welches Blatt gerade aktiv ist und man muss die Blätter nicht wechseln.

dein makro sieht dann so aus:
Sub Copy_Artikel_Summe()


' Copy_Artikel Makro

Sheets("Tabelle1").Range("N10,P10,R10,T10,V10,X10,Z10,AB10,AD10").Copy
Sheets("Tabelle2").Range("B6").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=alse, Transpose:=True
Sheets("Tabelle1").Range("M10,O10,Q10,S10,U10,W10,Y10,AA10,AC10").Copy
Sheets("Tabelle2").Range("C6").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Sheets("Tabelle2").Columns("C:C").EntireColumn.AutoFit

End Sub

so solltest du alle deine Aufzeichnungen überarbeiten
da lässt sich dann auch einfacher die Anpassung einarbeiten.


ich würde her von der untersten Zeile nach oben springen bis zur letzen befüllten Zeile (Ende + Pfeil hoch) dann bist du in der letzten Zeile
hier kann man dann die Schittmenge aus dieser Zeile mit den Spalten bilden und diese kopieren

damit die Programmzeilen nicht so lang werden, packe ich die Zellbereiche mit den Spalten in Variablen:

dim rngKo as range

dim rngAN as range
dim rngLetzteZeile as Range
set rngKosten = Sheets("Tabelle1").Range("M:M,O:O,Q:Q,S:S,U:U,W:W,Y:Y,AA:AA,AC:AC")
set rngArtNr = Sheets("Tabelle1").Range("N:N,P:P:R:R,S:S,V:V,X:X,Z:Z,AB:AB,AD:AD")
set rngLetzteZeile = Sheets("Tabelle1").Cells(Rows.count, "N").End(xlup).EntireRow

Intersect(rngLetzteZeile, rngArtNr).Copy
Sheets("Tabelle2").Range("B6").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=alse, Transpose:=True
Intersect(rngLetzteZeile, rngKosten).Copy
Sheets("Tabelle2").Range("C6").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=alse, Transpose:=True


Gruß Daniel
Anzeige
AW: Werte kopieren und in Tab2 einfügen (transponieren)
06.02.2026 15:42:01
GerdL
Moin Wolfgang!
Sub Unit()


With Intersect(Tabelle1.Range("M:M,O:O,Q:Q,S:S,U:U,W:W,Y:Y,AA:AA,AC:AC"), _
Tabelle1.Cells(Tabelle1.Rows.Count, "N").End(xlUp).EntireRow)
.Copy
Tabelle2.Cells(6, 3).PasteSpecial xlPasteAll, Transpose:=True
Application.CutCopyMode = False
.Offset(, 1).Copy
Tabelle2.Cells(6, 2).PasteSpecial xlPasteAll, Transpose:=True
Application.CutCopyMode = False
End With

End Sub

Gruß Gerd
Anzeige

Forumthreads zu verwandten Themen

Anzeige