mein Problem besteht darin, dass ich bestimmte Zellen aus einem Datenblatt (z.B. Bezeichnung, Ersteller, Datum), indem z.B. ein Fehler beschrieben wird, beim speichern der Datei automatisch zusätzlich in eine andere Excel Tabelle speichern will. Diese stellt dabei eine Liste aller bisher aufgetretenen Fehler mit deren Schlüsseleigenschaften dar. Eine Besonderheit wäre hierbei, dass das Datenblatt alleine zusätlich als extra Datei abgespeichert werden sollte und sich die Datei in welche die Daten eigentlich eingetragen werden wieder "resettet" da es sich hierbei um die Vorlage handelt, welche mehrmals verwendet werden soll.
Zur Veranschaulichung habe ich mal eine Skizze angehängt.
Hat jemand eine Idee wie Ich das am besten umsetzen kann?
Sub Basti() Dim WB1 As Workbook, Tb1 As Worksheet Dim WB2 As Workbook, Tb2 As Worksheet Dim WB3Name As String, WB3 As Workbook, TB3 As Worksheet, TB3Name As String Dim Sp As Integer, LR As Long Dim Pfad As String, Dateiname As String Dim Nname As String, Datum As String, Ersteller As String
'Stammdaten**** Pfad = "E:\excel\temp\" 'mit \ am Ende Dateiname = "NeineDatei " & Format(Date, "YYYYMMDD") 'Beispiel für neue Datei
WB3Name = "Liste.xlsx" 'Die Merkliste TB3Name = "Tabelle1" Sp = 1 'Daten werden Spalte A eingetragen
Nname = "A1" 'hier steht der Name Datum = "B1" 'hier steht das Datum Ersteller = Environ("UserName") 'etc
'Stammdaten Ende***
Set WB1 = ThisWorkbook Set Tb1 = WB1.Sheets("Tabelle1")
Tb1.Copy 'Blatt wird in neue Datei Kopiert ActiveWorkbook.SaveAs (Pfad & Dateiname) Set WB2 = ActiveWorkbook Set Tb2 = WB2.Sheets(1)
Set WB3 = Workbooks.Open(Pfad & WB3Name) Set TB3 = Sheets(TB3Name)
LR = TB3.Cells(TB3.Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte
Hey, sorry dass ich mich nochmal melden muss. Bestimmt ist die Frage banal, aber ich stehe irgendwie auf dem Schlauch:
Wenn ich bei
Code:
'WB1.Close False
das Hochkomma entferne, wird der Speichervorgang an der Stelle ja abgebrochen, was soweit ja auch richtig ist. Allerdings wird auch das Entfernen meines Hochkommas nicht gespeichert, wodurch beim erneuten Aufruf meine Änderung hinfällig ist. Kann ich den Code irgendwie manuell speichern oder so ohne dass dieser ausgeführt wird?
Ich mache das ganze ja in folgendem Sub, damit mein Code greift wenn gespeichert wird.
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Ich vermute ich habe hier irgendwo einen Denkfehler.
das ist das Problem entweder soll gespeichert werden oder nicht.
versuche mal folgendes
- öffne den VB- Editor - setze einen Haltepunkt in Workbook_BeforeSave auf die Zeile cancel = true - speichere die Datei
- jetzt bleibt die Makroausführung dort stehen - verschiebe den gelben Pfeil mit der Maus um eine Zeile nach unten und lass das makro dann weiterlaufen
LG UweD
Folgende(r) 1 Nutzer sagt Danke an UweD für diesen Beitrag:1 Nutzer sagt Danke an UweD für diesen Beitrag 28 • basti.s