online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon jojo5 vom 08.10.2019, 12:28 Options

batch-file beim Speichern der xls-Datei starten

Hallo,
ich habe eine sehr große xls-Datei, auf welche viele user zugreifen. Da die Datei aus diesen beiden Gründen schon ein paar Mal "zerstört" wurde, möchte ich sie bei jedem Speichern im Hintergrund per bat-file weg sichern. Als 1. Hilfe habe ich mir folgenden code aus dem Internet kopiert, den ich dann entsprechend anpassen wollte:

Private Sub WorkbookBeforeSave(ByVal Wb As Workbook, _
ByVal SaveAsUI As Boolean, Cancel As Boolean)

a = MsgBox("Do you really want to save the workbook?", vbYesNo)
If a = vbNo Then Cancel = True

End Sub

Leider wird dieses Makro scheinbar überhaupt nicht aufgerufen (auf jeden Fall erscheint die MsgBox nicht). Wo liegt denn da der Fehler?
Bzw. hat jemand eine bessere Lösung, um die Datei regelmäßig als Kopie an einen anderen Ort zu speichern?

Vielen Dank schon mal, Jojo


Antwort schreiben

Antwort 1 von coros vom 08.10.2019, 12:58 Options

Hallo Jojo,

also bei mir heißt das Ereignis

[b]Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)[/b]


und nicht

[b]Private Sub WorkbookBeforeSave(ByVal Wb As Workbook, _
ByVal SaveAsUI As Boolean, Cancel As Boolean)[/b]


Beachte die Schreibweise, denn daran wird es liegen.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von meinTipp vom 08.10.2019, 12:59 Options

Hallo JoJo,
die Routine muss im Modul von "DieseArbeitsmappe" stehen und folgendermassen heissen:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Beachte "_" nach Workbook.

Gruss Rolf

Antwort 3 von jojo5 vom 08.10.2019, 14:41 Options

Vielen Dank euch beiden!
Das waren genau die Hinweise, die ich brauchte - es funktioniert!

Gruß
Jojo

Antwort 4 von jojo5 vom 08.10.2019, 14:47 Options

Jetzt bin ich bei meinem nächsten Problem. Ich möchte, dass das batch-file im Hintergrund läuft, also das DOS-Fenster nicht sichtbar ist. Sämtliche Tipps funktionieren nicht (Verknüpfung minimiert anzeigen etc.).
Folgendermaßen rufe ich das batch-file auf:
Dim Pfad As String

Pfad = ThisWorkbook.Path & "\Sicherungen\" & "Testfaelle_sic.bat"

'Batchdatei aufrufen
Shell Pfad, 1

Kann ich hier evtl. die minimierte Anzeige einbauen?

Danke, Gruß
Jojo

Antwort 5 von son_quatsch vom 08.10.2019, 15:07 Options

Dein Code muss folgendermaßen erweitert werden:

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
  (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
  ByVal lpParameters As String, ByVal lpDirectory As String, _
  ByVal nShowCmd As Long) As Long
Const SW_HIDE = 0
Const SW_MINIMIZE = 6
Const SW_SHOWMINIMIZED = 2
Const SW_SHOWMINNOACTIVE = 7

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

  Dim Pfad As String

  Pfad = ThisWorkbook.Path & "\Sicherungen\" & "Testfaelle_sic.bat"

  ShellExecute 0, "open", Pfad, "", "", SW_SHOWMINNOACTIVE
End Sub


Wenn Dir das nicht gefällt, kannst Du statt SW_SHOWMINNOACTIVATE auch eine der anderen Werte ausprobieren, z.B. SW_HIDE

Antwort 6 von jojo5 vom 08.10.2019, 15:18 Options

Hallo,

danke, in der Zwischenzeit habe ich - sogar in der VB-Hilfe von Excel!!! - eine ganz einfache Lösung gefunden:
Anstelle
"Shell Pfad, 1"
einfach
"Shell Pfad, 6"
Das war's ...

Trotzdem vielen Dank, Gruß
Jojo

Antwort 7 von peko vom 08.10.2019, 20:07 Options

Danke, hat mir auch geholfen!

Gruß peko

Ähnliche Themen

zellen aus excel exportieren
maxyl  10.01.2007 - 71 Hits - 1 Antwort

Bestimmten Tabellenbereich einer xlt Vorlage als xls speichern
robertu  17.04.2007 - 85 Hits - 9 Antworten

mit batch spiel starten
Marabunta  15.11.2007 - 195 Hits - 11 Antworten

Datei per Batch downloaden
da_horscht  05.04.2008 - 31 Hits - 21 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026