Frage von Zicolumpi7, 27

Werte aus Tabelle mit Makro archivieren?

Hallo Zusammen, ich habe mir ein Makro aufgezeichnet, welches Werte aus einer Tabelle in ein anderes Tabellenblatt kopiert. Die Werte in der Ursprungstabelle ändere ich aber ständig und ich will, dass beim aktivieren des Makros, die zuvor kopierten Werte nicht überschrieben werden sondern neben den bereits "archivierten" Werten eingefügt wird. So sieht das Makro bis jetzt aus:

Sub test() ' test Makro Range("C5:D19").Select Selection.Copy Sheets("Tabelle1").Select Range("A2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Tabelle2").Select Range("A7:B8").Select Application.CutCopyMode = False Selection.Copy Sheets("Tabelle1").Select Range("A18").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Tabelle2").Select Application.CutCopyMode = False Range("C7:C19").Select Selection.ClearContents Range("C7").Select Sheets("Tabelle1").Select Range("D2").Select Sheets("Tabelle2").Select End Sub

Problem ist, dass die alten Werte in dem neuen Tabellenblatt immer überschrieben werden. Könnt Ihr mir eine Funktion nennen, damit die Werte nicht überschrieben werden, sondern bei jedem mal ausführen des Makros die Werte in eine neue Spalte kopiert werden.

Vielen Dank im Voraus. Grüße Stephan

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Ninombre, Community-Experte für Excel, 25

Neben dem schon erwähnten Problem mit der Lesbarkeit auf GF schreibt der Makrorecorder noch einige Dinge mit, die man eigentlich nicht braucht.

Vereinfacht würde das hier genügen:
Sub kopieren()
Dim ziel As Integer
ziel=Sheets("Tabelle2").UsedRange.Columns.CountSheets("Tabelle1").Range("C5:D16").Select
Selection.CopySheets("Tabelle2").Cells(2, ziel + 1).Insert
Sheets("Tabelle2").Cells(1, ziel + 1).Value = Now()
End Sub

Im wesentlichen ging es Dir ja darum, dass die Werte im Archivblatt nicht überschrieben werden. Dafür muss man die letzte verwendete Spalte prüfen und eine daneben wird dann das selektierte Ergebnis hinkopiert. Der letzte Befehl schreibt einfach einen Zeitstempel über den Archiveintrag.

Antwort
von maximilianus7, 27

so kann man das schlecht  lesen.
der gute-frage-editor ist nicht geeignet für source code.
programmcode bitte in zukunft auf z.b. http://pastie.org/ ablegen.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten