Condividi:        

Macro per spegnare il pc

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Macro per spegnare il pc

Postdi systemcrack » 31/07/24 10:29

Buongiorno, dopo una breve pausa estiva torno a chiedere consiglio qui sul forum.. in pratica come da titolo vorrei aggiungere una macro che spenga il pc quando attivata.

In rete ho trovato questo video: https://www.youtube.com/watch?v=v1Hgu51llPI, ma non riesco a farlo funzionare senza ovviamente capire il perchè.

Ho provato a scaricare il file che viene fornito dal creatore del video (che si trova nei commenti del video) e scaricabile da qui (password per aprire il file: AhSingShutdown) ed il suo funziona, mentre se aggiungo il codice al mio file e faccio il test non accade nulla.

Sono partito dalla mia macro (salva_fine_giornata) che era così composta:
Codice: Seleziona tutto
Sub salva_fine_giornata()

mEseguiSuono ("Q:\SCANNERTRASPORTI\DOC UFF TRASPORTI\[[[ [[[ SHEMA ENTRATE ]]] ]]]\sound-effects\StageWinSuperMario.wav")

Dim nomefile As String
Dim nomesalva

nomefile = "N:\GIORNI PASSATI\schema entrate"   'schema entrate
nomesalva = nomefile & " " & Format(Now(), "dd.mm.yy") & ".xlsm"
ActiveWorkbook.SaveAs Filename:=nomesalva

ThisWorkbook.Close SaveChanges:=False

If MsgBox("ELIMINO SCHEMA ENTRATE OGGI?", vbQuestion + vbYesNo) = vbYes Then
Kill "N:\schema entrate OGGI.xlsm"
End If

End Sub


e l'ho modificata così:
Codice: Seleziona tutto
Sub salva_fine_giornata()

mEseguiSuono ("Q:\SCANNERTRASPORTI\DOC UFF TRASPORTI\[[[ [[[ SHEMA ENTRATE ]]] ]]]\sound-effects\StageWinSuperMario.wav")

Dim nomefile As String
Dim nomesalva

nomefile = "N:\GIORNI PASSATI\schema entrate"   'schema entrate
nomesalva = nomefile & " " & Format(Now(), "dd.mm.yy") & ".xlsm"
ActiveWorkbook.SaveAs Filename:=nomesalva

ThisWorkbook.Close SaveChanges:=False

ActiveWorkbook.Save
Application.DisplayAlerts = False
Application.Quit
Shell "shutdown -s -t 30"

If MsgBox("ELIMINO SCHEMA ENTRATE OGGI?", vbQuestion + vbYesNo) = vbYes Then
Kill "N:\schema entrate OGGI.xlsm"
End If

End Sub


Cosa manca? :roll:
Avatar utente
systemcrack
Utente Senior
 
Post: 439
Iscritto il: 27/07/17 09:40

Sponsor
 

Re: Macro per spegnare il pc

Postdi m.paolo » 31/07/24 11:50

Volendo puoi creare dei collegamenti al desktop: https://www.ilsoftware.it/focus/spegner ... ows_23336/
m.paolo
Moderatore
 
Post: 4225
Iscritto il: 11/11/06 22:34

Re: Macro per spegnare il pc

Postdi systemcrack » 31/07/24 14:52

Ciao Paolo, intanto grazie per la tua risposta, la macro che ho recuperato dal webbe si rifà proprio alle azioni citate nell'articolo che hai linkato tu.. ed esattamente con questa serie di comandi:
Codice: Seleziona tutto
ActiveWorkbook.Save
Application.DisplayAlerts = False
Application.Quit
Shell "shutdown -s -t 30"

ma come da titolo avrei bisogno che lo spegnimento del pc fosse collegato alla chiusura del file e non da un collegamento sul desktop.
Avatar utente
systemcrack
Utente Senior
 
Post: 439
Iscritto il: 27/07/17 09:40

Re: Macro per spegnare il pc

Postdi Anthony47 » 31/07/24 19:08

E' sbagliata questa sequenza:
Codice: Seleziona tutto
ThisWorkbook.Close SaveChanges:=False

ActiveWorkbook.Save
Application.DisplayAlerts = False
Application.Quit
Shell "shutdown -s -t 30"

If MsgBox("ELIMINO SCHEMA ENTRATE OGGI?", vbQuestion + vbYesNo) = vbYes Then
Kill "N:\schema entrate OGGI.xlsm"
End If


Con l'istruzione ThisWorkbook.Close il file che contiene la macro viene chiuso e il suo vba interrotto
Come pure Application.Quit chiude(rebbe) excel e tutto il vba senza mai arrivare al fatidico "shutdown", ne' al Kill successivo

