07.02.2023, 07:51 (Dieser Beitrag wurde zuletzt bearbeitet: 07.02.2023, 07:51 von Sascha1986.)
Guten Morgen,
folgende Thematik:
Ich habe in Tabelle 1 ein Formular erstellt welches von dem Benutzer ausgefüllt wird. mit jeder Speicherung wird in B3 eine neue zahl generiert. jetzt möchte ich die daten aus Tabelle 1 (B3 - B8) in Tabelle 3 schreiben und bei jeder Speicherung soll eine neue Zeile mit den eingegebenen daten (B3 - B8) aus Tabelle 1 erstell werden
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) With Worksheets("Tabelle1").Range("B3:B8") Worksheets("Tabelle3").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 6).Value = Application.Transpose(.Value) .Value = "" End With End Sub
vielen Dank für die schnelle Antwort aber irgendwie funktioniert es nicht.
habe es hier noch mal eingefügt wie ich es mir vorstelle. bei jedem speichern werden dann die daten aus Tabelle 1 in Tabelle 3 in eine neue Zeile geschrieben
07.02.2023, 10:59 (Dieser Beitrag wurde zuletzt bearbeitet: 07.02.2023, 11:02 von HKindler.)
Hi,
(07.02.2023, 10:14)Sascha1986 schrieb: Was mache ich falsch?
1. hast du Bilder statt einer Datei hochgeladen. 2. hast du nicht beschrieben, was genau du gemacht hast 3. hast du den Code nicht unter "DieseArbeitsmappe" eingefügt 4. hast du nicht gesagt, dass mit "Speichern" nicht das Speichern der Mappe, sondern das Speichern der eingegebenen Daten in Tabelle2 gemeint ist
Wobei Punkt 4 nur Spekulation ist. Und wenn du dich fragen solltest, wieso dein Workbook_Open nicht funktioniert: Auch das gehört in DieseArbeitsmappe.
D.H. bei jedem öffnen der Datei wird in B3 wird eine fortlaufende Zahl automatisch geschrieben das soll so auch bleiben. B4 - B7 werden daten händisch eingeschrieben und wenn ich die Datei abspeicher sollen diese Daten in Tabelle 3 geschrieben werden.
wie gesagt: der Code von Uwe gehört in DieseArbeitsmappe.
Und dann solltest du eventuell statt .Value="" besser .Offset(1).Value="" verwenden. Sonst löscht es dir auch noch die Paletten-Nr.
Überhaupt würde ich die Palettennummer nicht beim Open sondern beim Save erhöhen. Also Das Workbook_Open komplett löschen und das Workbook_BeforeSave so schreiben:
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) With Tabelle1 .Range("B8") = Date Tabelle3.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 6) = Application.Transpose(.Range("B3:B8")) .Range("B3") = Range("B3") + 1 .Range("B4:B8").ClearContents End With End Sub