Chiudi file e salva modifiche



  • Chiudi file e salva modifiche
    di Luna 95 (utente non iscritto) data: 05/10/2015 19:15:01

    Salve dovrei risolvere un problema con il codice sotto riportato chiudo il file di excel e salva le modifiche al file aperto, è possibile apportare una modifica, chudere il file se non sono state apportate modifiche, mentre se si sono apportate modifice essere avvertito tramite msgbox Attenzione Questa cartella di lavoro contiene delle modifiche non salvate vuoi salvare le modifiche?"
    Spero che sia possibile aggiungere questa modifica.
    Il codice è inserito in un modulo
     
    Sub Auto_Close() 'OK Chiude e salva le modifiche senza chiedere
    
    
        Application.DisplayAlerts = False
        If ThisWorkbook.Saved = False Then
            ThisWorkbook.Save
            Application.DisplayAlerts = True
        End If
    End Sub



  • di patel data: 05/10/2015 19:59:33

    perché chiedere una macro per qualcosa che excel già fà ?





  • di Marius44 data: 05/10/2015 20:12:53

    Ciao Luna95

    @patel
    forse non abbiamo capito. Nella sub che Luna ha postato vi è il codice seguente:

    Application.DisplayAlerts = False

    pertanto, giustamente, Excel controlla se sono state apportate variazioni e, in caso positivo, salva senza avvisare.

    Se si toglie l'intera Sub Auto_Close tutto torna a posto, cioè secondo i desideri di Luna.

    Ciao,
    amrio



  • di Luna 95 (utente non iscritto) data: 05/10/2015 20:41:50

    Scuate il problema e che ho alcuni file excel, sè apro il file anche se non ho apporto modifiche appena chiudo, excel mi dice che ho apportato delle modifiche, mi chiede se voglio salvare il file, ecco perche ho inserito il codice riportato, il problema che adesso dalva e chiude senza avvisare io volevo modificare il codice, chiudere il foglio se non ho apportato modifiche mentre se ho apportato modifice al file mi avvisa se voglio salvare le modifiche apportate



  • di mabolsie (utente non iscritto) data: 05/10/2015 21:44:23

    Ciao Luna forse c'è qualche cosa che non quadra nei tuoi file infatti normalmente excel se non apporti nessuna modifica al foglio aperto non ti chiede di salvare ma chiude il foglio(come già dice il collega Marius).
    Sicuramente hai qualche comando che in apertura foglio apporta qualche modifica e tu non te ne accorgi.
    Posta tutto il codice che lo controlliamo.
    Ciao Max



  • di Marius44 data: 05/10/2015 23:39:57

    Luna, non è che per caso nei tuoi file c'è qualche formula con OGGI() oppure ADESSO() o qualche macro che aggiorna date?

    Ciao, Mario



  • di Luna 95 (utente non iscritto) data: 06/10/2015 11:55:31

    Ciao Marius44 il problema sono proprio le formule OGGI() oppure ADESSO() c'è un modo per aggirare l'ostacolo. non sò qualcosa tipo quel codice che ho allegato naturalmente apportare qualche modifica, tipo se apro il file e lo richiudo senza fare modifiche non deve uscire il messaggio di salvataggio.



  • di Raffaele_53 data: 06/10/2015 12:17:47

    Ciao a tutti
    >>>formule OGGI() oppure ADESSO()
    Provato queste due formule e non mi sembra che c'entrano.
    Presumo che apri file creati con vecchie versioni d'excel, alla chiusura Ti chiede d'aggiornarli.



  • di Marius44 data: 06/10/2015 14:11:33

    Non credo, che io sappia, c'entri la versione di Excel utilizzata, il problema, secondo me, è qualsiasi formula/funzione (se nel Foglio) o qualsiasi macro (in VBA) che scatena un aggiornamento.

    cit: "se apro il file e lo richiudo senza fare modifiche non deve uscire il messaggio di salvataggio"
    Per fare quello che chiedi bisognerebbe sapere in quale cella è/sono la/le formula/e e/o funzione/i.
    Forse sarebbe meglio che allegassi il tuo file per poterlo analizzare.
    Ciao,
    Mario



  • di Raffaele_53 data: 06/10/2015 14:38:44

    Allego un file dimostrativo (creato con 2007 e salvato per un utente 2003)

    EDIT Grazie non mi ero accorto " che brutta figura" EDIT
    Comunque crea un file e metti =oggi() o Adesso()
    Salva sposta l'orario del PC e non chiede di salvarlo



  • di Marius44 data: 06/10/2015 14:47:33

    @Raffaele
    Nell'intervallo H:I c'è CASUALE che scatena l'aggiornamento. Se metti solo valori, lo salvi e chiudi, quando lo riapri e lo chiudi non ti chiede nulla.
    Ciao,
    Mario



  • di Raffaele_53 data: 06/10/2015 15:49:22

    In effetti ha ragione Marius44 con Oggi() e Adesso()
    Allora anche Anno(), Mese(), Giorno.settimana(), orario() ecc ecc
    Comunque riallego un file senza date (io non sò dove si modifica da solo)



  • di Marius44 data: 06/10/2015 16:20:22

    @Raffaele
    Non solo quelle ma TUTTE le funzioni che scatenano un ricalcolo del Foglio.
    A mio parere non resta altro da fare - MA NON SO QUANTO CONVENGA - bisogna disabilitare il ricalcolo automatico del Foglio e impostarlo su manuale.
    Il mio suggerimento: meglio "sopportare" quel messaggio e salvare ogni volta.

    Ciao,
    Mario



  • di Luna 95 (utente non iscritto) data: 06/10/2015 17:48:02

    Be io ho fatto delle prove con scardi risulta, non sono riuscito ad individuare il problema, allego il file con la speranza che qualcuno riesce a scoprire il problema?



  • di Raffaele_53 data: 06/10/2015 20:15:28

    Ciao Marius44
    Come dici. potrebbe anche essere...
    Oltre ad leggere in E21=ANNO(OGGI()) e mi sembra anche in altre celle formule simili.
    Adesso salvo il file e creo il rapporto del foglio nuovo. (dal report, mi risulta che ci sono formule collegate a file chiusi, che io non vedo).

    Vorrei proporre un'ulteriore soluzione che non sono capace da fare.
    Premesso che se chiude senza salvare vada bene, anche in caso per errore si salvasse (Senza modifiche, vedi NB).

    Chiediamo all'utente, quali sono le "varie" celle che ogni utente debba compilare per eseguire la procedura. Qui penso che confrontando tali celle con "vari cambi di valori immessi" si possa fare un confronto
    Si = Salva in altro file (non questo file)
    No = Esci senza salvare (casomai un msgbox che dice che la cella xy sono vuote e interrompono)

    Scusa per Oggi() e Adesso()

    NB se questo file fosse una base, dove ogni utente scrive un "ORDINE", il fatto che io prima abbia sporcato/inserito un dato in una determinata cella non dovrebbe essere giusto?



  • di Luna 95 (utente non iscritto) data: 07/10/2015 11:02:40

    A quanto sembra non c'è soluzione ho mi tengo il messaggio di salvare ogni volta che apro il file ancge se non ho apportato modifiche, oppure uso Sub Auto_Close e gli impongo di salvare e chiudere il foglio.



  • di Marius44 data: 07/10/2015 11:51:59

    Ciao Luna
    Non ci siamo dimenticati di te, ma il problema è più complesso di quanto sembri.
    Premetto che non sono d'accordo su come hai impostato il tuo lavoro: il modello di fattura dovrebbe stare su un file a parte e, quando lo apri, aggiornare numero fattura e data. Così com'è adesso ogni volta che apri il file la data viene aggiornata allo stesso numero dell'ultima fattura emessa. Penso anche che vorresti avere (o c'è già ed il riferimento a file esterno è questo) anche un archivio delle fatture emesse.
    Nel tuo file, oltre alle consapute funzioni OGGI() e ADESSO() c'è anche ANNO(OGGI()) - cella E21 - ma anche tutte le formule della colonna G comportano un ricalcolo del Foglio.
    In sintesi: ti consiglio di sdoppiare il foglio in modo tale che tutti i calcoli avvengano solo in uno (quello dove emetti la fattura) mentgre l'altro ti serve per scegliere il nome di cliente, il tipo di prodotto da fatturare, ecc e riporti il tutto con un pulsante, nella Foglio fattura.
    Oppure fai come hai detto tu "oppure uso Sub Auto_Close e gli impongo di salvare e chiudere il foglio.=

    Ciao,
    Mario

    @Raffaele
    Scusa di che! Ti era solo sfuggito un particolare. Amen.
    Ciao,
    Mario



  • di Raffaele_53 data: 07/10/2015 17:03:14

    Io chiedo all'utente (dall'allegato non capisco bene), quali siano le celle che l'utente deve compilare.

    Ps, Mauro, mi rinvii la password del sito (me la sono dimenticata, cancello sempre la posta e forse devo usare altro PC. Questo fà i capricci)



  • di Luna 95 (utente non iscritto) data: 07/10/2015 20:33:39

    Ciao Marius44 grazie pe l'interessamento, dato che ai aperto il mio file fattura e a quanto sembra ha un impostazione blanda hai qualce file di esempio da propormi? Sarei interessato a migliorare il file, perchi se hai qualche file di fattura piu completo mi fai un favore. mentre per il discorso di del messaggio di salvataggio potrei optare per Sub Auto_Close, però devo fare attenzione quando apporto delle modifiche perche vengono salvate in automatico giusto!



  • di Marius44 data: 07/10/2015 21:42:53

    Ciao Francesco
    ti dico subito che non ho un "lavoro pronto". Non c'è dubbio che il tuo Foglio mostra qualche carenza. Per esempio: se hai i clienti in un Convalida dati perché il ComboBox? Ed ancora (penso si tratti di un distributore di carburanti): perché solo tre voci di merce? e se vendessi anche olio oppure tergicristalli?
    Ma la cosa principale è: non può stare tutto in un Foglio, si creano inevitabili conflitti (spesso poco gestibili).
    Un ultimo consiglio: per quanto possibile evita unione-celle; le celle unificate a volte possono creare problemi.

    Ciao,
    Mario



  • di Luna 95 (utente non iscritto) data: 08/10/2015 19:07:59

    Grazie per l'aiuto, controllo in rete se rieco a reperire qualcosa da modificare ed adattare alle mie esigenze


  • P.zo Ivato o netto
    di Luna 95 (utente non iscritto) data: 09/10/2015 11:46:41

    Ho la seguente formula che mi calcolo ul prezzo netto o ivato esempio

    Prezzo Ivato E4
    Prezzo Ivato o Netto F4
    %Iva I4
    Con la seguente formula calcolo Il Prezzo ivato o netto =SE(I4<>"";E4/(1+$I4);E4)
    quello che non riesco a fare è se nella cella E4 Prezzo ivato, non c'è nessuno valore e possibile nella cella F4 Prezzo ivato o netto far comparire la cella vuota, con la mia formula mi compaio gli zeri.