macro automatica variando data



  • macro automatica variando data
    di genoa68 data: 19/02/2013 23:38:11

    Mi servirebbe ,inserendo in A1 una data es. 20/03/2013, che al sopraggiungere della stessa, il file si aprisse automaticamente o evidenziandosi o lampeggiando.Come e se è possibile farlo?
    Grazie per il possibile aiuto.



  • di Vecchio Frac data: 20/02/2013 08:21:23

    Non certo dal medesimo file. Un file Excel chiuso non ha la possibilità di autoaprirsi ad una scadenza stabilita. Ti serve un altro programma che rimanga sempre aperto (in Linux si chiamano daemons, in Windows si chiamano servizi), buoni buoni nell'ombra, e che facciano quel che devono fare quando devono farlo.
    Per assurdo potrebbe essere perfino un altro file Excel, sempre aperto e ridotto a icona, con un temporizzatore che controlla la data ogni giorno. Ma questo lo dico solo a scopo didattico, è veramente impraticabile in realtà, per tanti motivi.
    Dovrai ristudiare il problema e cercare un approccio diverso.





  • di genoa68 data: 20/02/2013 12:39:31

    Grazie Vecchio Frac, sei stato esaustivo,provo.



  • di HarryBosch data: 20/02/2013 13:06:52

    Oppure si potrebbe adottare un approccio di questo tipo:
    inserisci il file Excel nella cartella di esecuzione automatica. Ad ogni avvio di windows il file si apre, solo che nell'evento "Open" inseriamo una routine che chiuda immediatamente il file se la data in A1 non corrisponde a quella odierna.

    Ovviamente la protezione delle macro dovrà essere disattivata, oppure il file Excel si deve convertire in eseguibile.



  • di genoa68 data: 20/02/2013 14:02:36

    Ciao HerryBosch,girando sul web avevo trovato quello che suggerisci e funziona,ho messo in A1 la data che mi serve e in A2 la formula =Adesso() e in B2 SE(A1=A2;"Sheda scaduta";"") per evidenziare visimamente il giorno che scade,magari facendo diventare la cella rossa,ma non funziona perche' "Adesso" comprende anche l' ora quindi le due celle non risultano uguali (mi sfugge qualche dettaglio o non ragiono correttamente.
    Una Routine cosi?
    If("A1"<>"A2" Then etc. etc....... perche' non la so fare sigh!Che scarso che sono



  • di Vecchio Frac data: 20/02/2013 18:43:28

    Posso? La soluzione non mi piace :) ma potrebbe funzionare davvero.
    Comunque la funzione da usare non è ADESSO() ma OGGI() che restituisce la data nel formato che intendi tu (senza l'orario).





  • di genoa68 data: 21/02/2013 11:30:19

    Ogni suggerimento è ben accetto per un neofita con la "malattia"di excel come me provo ad utilizzare oggi() non ci avevo pensato....se pensi che si possa fare in qualche altro modo sono tutto orecchi,in questo forum si impara molto.



  • di HarryBosch data: 22/02/2013 19:35:20

    Un altro suggerimento per realizzare quanto chiesto è quello di creare uno script; in passato mi sono cimentato con queste soluzioni, creando vari .vbs o .bat per intenderci, ma al momento sono un pò arrugginito e sinceramente preferisco adottare altri linguaggi.
    Lo stesso vb.net permette di creare eseguibili molto leggeri e veloci, che si possono inserire nella cartella di esecuzione automatica o far partire a determinati orari.
    Magari più tardi ti preparo un esempio da testare.



  • di genoa68 data: 23/02/2013 00:06:42

    Se puoi molto volentieri,io intanto con i vostri suggerimenti ho fatto questo che allego,magari serve a qualcuno,per farlo partire ad ogni accensione di PC lo messo come suggerito in esecuzione automatica.
    Forse ci sono errori o cose inutili.



  • di HarryBosch data: 23/02/2013 01:43:18

    TI ho preparato l'esempio che dicevo: troverai un file .exe e un file di testo.
    Se apri il file di testo, noterai che vanno compilate le prime due righe:
    - nella prima riga dovrai inserire il percorso del file con tanto di nome
    - nella seconda riga la data che lo script controllerà sul foglio Excel, sulla cella A1

    Importante: Inserisci il file di testo nella directory C:

    Il file .exe invece lo dovrai inserire nella cartella di esecuzione automatica. Puoi tranquillamente testare il file .exe cliccandoci sopra.

    Ad ogni avvio della sessione, lo script controllerà se la data corrisponde: in tal caso aprirà il file Excel.
    Ho gestito tutti gli errori, che con vb net è molto facile perché ci pensa in automatico a inserirti il tipo di problema riscontrato: ad esempio se non trova il file di testo in C, oppure se il percorso del file Excel non esiste.

    Se poi ti interessa capire il codice che lavora dietro l'eseguibile, ne parliamo...



  • di genoa68 data: 23/02/2013 11:31:35

    Intanto grazie ,a questo punto mi interesserebbe capire per utilizzi futuri,valuta se e' una cosa fattibile date le mie conoscenze ancora basiche ma con i vostri suggerimenti ho imparato molto.



  • di HarryBosch data: 25/02/2013 01:38:38

    Se mastichi un pò di vba credo che la cosa sia fattibile.
    Per fare l'exe che ti ho allegato ho utilizzato Microsoft Visual Studio; è possibile scaricare gratuitamente la versione Express che ti consente di fare molte cose interessanti.
    Opera sul linguaggio Visual Basic .net (c'è anche la versione Visual Studio per il C++) e, anche se rispetto al vba ci sono parecchie differenze, tutto sommato i due linguaggi sono "inparentati".



  • di genoa68 data: 26/02/2013 22:38:11

    Si ho imparato qualcosa,scarico la versione consigliata e provo a capire.
    Grazie tante ,alla prossima.