Clever-Excel-Forum

Normale Version: Kopieren von Inhalten in andere Tabellenblätter, Makros,
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen zusammen,

ich habe ein Problem, wie wahrscheinlich jeder der hier Hilfe sucht.

Was ich vor habe:

Ich habe ein Excelsheet erstellt, der als Bedarfsmeldung von der Werkstatt zum Einkauf dienen soll.
Im gelben Bereich wird bei Artikelbezeichnung ein Dropdown-Menü genutzt und per S-Verweis aus einem Datenstamm die restlichen Felder gefüllt.
Der Button "Bedarfsmeldung generieren" erzeugt eine Bedarfsmeldung, die sich aus dem Datum und einem fortlaufenden Zähler zusammensetzt. Der Zähler erhöht sich nach jedem klicken um 1.

Der Archivieren Button ist nun mein Problem.
Nach dem die Bedarfsmeldung generiert und die Tabelle ausgefüllt wurde, soll der Inhalt des gelben Bereiches mit der Bedarfsmeldung in ein "Archiv" verschoben werden, welches eine andere Seite in der Arbeitsmappe ist. Dabei sollen natürlich nur die Zeilen/Spalten verschoben werden, die auch befüllt sind, sonst entstehen ja im Archiv Leerzeilen in der Auflistung der Bedarfsmeldungen.

Ich habe schon einmal angefangen ein Makro zu programmieren, welcher Spalten/Zeilen kopiert und in die nächst freie Zeile kopiert. Ich bekomme nur keinen Verweis auf die andere Tabellenseite hin.
Hier der dafür genutzte Code.

Sub Makro1()
    ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) = ActiveSheet.Cells(10, 2)
    ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) = ActiveSheet.Cells(10, 3)
    ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Offset(1, 0) = ActiveSheet.Cells(10, 4)
    ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Offset(1, 0) = ActiveSheet.Cells(10, 5)
    ActiveSheet.Cells(Rows.Count, 6).End(xlUp).Offset(1, 0) = ActiveSheet.Cells(10, 6)
    ActiveSheet.Cells(Rows.Count, 7).End(xlUp).Offset(1, 0) = ActiveSheet.Cells(10, 7)
    ActiveSheet.Cells(Rows.Count, 8).End(xlUp).Offset(1, 0) = ActiveSheet.Cells(10, 8)
    End Sub


Für konstruktive Vorschläge bin ich dankbar.
Hallo,


Zitat:Ich bekomme nur keinen Verweis auf die andere Tabellenseite hin.


wie auch, wenn du alles auf das aktive Tabellenblatt referenzierst?
Danke für den Hinweis.....

Das ist ja grade mein Problem. Ich habe keine andere Formel gefunden, die annähernd mein Vorhaben supportet.

Daher war mein Topic so gemeint, dass mir jemand einen Vorschlag macht, wie ich es lösen könnte. Bin nicht sehr bewandert in VBA.
Hallo,

für eine konkrete Hilfe solltest du eine Beispieldatei hochladen. Bezogen auf dein Makro würde das auch so gehen:

Code:
Option Explicit

Sub uebertrag()
    Dim lngZiZeile As Long
    lngZiZeile = Tabelle2.Range("B" & Rows.Count).End(xlUp).Row + 1
    Tabelle2.Range("B" & lngZiZeile, "I" & lngZiZeile) = ActiveSheet.Range("B10:I10").Value
End Sub
Hallo Klaus-Dieter,

vielen Dank für deine Hilfe. Ich habe es ausprobiert und gesehen, dass nur eine Zeile kopiert wird.

Kann man das auf deiner Vorlage noch erweitern, dass alle Zellen ab 10 kopiert werden, in denen Werte stehen?
Hallo,

na klar, das ging aus deiner Anfrage nicht hervor. Dazu musst du die roten Werte anpassen: Tabelle2.Range("B" & lngZiZeile, "I" & lngZiZeile + Ziel) = ActiveSheet.Range("B10:I10").Value Das kannst du auch dynamisieren.
Hallo,

ich bin wie immer etwas später dran. Hier eine Beispieldatei:

LG
Marcus
Hallo Marcus,

Vielen Dank, ich habe mir deinen Vorschlag angesehen, leider dreht dieser die Reihenfolge meiner Einträge um, die letzte Zeile wird beim kopieren die erste auf dem anderen Blatt. Weiterhin kopiert der Code jede Zeile einzeln. Ich hätte gerne, dass alle gleichzeitig mit einem klick kopiert werden. Wobei mich letzteres noch gar nicht mal so sehr stört.

Weiterhin besteht das Problem, dass ich nicht Formeln kopieren möchte, sondern lediglich den Inhalt der Zelle als Wert.

Vielen Dank für euer Feedback.
Hallo,
verstehe ich nicht. Wenn ich daie Beispiel Datei hier ablaufen lasse, dann klappt es. Meinst Du es so?
http://ms-excel.eu/excel-vba-codes/codes...reie-zelle

Gruß
Marcus
Links ist die Tabelle 2, rechts die Tabelle 1.

Ich habe eine Spalte mit Zahlen eingefügt, damit man sehen kann, dass die Reihenfolge vertauscht wird.