KILL



  • KILL
    di FA-BA (utente non iscritto) data: 01/05/2017 10:09:02

    VORREI CHE CANCELLASSE IL file ma si blocca sull'istruzione....
    Dovrei cancellare il file in esecuzione alla fine.
     
    If Sheets("TURNO").Range("N1") = "F" Then Kill indirizzo & "LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM"



  • di patel data: 01/05/2017 11:09:00

    non si può cancellare un file durante la sua esecuzione





  • di ges (utente non iscritto) data: 01/05/2017 11:11:13

    Ciao,
    verifica che hai scritto correttamente il nome del file perché l'istruzione per cancellare il file è:


     
    Kill percorso & nomefile



  • di nick (utente non iscritto) data: 01/05/2017 11:48:43

    Come giustamente dice patel, il file in uso non si può eliminare, ovviamente direi.

    La questione della sintassi non c'entra nulla ... La Kill accetta una stringa

    Kill file

    che poi questa sia completa di percorso o sia formato da tante parti, non è rilevante. E fra l'altro è proprio l'uso che ne fa l'OP



  • di FA-BA (utente non iscritto) data: 02/05/2017 17:08:10

    quindi è giusta dovrei soltanto chiamare un altro file chiudere (quello che devo eliminare che è in esecuzione) e far eseguire ciò che ho scritto.... Bene! Grazie ha tutti! Gentilissimi.



  • di FA-BA (utente non iscritto) data: 02/05/2017 18:07:43

    Non ha funzionato-----

    In esecuzione LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM
    Apre LA BATTAGLIA DEI POTENTi.XLSM

    se creo in LA BATTAGLIA DEI POTENTi.XLSM una macro con nome "Kill" posso aprirla e far eseguire
    If Sheets("TURNO").Range("N1") = "F" Then Kill indirizzo & "LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM"

    (non l'ho provata accetto consigli prima di eseguirla, nel caso avessi scritto una cavolata)

     
    Set wb1 = ActiveWorkbook
    indirizzo = wb1.Path
    Workbooks.Open Filename:=indirizzo & "LA BATTAGLIA DEI POTENTi.XLSM"
    wb1.Close False
    call kill
    If Sheets("TURNO").Range("N1") = "F" Then Kill indirizzo & "LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM"
    End Sub



  • di FA-BA (utente non iscritto) data: 02/05/2017 18:21:39

    Anche con la macro non va..... mi chiede in uscita di salvare le modifiche apportate a (salvataggio) non vorrei messaggi ma soprattutto non lo ha eliminato... non da nessun errore!

    Adesso attendo, vostre risposte.



  • di patel data: 02/05/2017 18:36:00

    prima del kill devi chiudere il file che vuoi killare





  • di FA-BA (utente non iscritto) data: 02/05/2017 18:42:24

    Scusami Petel ma non è l'istruzione -> wb1.Close False <- per chiuderlo?



  • di patel data: 02/05/2017 20:45:39

    vero non l'avevo notato, ma che significa call kill ?





  • di FA-BA (utente non iscritto) data: 03/05/2017 17:01:45

    Era una macro con l'istruzione kill ma è un controsenso... l'HO CAPITO , sto pensando ad una soluzione nuova se faccio creare un file appena la partita finisce "Fine.X" e chiudo con :
    Set wb1 = ActiveWorkbook
    indirizzo = wb1.Path
    Workbooks.Open Filename:=indirizzo & "LA BATTAGLIA DEI POTENTi.XLSM"
    wb1.Close False
    Poi se esiste il file Fine.x faccio eseguire : If Dir(indirizzo & "LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM") = "" Then GoTo (creo la goto) riferita a If Sheets("TURNO").Range("N1") = "F" Then Kill indirizzo & "LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM"
    dovrebbe funzionare.... o esiste una soluzione migliore..... comunque non so come creare un file fittizio e comunque lo farei killare ovviamente ... che ne pensate?


     
    If Dir(indirizzo & "LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM") = "" Then GoTo 0



  • di FA-BA (utente non iscritto) data: 03/05/2017 17:03:23

    Mi correggo : If Dir(indirizzo & "Fine.X") = "" Then GoTo 0



  • di FA-BA (utente non iscritto) data: 03/05/2017 17:07:30

    No.. mi ricorreggo non posso chiedergli di verificare se esiste la F iL (Salvataggio) la conosce il puro no quindi ricollegandomi al testo :

    Poi se esiste il file Fine.x faccio eseguire : If Dir(indirizzo & "LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM") = "" Then GoTo (creo la goto) riferita a -> Kill indirizzo & "LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM"



  • di FA-BA (utente non iscritto) data: 03/05/2017 17:18:22

    la fretta mi sta uccidendo... ora mi rilasso un po... scusate...

    Solo che non so come creare il file Fine.x sempre se la mia idea funzioni?!

    Scusate la mia fretta ed agitazione , sopportatemi ,... sto passando un periodo da incubo.... in questi giorni si è aggiunto uno che mi deve anche dei soldoni....!!!!
     
    Set wb1 = ActiveWorkbook 
    indirizzo = wb1.Path 
    Workbooks.Open Filename:=indirizzo & "LA BATTAGLIA DEI POTENTi.XLSM" 
    wb1.Close False 
    
    Nel file  "LA BATTAGLIA DEI POTENTi.XLSM" inserisco in ->Auto_Open:
    
    If Dir(indirizzo & "Fine.X") = "" Then Kill indirizzo & "LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM" else : Exit Sub



  • di FA-BA (utente non iscritto) data: 03/05/2017 20:50:01

    COME si crea un file fine.x se mi date questa istruzione ho finito...



  • di patel data: 04/05/2017 08:53:14

    prova così
     
    DestFile = "E:provaFine.X"
    FileNum = FreeFile()
    Open DestFile For Output As #FileNum
    Print #FileNum, "FINE"
    Close #FileNum
    






  • di FA-BA data: 04/05/2017 16:32:33

    Con questa viene creato il file ed aperto giusto...?

    La provo tra poco... Grazie Patel ..... un saluto agli altri che hanno contribuito all'inizio!



  • di patel data: 04/05/2017 18:28:20

    Con questa viene creato il file ed aperto giusto...?

    fai più attenzione, come fa ad essere aperto se l'ultima istruzione è
    Close #FileNum





  • di FA-BA data: 06/05/2017 13:38:06

    Non può essere così complicata una cosa così "apparentemente semplice".

    Quindi credo che sia da rifare.

    Ecco cosa mi occorre:

    La partita potrebbe essere stata finita utilizzando il file puro senza utilizzare il salvataggio, quindi mi serve se finita in LA BATTAGLIA DEI POTENTI (chiude normale) se finita con LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM esegue il kill ovvero elimina il salvataggio.

    Scusatemi...Ma dopo tutto credo sia la soluzione più semplice ed ovvia.
    Senza creare ulteriori file...

    Però se mi trovo in LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM ho trovato una soluzione:
    if "aperto con (salvataggio)" Open Filename For Random As indirizzo & "FINE.BAT"
    dove nel Bat è scritto :
    @ echo off
    cls
    echo.
    echo.
    echo continuare solo SE Excel è TERMINATO !!!
    echo.
    pause
    DEL "LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM"
    ----
    Però non capisco cosa significa "For Random" ?.. L'ho provata funziona anche se non come vorrei!

    x Patel = Ho capito l'istruzione sopra crea un file e ci scrive FINE...    
     



  • di Nick (utente non iscritto) data: 06/05/2017 14:56:57

    Personalmente non ho capito nulla di quello che hai scritto, perché non ha né capo né coda ...

    La Open scritta in quel modo non ha senso e non capisco a cosa ti possa servire

    L'opzione Random è spiegata in
    h t t p s : // msdn.microsoft.com/en-us/library/aa733671(v=vs.60).aspx

    basta leggere ... anche se non c'entra nulla con quello che scrivi.



  • di FA-BA (utente non iscritto) data: 06/05/2017 15:43:40

    Nick la Open scritta in quel modo funziona... è il resto che non riesco ha creare!
    L'ho eseguita e apre il file BAT, il problema è come posso sapere quale file è in esecuzione , perché se (salvataggio) è in esecuzione deve eliminarlo altrimenti no (oltre all'altra condizione se esiste F) .

    In pratica come ho già scritto devo eliminare il file salvataggio alla fine ovvero quando è F la cella scritta sopra.

    Non dite che non ha capo e ne coda se proprio tu scrivi (Personalmente non ho capito nulla di quello che hai scritto)!!!



  • di Nick (utente non iscritto) data: 06/05/2017 16:33:18

    Scrivo che non capisco proprio perché non ha né capo né coda.

    Quella Open è sbagliata SINTATTICAMENTE e probabilmente dovresti studiare un po' prima di sparare stupidaggini.



  • di FA-BA (utente non iscritto) data: 06/05/2017 17:27:10

    NICK NON SO CHI TU SIA... MA STAI CALMINO CON LE OFFESE!!!!!!
    SE VUOI RISPONDERE ED AIUTARMI BENE ALTRIMENTI STAI LONTANO DALLE MIE DOMANDE/DISCUSSIONI GRAZIE!!



  • di Nick (utente non iscritto) data: 06/05/2017 17:43:01

    Hai detto che quella Open funziona e ti ho solo detto che è una stupidaggine, perché è così.

    Se vuoi cancellare un file utilizza una Kill gestendo l'errore, se i file sono due, due Kill

    On Errore Resume Next
    Kill "file1"
    Kill "file2"

    Uno dei due verrà cancellato, quello non in uso.

    P.S. ... ha ... senza h ...



  • di FA-BA (utente non iscritto) data: 06/05/2017 18:30:35

    Bene vedo che vuoi aiutarmi quindi riassumo ... Devo eliminare il file "LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM" se (è stato utilizzato) e se -If Sheets("TURNO").Range("N1") = "F"- Ma solo se è stato utilizzato. Siccome la partita si può terminare senza creare il salvataggio , non deve quindi cancellare il file (Salvataggio) (sempre) ma solo se la partita è terminata tramite il suo utilizzo.

    il file Bat ... con quella istruzione che dici non corretta "stranamente funziona tanto è vero che ho chiesto come funziona" solo che come ho scritto io la programmazione il file BAT viene eseguito ogni volta che la partita termina cancellando il file (Salvataggio) anche se non è stato utilizzato.

    Se non sono stato chiaro , basta chiedere , e non irritarmi ... (sono molto instabile, sto passando un periodo lungo oramai anni veramente nero, che non vedo fine anzi più tempo passa e meno vedo speranza, non chiedetemi fatti personali ma solo siate pazienti e corretti con me "vi dico solo una cosa ... non ho mai portato a termine nessun mio progetto e non parlo di hobby ma nella vita e nel sociale e affettivo, sono rimasto io e il pc che vorrei tanto saper utilizzare ma non riesco mai ad avere la calma per studiare ciò che mi piace per questo chiedo non riesco ad avere concentrazione ... il mio stato attuale solo chi ha passato brutti momenti può capire).



  • di patel data: 06/05/2017 18:53:06

    come sempre vai a casaccio, il file BAT non lo devi aprire ma eseguire, quindi la riga
    Open Filename For Random As indirizzo & "FINE.BAT"
    è effettivamente una stupidaggine
    Senza perdere tempo in discussioni inutili basta cercare con google
    www.manuali.net/forum/showthread.php?t=54101





  • di FA-BA (utente non iscritto) data: 06/05/2017 19:14:41

    NON L'HO CERCATA CON GOOGLE MA L'HO COMPILATA IN VBA .. MI è STATA SUGGERITA DAL VBA MENTRE SCRIVEVO .. E NON ESSENDO ESPERTO L'HO TENUTA E SINCERAMENTE FUNZIONA... MA NON è questo il punto... se è scritta male allora ditemi come scriverla... e tra l'altro non è obbligatorio utilizzare il Bat credo che si possa fare con vba in qualche modo. Devo solo riuscire ad eliminare il file giusto come già detto .... e non ho voglia alcuna di prendermi dal nervoso un infarto per queste cose... se volete aiutarmi bene ma non venitemi contro grazie!
    VOI SIETE GLI ESPERTI PER QUESTO VENGO QUI... PER CERCARE SOLUZIONE come la gente fa con la chiesa!!!



  • di FA-BA (utente non iscritto) data: 06/05/2017 19:23:51

    Se mi aiutate nella compilazione dell'istruzione kill vi ringrazio , senza creare agitazione grazie davvero grazie!! Altrimenti chi ha il potere voglio che chiuda adesso il mio accesso in modo da non morire d'infarto , mi sto davvero sentendo male mi aspettavo delle discussioni pacifiche domande/risposte ,... tentativi , proposte di codice.... invece dalle 12:00 di oggi mi sento martellare contro. Grazie dell'attenzione! Adesso spengo... ho il cuore a mille!



  • di Nick (utente non iscritto) data: 06/05/2017 19:46:20

    Infarto? Cuore a mille?

    Ma se ne incontra di gente strana sui forum ...

    Comunque, per restare nel campo dell'informatica e della programmazione, devi usare i due Kill che ti ho proposto, senza fare altro ...
    Ma non credo che il codice sia il più grande dei tuoi problemi ...



  • di patel data: 06/05/2017 20:34:53

    Rispondere a FA-BA è spesso controproducente, da tempo viene ignorato da tutti, io ogni tanto ci casco ed ora ci sei cascato tu. Il forum è per lui uno sfogo, già lo scrivere lo calma, tanto poi fa come gli pare.





  • di Nick (utente non iscritto) data: 06/05/2017 20:46:14

    Ok, ho capito ... passo e chiudo.



  • di FA-BA (utente non iscritto) data: 07/05/2017 09:54:53

    Se non sapete rispondere alla domanda è più corretto tacere.

    Troverò la soluzione altrove e la posterò appena trovata.

    Devo trovare l'istruzione per individuare quale file è in esecuzione -- se (Salvataggio) deve eliminarlo
    ma qui è il problema perché se è attivo non si può fare o così pare. Ma deve pur esserci una soluzione.
    Grazie del non aiuto!



  • di FA-BA (utente non iscritto) data: 07/05/2017 11:06:10

    Fine.bat
    --------
    @ECHO OFF
    CLS
    echo.
    ECHO.
    ECHO.
    ECHO Attendere che Excel sia chiuso!
    echo.
    echo.
    echo.
    pause
    DEL "LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM"
     
    variabile = ActiveWorkbook.Name
    If variabile = "LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM" Then Shell (indirizzo & "FINE.bat")



  • di FA-BA (utente non iscritto) data: 07/05/2017 11:08:33

    Ho trovato la soluzione da me... grazie! Patel e altri se leggete le domande e rispondete alle domande vengono risposte... se alle domande si aggiungono cavolate non si arriva mai alla fine! ... Ma la soluzione l'ho trovata da me, bastava rispondere invece di far finta di rispondere e fare i grandi!
    UMILTA' !



  • di patel data: 07/05/2017 11:29:37

    bastava leggere la mia risposta col link
    www.manuali.net/forum/showthread.php?t=54101
    ma tu come sempre non leggi, ti piace domandare e fare come ti pare.
    Questa è la mia ultima risposta ai tuoi quesiti





  • di FA-BA (utente non iscritto) data: 07/05/2017 11:33:54

    PATEL ... hai ragione tu... sai come si dice vero..... !?
    Facciamola finita... perché mai avete risposto con questa istruzione "variabile = ActiveWorkbook.Name"
    alle mie domande...



  • di Nick (utente non iscritto) data: 07/05/2017 14:26:49

    Come mia ultima risposta invece, ti dirò FA-BA che tu non ci stai con la testa. E questo spiega tutto.



  • di FA-BA (utente non iscritto) data: 07/05/2017 15:04:09

    se sei bravo allora trovami una soluzione professionale al mio scopo... devo eliminare un file.

    La procedura dos non va tranne che non la eseguo dopo la completa chiusura!

    Ma se riuscissi ha capire come leggere la cella If Sheets("TURNO").Range("N1") = "F" di un file esterno, in Auto_Open -> farei verificare la cella e se è F con UN SEMPLICE KILL FINIREI.

    Ho provato svariate volte nel tentativo di creare un file esca utilizzando l'istruzione di patel ->DestFile = "E:provaFine.X" -> ma non viene generato nessun file!

    Quindi kill e Del funzionano solo con l'applicazione chiusa ( ho provato con tskill EXCEL) lo chiude ma non lo elimina comunque .

    Il file non si crea con DestFile = "E:provaFine.X"

    Quindi mi rimane solo di trovare in VBA come poter leggere la cella If Sheets("TURNO").Range("N1") = "F" di un file esterno ( in questo caso LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM, in Auto_Open -> farei verificare la cella e se è F con UN SEMPLICE KILL FINIREI.

    se dite di essere sani di testa come assolutamente non si nota, invece di dire non si fa così!? date la soluzione???? Ma sono convinto che non sapete come fare nemmeno voi e giocate a fare i bulli!



  • di FA-BA (utente non iscritto) data: 07/05/2017 18:16:10

    RISOLTA.... COMPLETAMENTE!
    Ho creato un file Gioco senza estensione e senza alcun contenuto.

    Nella macro Auto_Close ho scritto:

    If Sheets("TURNO").Range("N1") = "F" Then GoTo F
    F:
    APERTO = ActiveWorkbook.Name
    If APERTO = "LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM" Then GoTo FINE Else: Exit Sub
    FINE:
    Name indirizzo & "GIOCO" As indirizzo & "FINE"
    ActiveWorkbook.Close False
    End Sub

    -----Le macro sono distinte.

    Nella macro Auto_Open ho scritto:

    indirizzo = ActiveWorkbook.Path
    If Dir(indirizzo & "FINE") <> "" Then Kill indirizzo & "LA BATTAGLIA DEI POTENTI (SALVATAGGIO).XLSM" ' NUOVISSIMA PROVARE
    If Dir(indirizzo & "FINE") <> "" Then Name indirizzo & "FINE" As indirizzo & "GIOCO"

    --------------------------