Devi quindi rivedere la sequenza delle istruzioni; probabilmente il msgbox va messo prima di tutti gli altri comandi, mentre ThisWorkbook.Close SaveChanges:=False /Application.Quit /End Sub vanno in coda; non so invece se ActiveWorkbook.Save rimane così (perché non so se a quel punto e' attivo il workbook che devi salvare, non avendo chiuso il file che contiene la macro) e probabilmente dopo il .Save dovresti mettere .Close (a meno che non stiamo parlando del file che contiene la macro!).

Insomma qualcosa del tipo
Codice: Seleziona tutto
If MsgBox("ELIMINO SCHEMA ENTRATE OGGI?", vbQuestion + vbYesNo) = vbYes Then
    Kill "N:\schema entrate OGGI.xlsm"
End If

'qui il salvataggio e la chiusura di quello che era l'ActiveWorkbook


Shell "shutdown -s -t 30"

ThisWorkbook.Close SaveChanges:=False
Application.Quit
End Sub
Avatar utente
Anthony47
Moderatore
 
Post: 19385
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro per spegnare il pc

Postdi systemcrack » 01/08/24 10:10

Tutto chiaro Anthony.. grazie.. farò tutte le prove del caso e come sempre renderò conto di seguito dei risultati. ;)
Avatar utente
systemcrack
Utente Senior
 
Post: 439
Iscritto il: 27/07/17 09:40

Re: Macro per spegnare il pc

Postdi systemcrack » 02/08/24 08:38

Ok ho provato variando il codice in questo modo:
Codice: Seleziona tutto
Sub salva_fine_giornata()

mEseguiSuono ("Q:\SCANNERTRASPORTI\DOC UFF TRASPORTI\[[[ [[[ SHEMA ENTRATE ]]] ]]]\sound-effects\StageWinSuperMario.wav")

Dim nomefile As String
Dim nomesalva

nomefile = "N:\GIORNI PASSATI\schema entrate"   'schema entrate
nomesalva = nomefile & " " & Format(Now(), "dd.mm.yy") & ".xlsm"
ActiveWorkbook.SaveAs Filename:=nomesalva

If MsgBox("ELIMINO SCHEMA ENTRATE OGGI?", vbQuestion + vbYesNo) = vbYes Then
Kill "N:\schema entrate OGGI.xlsm"
End If

ActiveWorkbook.Save
Application.DisplayAlerts = False
ThisWorkbook.Close SaveChanges:=False
Application.Quit
Shell "shutdown -s -t 30"

End Sub

Ora esce il messaggio ("ELIMINO SCHEMA ENTRATE OGGI?"), ma non si spegne il pc.. immagino che il problema sia sempre il comando
Codice: Seleziona tutto
ThisWorkbook.Close SaveChanges:=False

che precede
Codice: Seleziona tutto
Application.Quit
Shell "shutdown -s -t 30"

Mi chiedo se abbia senso spostarlo in coda a tutto o eliminarlo ( ThisWorkbook.Close SaveChanges:=False ).. :roll:
Avatar utente
systemcrack
Utente Senior
 
Post: 439
Iscritto il: 27/07/17 09:40

Re: Macro per spegnare il pc

Postdi systemcrack » 02/08/24 12:34

Scusa Anthony, oggi ho fatto la prova al volo e evidentemente non ho letto accuratamente il tuo codice.. riguardando ora con più calma vedo che mi avevi avvisato nel tuo intervento precedente.
Avatar utente
systemcrack
Utente Senior
 
Post: 439
Iscritto il: 27/07/17 09:40

Re: Macro per spegnare il pc

Postdi systemcrack » 02/08/24 12:58

Però c'è una cosa che non capisco.. il codice nel video funziona nell'altro ordine.. perchè da me no? :roll:
Ho scaricato il file di esempio che viene fornito nei commenti, e l'ho provato e funziona.. lo allego qui così puoi toccare con mano.

1/2 secondo dopo:
Ok lascia perdere.. sto vaneggiando.. forse è il caldo :lol:
Avatar utente
systemcrack
Utente Senior
 
Post: 439
Iscritto il: 27/07/17 09:40

Re: Macro per spegnare il pc

Postdi Anthony47 » 02/08/24 16:54

Ok lascia perdere.. sto vaneggiando.. forse è il caldo :lol:
O forse non sei ancora rientrato dalle ferie :D :D
Avatar utente
Anthony47
Moderatore
 
Post: 19385
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro per spegnare il pc

Postdi systemcrack » 05/08/24 10:29

Anthony47 ha scritto:
Ok lascia perdere.. sto vaneggiando.. forse è il caldo :lol:
O forse non sei ancora rientrato dalle ferie :D :D

Probabile :lol:
Avatar utente
systemcrack
Utente Senior
 
Post: 439
Iscritto il: 27/07/17 09:40


Torna a Applicazioni Office Windows


Topic correlati a "Macro per spegnare il pc":


Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti