Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Kopieren von Inhalten in andere Tabellenblätter, Makros,
#1
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.


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#2
Hallo,


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


wie auch, wenn du alles auf das aktive Tabellenblatt referenzierst?
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
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.
Antworten Top
#4
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
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#5
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?
Antworten Top
#6
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.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#7
Hallo,

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

LG
Marcus


Angehängte Dateien
.xlsm   Daten von Tabelle 1 in Tabelle 2 umkopieren.xlsm (Größe: 18,58 KB / Downloads: 7)

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
[-] Folgende(r) 1 Nutzer sagt Danke an marose67 für diesen Beitrag:
  • LarsW88
Antworten Top
#8
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.
Antworten Top
#9
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

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Antworten Top
#10
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.


Angehängte Dateien Thumbnail(s)
   
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste