scusate sono una novellina



  • scusate sono una novellina
    di maria angela (utente non iscritto) data: 30/07/2013 12:08:21

    Ciao ragazzi, leggendo queste discussioni mi sento davvero novellina, anzi lo sono parecchio rispetto a voi

    ho un problema al quale non trovo soluzione nelle ricerche fino ad ora svolte su internet
    forse ho cercato in modo sbagliato...

    ho bisogno di avere la data aggiornata automaticamente su alcuni file di excell, così quando li stampo non devo ricordarmi di rimetterla ogni volta manualmente...e fin qui nulla di che

    ma la data deve aggiornarsi non all'apertura subito, ma solo quando vado a modificare qualche dato.
    in sintesi quando apro un file, devo poter vedere l'ultima data in cui ho modificato i dati in quella tabella, poi se li modifico si deve aggiornare, altrimenti alla chiusura deve poter mantenere la data ultima di aggiornamento.

    c'è soluzione??????
    grazie a tutti mary



  • di paolomath data: 30/07/2013 14:13:55

    Ciao,

    potresti mettere legare ad un pulsante:

    Range("A1").Value = Date
    ActiveWindow.SelectedSheets.PrintPreview

    Aggiorni la data e vai all'anteprima di stampa.

    Bye



  • di maria angela (utente non iscritto) data: 30/07/2013 15:29:37

    scusa, ma non sono molto pratica del linguaggio stringato
    potresti indicarmi i passaggi come se dovessi dirlo ad un bimbo di 8 anni, facciamo 10 hihihihihihihihihih
    conosco bene il programma ma solo come utilizzo e con formule semplici, non ho mai approfondito.
    ti chiedo scusa, ma se puoi davvero spiegarmelo passaggio per passaggio...
    grazie mary



  • di paolomath data: 30/07/2013 16:29:14

    Non c'è problema, io tendo ad essere stringato...

    Strumenti -> Macro -> Visual Basic Editor (Alt+[F11])

    Doppio click sul tuo foglio (Foglio1 o altro)

    Incolli nello spazio bianco del codice:


    Sub Aggiorna()

    Range("A1").Value = Date
    ActiveWindow.SelectedSheets.PrintPreview

    End Sub

    Dalla barra Moduli (eventualmente scoprila facendo click con il destro nella zona dei pulsanti di comando) inserisci un Pulsante.

    Ti chiede a quale Macro collegarlo, seleziona la Macro Aggiorna e dovresti esserci...

    Abbiamo aggiunto un pulsante ed una Macro al foglio su cui stai lavorando, poi si possono fare infinite variazioni.

    Buo divertimento.



  • di maria angela (utente non iscritto) data: 30/07/2013 16:42:02

    ho aperto il file, ho cliccato alt+f11 e mi si è aperto visual basic, ma non visul basic editor e quindi cliccando due volte nella finestra non succede nulla...
    forse con excell 2003 devo fare diversamente???

    sei davvero bravo, ed anche paziente, ti prego non mollarmi :)
    mary



  • di paolomath data: 30/07/2013 16:48:45

    Eccomi.

    Sulla sinistra dovresti avere una struttura ad albero con l'elenco dei fili/fogli aperti. Doppio click sul foglio a cui stai lavorando (dovrebbe già essere evidenziato)... poi procedi come sopra.



  • di maria angela (utente non iscritto) data: 30/07/2013 17:01:51

    siiiiiiiiiiiiiiii ho creato la mia prima macro
    però ho dovuto andarci un pò a naso, perchè aperto visual basic, sono andata a nominare una macro e poi crearla dal menù, e allora mi si è aperta la finestra di dialogo dove inserire il comando.

    non gli ho dato l'anteprima di stampa perchè non sempre mi serve di stampare.
    ma quel comando può diventare automatico senza che debba ricordami io di cliccare sul tasto?
    di fatto, può essere reso automatico senza il mio intervento aggiornare la data solo se si modificano dei dati nella tabella?
    mary

    ps: comunque è un passo avanti :) grazie paolomath



  • di paolomath data: 30/07/2013 17:22:31

    cit: "poi si possono fare infinite variazioni. "

    Il pulsante l'ho messo solo per darti un'idea, potresti collegare la Sub alla modifica di una tabella ad esempio. L'impostazione dipende dall'uso che ne devi fare.

    Bye



  • di Textomb data: 30/07/2013 17:22:59

    Il metodo proposto da Paolo è perfetto ma ha lo svantaggio che se dimentichi di premere il pulsante sei fregata.
    Allora prova a prendere in considerazione l'evento Change del foglio attivo.
    Si verifica ogni volta che modifichi un valore e puoi associare la data attuale di sistema all'evento agganciata ad una cella.
    Per provarlo opera così.
    Come ti ha spiegato Paolo vai sul modulo VisualBasic (Alt-F11).
    In alto a sinistra trovi i nomi dei fogli presenti nella tua cartella.
    Selezioni con doppio clic il foglio di tuo interesse.
    Poi, in quell'area, incolli il codice qui sotto

    Private Sub Worksheet_Change(ByVal Target As Range)
    Range("A1").Value = Date
    End Sub

    Questo per es, ogni volta che si modifica un valore nel foglio, inserisce la data di sistema nella cella A1
    Così resti svincolata da pulsanti...



  • di maria angela (utente non iscritto) data: 30/07/2013 17:37:57

    fatto ma poi quando provo ad avviare la macro mi dice questo


    errore di compilazione
    prevista end sub





  • di Textomb data: 30/07/2013 18:19:25

    La macro non va avviata.
    Si avvia da sola ogni volta che modifichi i valori delle celle sul foglio...
    Strano che ti dica che manca End Sub.
    A me pare di averlo visto...



  • di maria angela (utente non iscritto) data: 31/07/2013 08:34:53

    ok l'ho impostata, domani vedrò se funziona e vi faccio sapere.
    Comunque siete davvero in gamba e questo sito lo metto tra i preferiti, sono certa che mi sarà utile


    grazie mary



  • di maria angela (utente non iscritto) data: 31/07/2013 08:44:27

    un ultima cosa, non ridete vi prego, ma devo iserire nella cella di destinazione del risultato della macro la formula di excell della data
    ossia nella cella A1 devo impostare =OGGI()?



  • di Textomb data: 31/07/2013 09:28:24

    nessuno ride se qualcuno chiede una mano.
    La cella A1 viene aggiornata automaticamente ogni volta che modifichi un dato nel foglio.
    Se non modifichi nulla, la cella A1 resta con il valore che c'era l'ultima volta.
    Quindi non devi scrivere nulla.



  • di maria angela (utente non iscritto) data: 31/07/2013 09:37:26

    perfetto allora domani provo il tutto e poi vi faccio sapere



  • di Textomb data: 31/07/2013 09:44:48

    Ho rivisto il codice che ti ho scritto ieri.
    ho dimenticato una cosa importante che ti chiedo di aggiungere.
    Ti riscrivo tutto per sicurezza.

    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Range("A1").Value = Date
    Application.EnableEvents = True
    End Sub

    Sostanzialmente devi impostare prima a False e poi a True l'evento Application.EnableEvents
    Se non fai così la modifica della data nella cella A1 richiama l'evento Change all'infinito. All'inizio potrebbe essere poco chiaro ma è così.
    Abbi fede.



  • di maria angela (utente non iscritto) data: 31/07/2013 13:29:05

    fatto, ma ora mi vengono due dubbi
    il primo
    devo lasciare prima riga
    sub e nome della macro
    ultima riga fine sub?

    oppure devo scrivere la tua formula togliendo le due righe che mi da in automatico? (inizio e fine macro)

    secondo dubbio (perchè ho provato)
    se devo sovrascrivere tutta la formula togliendo le due righe che mi da in automatico, alla fine non vedo più la macro tra l'elenco delle macro. Possibile?

    cambia se ti ricordo che è excell di office 2003?

    grazie per la pazienza textomb, e grazie a tutti coloro che mi seguono con pazienza
    mary



  • di Textomb data: 31/07/2013 13:42:10

    forse abbiamo fatto un pò di confusione...
    ripartiamo da zero.
    dunque tu hai il foglio1 del tuo excel su cui nella cella A1 hai l'esigenza di inserire la data odierna ma solo se modifichi un valore qualsiasi presente in quel foglio1.
    Se non modifichi nessun dato, la cella A1 deve restare immutata in base alla data registrata precedentemente.
    Per far questo ho suggerito di utilizzare l'Evento Change del foglio di lavoro. Quindi non devi scrivere nessuna formula nel foglio1 nella cella A1.
    Semplicemente entri sul modulo VisulBasic (Alt-F11). Selezioni con il doppio clic il foglio1 che trovi in alto a sinistra e sulla destra ti compare il modulo su cui puoi scrivere il codice da eseguire in base agli eventi che vorrai scegliere.
    Su quella finestra incolli tutto il codice che ti ho riscritto. Partendo da Private Sub..ecc ecc. e finendo con End Sub
    Semplicemente così.
    Prova e ci saprai dire.



  • di maria angela (utente non iscritto) data: 31/07/2013 13:48:17

    perfetto, la applico e domani ti faccio sapere



  • di ciccio (utente non iscritto) data: 31/07/2013 14:07:33

    ciao Textomb
    volendo inserire data e ora nella cella A1, ho modificato la procedura VBA ma sicuramente ho commesso un'errore di scrittura perché mi riporta sempre la data e non l'ora cosa dovrei modificare??


    grazie

     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Range("A1").Value = Date&Time
    Application.EnableEvents = True
    End Sub



  • di Textomb data: 31/07/2013 15:46:52

    non hai sbagliato nulla.
    quello che hai scritto funziona. Io lascerei uno spazio per migliorare la lettura tra Date & "" & Time.
    Probabilmente, la cella A1 del tuo foglio non è formattata per visualizzare data e orario. Ma solo la data.
    Vai su formato e imposta la cella per la data completa di orario.
    In alternativa puoi scrivere semplicemente Now... Più immediato.



  • di ciccio (utente non iscritto) data: 31/07/2013 16:01:18

    perfetto funziona alla grande
    do inserito i dati con gli spazi tra data e time
    buon pomeriggio
    grazie



  • di maria angela (utente non iscritto) data: 01/08/2013 09:42:26

    ..."Semplicemente entri sul modulo VisulBasic (Alt-F11). Selezioni con il doppio clic il foglio1 che trovi in alto a sinistra e sulla destra ti compare il modulo su cui puoi scrivere il codice da eseguire in base agli eventi che vorrai scegliere."...

    ho provato tutto ieri, ma a me quando faccio alt-f11 mi entra in visualbasic, ma tutto il resto non lo vedo.
    non ho nessun foglio in alto a sinistra su cui fare doppio clic
    per questo dicevo: cambia qualcosa se il mio excell è di office 2003? vecchio excell
    l'unica cosa che mi succede si apre una schermata (modulo) come un foglio excell senza fondo grigliato, e sopra c'è il menù dove posso scegliere manualmente STRUMENTI-MACRO si apre una maschera dove inserire il nome della macro e poi faccio crea.
    a questo punto mi apre un foglio dove predisposto ho gia una riga con scritto sub con il nome macro e sotto un altra riga con fine sub
    se sostituisco il tutto con la formula che mi hai dato, si cancella il mone della macro e non la vedo nel foglio di excell...
    ti prego tomb, aiutamiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
    mary



  • di paolomath data: 01/08/2013 09:53:23

    cit1: "Strumenti -> Macro -> Visual Basic Editor (Alt+[F11])

    Doppio click sul tuo foglio (Foglio1 o altro)

    Incolli nello spazio bianco del codice:"

    cit2: "Sulla sinistra dovresti avere una struttura ad albero con l'elenco dei fili/fogli aperti. Doppio click sul foglio a cui stai lavorando (dovrebbe già essere evidenziato)... poi procedi come sopra."

    Se vedi solo lo spazio grigio, vai su Visualizza (di VBA ovviamente) e seleziona Gestione progetti. Poi procedi. La versione di Excel non c'entra.

    Bye



  • di maria angela (utente non iscritto) data: 01/08/2013 10:47:11

    siiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

    sei grande paolo

    lo vedooooooooooooooooo finalmente

    ora provo a procedere incollando il codice di tomb
    ragazzi siete fortissimi

    provo e vi faccio sapere
    mary esterefatta



  • di maria angela (utente non iscritto) data: 01/08/2013 11:00:09

    RAGAZZI, SIETE STATI FANTASTICI, PROBLEMA RISOLTO, E LA FORMULA FUNZIONA PERFETTAMENTE

    CREDO SIA IL MIGLIOR SITO SU EXCELL CHE ABBIA FINORA TROVATO

    GRAZIE A PAOLO E A TOMB, GRAZIE A TUTTI

    SIETE FANTASTICI
    MARY