Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1568to1572
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ist mein Makro so korrekt?

Ist mein Makro so korrekt?
17.07.2017 18:34:30
Dieter(Drummer)
Gute Tag VBA Spezialisten.
Mein Makro ruft die Datei "Cleanmgr,exe" auf und es funktioniert auch alles perfekt.
Nur zur Sicherheit die Frage, ob das folgende Mamkro von mir korrekt ist?
Gruß, Dieter(Drummer)
Sub Datei_Exe_Ja()
If MsgBox("Soll Laufwerk C bereinigt werden", 292, "Bereinigen") = 6 Then
Shell "C:\Windows\System32\cleanmgr.exe" 'System cleaner aktivieren
Application.Quit 'Excel beenden
ActiveWorkbook.Close SaveChanges:=True 'Aktive Datei wird geschlossen
Else
End If
End Sub 'Beenden

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ist mein Makro so korrekt?
17.07.2017 18:53:00
MatthiasG
Hallo Dieter,

Application.Quit 'Excel beenden
ActiveWorkbook.Close SaveChanges:=True 'Aktive Datei wird geschlossen

Die Reihenfolge ist m.E. falsch.
Bzw.: den Quit-Befehl würde ich nur senden, wenn deine Mappe die einzig geöffnete ist. Das muss ja nicht so sein...
ungetestet:

If Workbooks.Count = 1 Then
If ThisWorkbook.Saved = False Then ThisWorkbook.Save
Application.Quit
Else
ThisWorkbook.Close SaveChanges:=True
End If

Ob hier ActiveWorkbook oder ThisWorkbook stehen soll, musst du noch überlegen. ThisWorkbook ist jenes, in dem der Code steht.
Gruß Matthias
Anzeige
AW: Ist mein Makro so korrekt?
17.07.2017 19:08:29
Dieter(Drummer)
Hallo Matthias,
danke für deine Rückmeldung. Das Makro ist nur in der aktiven Datei und es ist ist keien weitere Datei geöffnet. Habe das Makro jetz so geändert und es wird aber Excel nicht allein beendet, sonder nur die Datei wird geschlossen ind dei Exedatei wird aber aufgerufen. Was muss noch geändert werden damit Exel auch beendet wird?
Gruß, Dieter(Drummer)
Makro:
Sub Datei_Exe_Ja()
If MsgBox("Soll Laufwerk C bereinigt werden", 292, "Bereinigen") = 6 Then
Shell "C:\Windows\System32\cleanmgr.exe" 'System cleaner aktivieren
If Workbooks.Count = 1 Then
If ThisWorkbook.Saved = False Then ThisWorkbook.Save
Application.Quit
Else
ThisWorkbook.Close SaveChanges:=True
End If
End If
End Sub 'Beenden

Anzeige
AW: Ist mein Makro so korrekt?
17.07.2017 19:29:02
MatthiasG
Hallo Dieter,
Der If-Block um die MsgBox soll doch nur für die Laufwerksbereinigung gelten, oder?
Schließen der Mappe im jedem Fall, oder?

Sub Datei_Exe_Ja()
If MsgBox("Soll Laufwerk C bereinigt werden", 292, "Bereinigen") = 6 Then
Shell "C:\Windows\System32\cleanmgr.exe" 'System cleaner aktivieren
End If
If Workbooks.Count = 1 Then
If ThisWorkbook.Saved = False Then ThisWorkbook.Save
Application.Quit
Else
ThisWorkbook.Close SaveChanges:=True
End If
End If
End Sub 'Beenden
Gruß Matthias
AW: Ist mein Makro so korrekt?
17.07.2017 19:41:23
Dieter(Drummer)
Hallo Matthias,
dein jetziges Code schließt die Datei bei NEIN und Excel wird nicht beendet, Bei Ja wird die Exedatei aufgerufen, die Datei auch geschlossen und Excel wird aber nicht beendet.
Richtig wäre:
1. Bei Ja soll die Exedatei aktiviert werden und
2. das aktive Work book sell geschlossen werden (Änderungen sind nicht nötig, da keine bemacht werden)
3. Excel muss dann auch geschlossen werden.
Bei Nein soll garnichts passieren.
Bei meinem ersten Makro funktioneiert das ja auch so.
Gruß, Dieter(Drummer)
Anzeige
AW: Ist mein Makro so korrekt?
17.07.2017 19:50:26
MatthiasG
Hallo Dieter,
Irgendwie geht dann die Abfrage Workbooks.Count bei dir nicht richtig. Vielleicht hast du ein Add-In oder so, das Excel mitzählt.
Ist aber auch egal, denn so wie du es willst, müsste es dann so gehen:

Sub Datei_Exe_Ja()
If MsgBox("Soll Laufwerk C bereinigt werden", 292, "Bereinigen") = 6 Then
Shell "C:\Windows\System32\cleanmgr.exe" 'System cleaner aktivieren
ThisWorkbook.Saved = True 'tut so, als sei die Mappe gespeichert
Application.Quit 'beendet Excel, verwirft Änderungen (siehe Zeile oben)
End If
End Sub 'Beenden
...hoffentlich :-)
Gruß Matthias
Anzeige
AW: Danke Matthias, so geht es ...
17.07.2017 20:02:59
Dieter(Drummer)
... herzlichen Dank für deine Hilfe und noch einen schönen Abend.
Gruß, Dieter(Drummer)
Ja, natürlich....welche Frage...gell Daniel:-)
17.07.2017 22:07:04
robert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige