Office: Excel 2007 - mit VBA den PC ausschalten - mögliche unerwünschte Nebenwirkungen ?

Helfe beim Thema Excel 2007 - mit VBA den PC ausschalten - mögliche unerwünschte Nebenwirkungen ? in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Forum, hier http://www.office-loesung.de/ftopic342940_0_0_asc.php habe ich eine Code zum ausschalten des PC mittels VBA gefunden. Dazu habe ich... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von fette Elfe, 10. März 2012.

  1. fette Elfe Erfahrener User

    Excel 2007 - mit VBA den PC ausschalten - mögliche unerwünschte Nebenwirkungen ?


    Hallo Forum,

    hier
    http://www.office-loesung.de/ftopic342940_0_0_asc.php
    habe ich eine Code zum ausschalten des PC mittels VBA gefunden.
    Dazu habe ich auch eine Beispielmappe angehängt, die folgenden Code verwendet:
    Code:
    Option Explicit
    
    Dim strMsgBox As String
    Dim objWMI As Object, objItems As Object, objItem As Object
     
     
    Public Sub CommandButton1_Click()
        
        strMsgBox = MsgBox("Soll der PC wirklich ausgeschaltet werden?", vbOKCancel, "Warnung")
        
        If strMsgBox = vbCancel Then
            Exit Sub
        ElseIf strMsgBox = vbOK Then
            Set objWMI = GetObject("WinMgmts:{impersonationLevel=impersonate, (Shutdown)}!/root/cimv2")
            Set objItems = objWMI.ExecQuery("SELECT * FROM Win32_OperatingSystem")
            For Each objItem In objItems
                objItem.Shutdown
            Next objItem
        End If
        
    End Sub

    Das klappt bei mir soweit auch gut, der PC schaltet sich aus.


    1. Frage:
    Abgesehen davon, dass nicht gespeicherte Daten verloren gehen, können sonst noch irgendwelche Nebenwirkungen auftreten?
    Beispielsweise Fehler in der Registry oder Schäden an Programmen oder was weiß ich?

    2. Frage:
    In der Anwendung, in der dieser Code eventuell einmal eingesetzt werden soll, wird vorher per VBA alles gespeichert werden.
    Einen Datenverlust befürchte ich dort also nicht.
    Wenn ich jetzt aber den obigen Code in meiner Beispielmappe ausführe, den Rechner neu starte und Excel öffne, öffnet sich auch immer das Fenster der "Dokumentwiederherstellung" (siehe angehängtes .jpeg), obwohl in der Beispielmappe ja eigentlich nichts verändert wurde.
    Kann ich dies irgendwie umgehen?
    Natürlich soll die Dokumentwiederherstellung nicht dauerhaft ausgeschaltet werden, und sie nach Rechnerneustart per VBA wider zu aktivieren ist auch keine Option.


    Dokumentwiederherstellung:
    Excel 2007 - mit VBA den PC ausschalten - mögliche unerwünschte Nebenwirkungen ? PC ausschalten - Dokumenten.jpg

    Beispielmappe:
    Den Anhang Datei-Öffnen Multiselect.xls betrachten
     
    fette Elfe, 10. März 2012
    #1
  2. miriki Erfahrener User
    Im Prinzip nur die gleichen, als wenn du bei laufenden Applikationen den Rechner über's Startmenü herunterfährst. Ich denke, es ist von der jeweiligen Software abhängig, ob ggf. noch ein Requester kommt, um nicht gespeicherte Daten auf die Platte zu bringen. Kommen die einen Augenblick zu spät, sind das die Programme, die beim Rechner-Shutdown als "kann nicht beendet werden" angemeckert werden.

    Für sowas brauchst's keinen Software-Reset. Das schafft Microsoft auch im normal laufenden Betrieb alle Nase lang. ;-)

    Wenn dort irgendwo eine Formel mit JETZT() oder ähnlichen Sachen drin ist, reicht das schon. Aber ich hätte vielleicht eine Idee:

    Wenn Du die Shutdown-Routine in ein Add-In verfrachtest, könntest Du mit einer Schleife alle offenen Arbeitsmapen schließen, ggf. speichern. Wenn die Excel-Applikation dann "leer" ist, sollte der Shutdown sauberer laufen. Idee, ungetestet...

    Gruß, Michael
     
    miriki, 12. März 2012
    #2
  3. fette Elfe Erfahrener User
    Hallo Michael,

    :D;)Excel 2007 - mit VBA den PC ausschalten - mögliche unerwünschte Nebenwirkungen ? :rolleyes:

    Du sagst, es wäre im Prinzip das Gleiche, als wenn übers Startmenü heruntergefahren wird.
    Darauf vertraue ich jetzt mal, denn meine Kenntnisse reichen nicht aus um dies zu beurteilen.



    Die Idee mit dem Add.In ist vermutlich nicht schlecht, aber da ich erstens nicht weiß wie ich sowas erstelle, und zweitens die Anwendung in unserem Firmennetzwerk läuft, wo dann ja das Add.In auf jedem Rechner vorhanden sein müsste von dem eventuell irgendwann mal diese Anwendung gestartet werden könnte, und ich aus Prinzip lieber die Finger von Rechneränderungen (inkl. Installationen) oder irgendwelchen Eingriffen ins Netzwerk lasse, werde ich diese Möglichkeit nicht weiter verfolgen.


    Aber hiermit:
    hast Du mich wohl auf die richtige Fährte gebracht.
    Um die Dokumentwiderherstellung zu vermeiden muss Excel sauber beendet werden.

    Ich habs jetzt erst einmal getestet, aber folgendes scheint zu funktionieren:
    Code:
    Application.Quit
    ThisWorkbook.Close Savechanges:=False
    Dies als Zusatz ganz am Ende des Makros, und die unerwünschte Dokumentwiderherstellung tauchte nicht auf.
    Werd ich später noch ein paar Mal versuchen.
    Für den Falls das auch noch andere Excel-Mappen geöffnet sind, könnte man diese ja per Abfrage und Schleife schon im Vorhinein beenden.


    Danke für den Zaunpfahl.
    ;O)
     
    fette Elfe, 13. März 2012
    #3
  4. miriki Erfahrener User

    Excel 2007 - mit VBA den PC ausschalten - mögliche unerwünschte Nebenwirkungen ?

    Ehrlich gesagt, war das sogar meine erste Idee, als ich antworten wollte. Aber dann hab ich einen Rückzieher gemacht und bin auf die Add-In Idee umgeschwenkt. Warum? Weil...

    Ich hatte gedacht, daß nach einem Schließen der Mappe, in dem sich der laufende Code befindet, spätestens aber nach dem Schließen von Excel selbst (und damit auch dem VBA-Interpreter), auch der laufende VBA-Code beenden würde. Wenn ich meinen Fernseher ausschalte, kann ich danach auch keinen Sender mehr wechseln...

    Sollte aber nach dem application.quit der Code selbst noch weiter bis zum regulären Ende laufen, dann ist das in der Tat die einfachere Methode.

    Gruß, Michael
     
    miriki, 13. März 2012
    #4
  5. fette Elfe Erfahrener User
    Hallo Michael,

    Also ich habs jetzt mal in Ruhe und im Einzelschrittmodus getestet:
    - "application.quit" beendet Excel unmittelbar und sofort, d.h. nach dieser Zeile kann kein weiterer Code ausgeführt werden
    - "ThisWorkbook.Close" schliesst die Mappe sofort und unmittelbar. Auch hier kann kein weiterer Code ausgeführt werden (ausser man würde Ihn ins "BeforeClose-Ereignis" schreiben (getestet).

    Ist also eigentlich doppelt gemoppelt, unnötig und logisch auch unsinnig beides zu verwenden.
    Aber, immerhin, "application.quit" scheint Excel so sauber zu beenden, dass die Dokuwiederherst. nicht am Käfig rappelt.


    Habe heute übrigens mal mit Chefchen gesprochen. Der ist ganz angetan von meiner Idee, in einer bestimmten Anwendung (die länger dauert) die letzte Aktion kurz vor Feierabend manuell zu starten, nach Ende der Aktion automatisch ne Mail zu verschicken und den Rechner runter zu fahren.
     
    fette Elfe, 13. März 2012
    #5
Thema:

Excel 2007 - mit VBA den PC ausschalten - mögliche unerwünschte Nebenwirkungen ?

Die Seite wird geladen...
  1. Excel 2007 - mit VBA den PC ausschalten - mögliche unerwünschte Nebenwirkungen ? - Similar Threads - Excel 2007 VBA

  2. Umstellung von Office 2007 auf 2016

    in Microsoft Excel Hilfe
    Umstellung von Office 2007 auf 2016: Hallo und guten Tag, mit vba habe ich in Excel Office 2007 ein ziemlich umfangreiches Makro programmiert. Jetzt soll bei uns die Umstellung auf Office 2016 stattfinden. Muß ich damit rechnen,...
  3. Wenn funktion in VBA

    in Microsoft Excel Hilfe
    Wenn funktion in VBA: Hallo zusammen, ich habe da ein kleines Problem, wie kann ich dieses Funktion =WENN(F19="";G19;F19) in VBA Code umwandeln? Im VBA bin ich grad nicht der beste. Hoffe jemand kann mir helfen....
  4. nur Teil der Tabelle mit aktuellem Datum drucken

    in Microsoft Excel Hilfe
    nur Teil der Tabelle mit aktuellem Datum drucken: Hallo, nach vielen frustrierten Versuchen seit Ihr nun meine Hoffnung :) Ich habe ein ( meinen Augen unübersichtliches, aber von Chef so gewünschtes) Tabellenblatt auf dem unter einander für...
  5. Excel 2007 Macro/VBA

    in Microsoft Excel Hilfe
    Excel 2007 Macro/VBA: Hallo, ich bin neu hier und stecke auch schon in Schwierigkeiten. Ich möchte ein Makro erstelle das das Wort "[Compound Results (Ch1)]" und anschließend 2 Spalten darunter die beiden Spalten...
  6. Excel 2007 - VBA - Speichern durch Makro auf Server macht Probleme

    in Microsoft Excel Hilfe
    Excel 2007 - VBA - Speichern durch Makro auf Server macht Probleme: Hallo Forum, bei uns laufen die Rechner mit XP, Excel 2007 und der Server läuft noch mit Windows Server 2003. Seit ich Makros schreibe hat das Speichern via VBA bzw. das Back-Up-erstellen immer...
  7. VBA Editor in Excel 2007 - Makro Schrittweise durchlaufen springt auf Autodurchlauf

    in Microsoft Excel Hilfe
    VBA Editor in Excel 2007 - Makro Schrittweise durchlaufen springt auf Autodurchlauf: Hallo zusammen, ich habe ein Frage an die Nutzer des VBA Editors in Excel. Ich habe folgendes Verhalten beobachtet: Im Editor ist es ja möglich, mit F8 schrittweise den Code abzuarbeiten. Jetzt...
  8. Excel 2007 - VBA: IsDate erkennt auf True, aber CDate meckert

    in Microsoft Excel Hilfe
    Excel 2007 - VBA: IsDate erkennt auf True, aber CDate meckert: Hallo Forum, in einer Anwendung überprüfe ich Dateinamen auf eine festgelegte Schreibweise, in der auch ein Datum enthalten sein muss. Ist diese Schreibweise nicht eingehalten, fordere ich den...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden