|
Rank: AiutAmico
Iscritto dal : 6/28/2005 Posts: 58
|
Salve,
ho realizzato con excel diverse tabelle contenente calcoli e nominativi. Queste si articolano su più fogli. Ogni foglio ha la caratteristica che determinati calcoli e situazioni devono avverarsi entro una certa data ( per esempio tizio deve versare o avere una certa somma entro una certa data ) ; chiedo: è possibile creare per ogni foglio di lavoro un qualcosa che mi avverte della scadenza ? Per esempio nel foglio 1 ho inserito in una cella la data 15/02/2007 vorrei che qualche giorno prima di questa data qualcosa mi avvisasse della scadenza per esempio colorando, ma non so se è possibile, la linguetta del foglio 1 o altro sistema facilmente visibile però.
Vi ringrazio dell’aiuto.
Giuseppe
|
|
|
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve Che versione hai di Excel?? se la tua versione è 2002 o successiva si può fare colorando i Tab del foglio se precedente bisogna ricorrere ad altro comunque sempre via macro. saluti Andrea
|
|
Rank: AiutAmico
Iscritto dal : 6/28/2005 Posts: 58
|
Si, è la versione 2002 di excel. I TAB sarebbero le linguette dei FOGLI ?
Giuseppe
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve i tab sono le linguette dei fogli: Visto che hai la suite 2002 dovrebbe andart bene una macro di questo tipo: Da inserire in ThisWorkbook nell'editor di VBA Private Sub Workbook_Open() x = Date For Each ws In Worksheets With ws If .[a1].Value - x <= 5 Then .Tab.ColorIndex = 3 Else .Tab.ColorIndex = -4142 End If End With Next End Sub I riferimenti bisogna che li cambi secondo le tue esigenze, in questa macro ho fatto controllare il valore della cella A1 su ciascun foglio con la data del giorno e se la differenza è uguale o minore di 5 giorni ti colora la linguetta di rosso. NB. non avendo la versione 2002 non l'ho provata ma dovrebbe funzionare. saluti Andrea
|
|
Rank: AiutAmico
Iscritto dal : 6/28/2005 Posts: 58
|
Ciao, non ho provato ancora perchè volevo chiederti come posso fare per inserire la macro in ThisWorkbook; inoltre visto che la scadenza riguarda più fogli, devo ripetere l'inserimento in ogno folgio ? Se la data di scadenza è messa in una cella diversa da A1 devo specificarla nella macro ?
Ti ringrazio dell'aiuto Ciao
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
<BLOCKQUOTE id=quote><font size=1 face="Sans Serif, Arial, Helvetica" id=quote>quote:<hr height=1 noshade id=quote> Ciao, non ho provato ancora perchè volevo chiederti come posso fare per inserire la macro in ThisWorkbook<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Sans Serif, Arial, Helvetica" size=2 id=quote> Fai un semplice copia incolla. Copia la macro che ti ho postato, apri Excel con Alt+F11 accedi all'editor di Vba Nella finestra "Progetto-Vba project" trovi VBAProject(nome del tuo file) nel menù a discesa troverai la voce "Thisworkbook" Fai un doppio clic su di esso e ti si aprirà a destra una pagina bianca sulla quale incolla il codice macro. <BLOCKQUOTE id=quote><font size=1 face="Sans Serif, Arial, Helvetica" id=quote>quote:<hr height=1 noshade id=quote> inoltre visto che la scadenza riguarda più fogli, devo ripetere l'inserimento in ogno folgio ? <hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Sans Serif, Arial, Helvetica" size=2 id=quote> No! la macro analizza tutti i fogli del file uno alla volta <BLOCKQUOTE id=quote><font size=1 face="Sans Serif, Arial, Helvetica" id=quote>quote:<hr height=1 noshade id=quote> Se la data di scadenza è messa in una cella diversa da A1 devo specificarla nella macro ? <hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Sans Serif, Arial, Helvetica" size=2 id=quote> Se la cella di confronto non è A1 ( ma deve essere nella stessa cella su tutti i fogli) devi cambiare questa riga: <font color=red>If .[a1].Value - x <= 5 Then </font id=red> dove al posto di A1 indichi la cella dove hai la data di confronto. saluti Andrea
|
|
Rank: AiutAmico
Iscritto dal : 6/28/2005 Posts: 58
|
Ho seguito alla lettera quanto specificato, ma i TAB non cambiano di colore. Probabilmente mi sfugge qualcosa....
Ti ringrazio comunque. Ciao
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve fa un test con questa macro: Sub Test() ActiveSheet.Tab.ColorIndex = 3 End Sub vedi se ti cambia il colore della linguetta in rosso. Saluti. Andrea
|
|
Rank: AiutAmico
Iscritto dal : 6/28/2005 Posts: 58
|
Nulla; non cambio di colore benchè abbia fatto il copia ed incolla come da te suggerito (nel thisworkbook). Premetto che uso la versione 2003 di excel.
Ciao
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve se clicchi con il pulsante destro sulla linguetta, ti consente di cambiare colore?? saluti Andrea
|
|
Rank: AiutAmico
Iscritto dal : 6/28/2005 Posts: 58
|
Si, tramite "colore linguetta scheda" .
Ciao
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve se così funziona non capisco dove possa essere il problema. Facciamo questa prova: Apri Excel Menu>Strumenti>Macro>Registra nuova macro nella finestra di registrazione in memorizza, scegli "Questa cartella di lavoro" clicca sulla linguetta del foglio e cambiagli colore. Menu>Strumenti>Macro>Interrompi registrazione. Con Alt+F11 accedi all'editor di VBA Troverai sulla sinistra una voce "Modulo1" fai un doppio clic su di esso e vedrai la registrazione dell'operazione appena fatta. Copiala e postala qui che vediamo di trovare la soluzione. saluti Andrea
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
scusa mi viene un sospetto, Che tipo di protezione hai attivato per le macro?? Se la protezione è impostata su Alto, non vengono eseguite. Controlla Menu Strumenti>Macro>Protezione se è impostata su Alto mettila su media. saluti Andrea
|
|
Rank: AiutAmico
Iscritto dal : 6/28/2005 Posts: 58
|
Ecco la macro registrata: Sub Macro1() ' ' Macro1 Macro ' Macro registrata il 06/02/2007 da Ufficio invalidi civili '
' Sheets("Foglio1").Select ActiveWorkbook.Sheets("Foglio1").Tab.ColorIndex = 50 Sheets("Foglio2").Select End Sub
La protezione per la macro era ed è attivata su bassa.
Ti ringrazio e scusami se ti stò dando dei problemi. Ciao Giuseppe
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve come puoi vedere le sintassi sono corrette. Facciamo la prova inversa: Riporta il colore della linguetta al colore standard dopo di che lancia la tua macro1 e vedi se opera il cambiamento di colore. Se tutto va bene riproviamo la macro iniziale costruendo un foglio con queste caratteristiche: 3 fogli visibili Foglio1-Foglio2- Foglio3 In ciascun foglio nella cella A1 scriviamo la data del 10/02/07 In ambiente Editor di VBA in ThisWorkbook ricopia la macro seguente: Da inserire in ThisWorkbook nell'editor di VBA Private Sub Workbook_Open() x = Date For Each ws In Worksheets With ws If .[a1].Value - x <= 5 Then .Tab.ColorIndex = 3 Else .Tab.ColorIndex = -4142 End If End With Next End Sub salva il file chiudi e riapri e vedi se la macro fa quanto dovrebbe saluti Andrea Edited by - a10n11 on 02/06/2007 15:10:24
|
|
Rank: AiutAmico
Iscritto dal : 6/28/2005 Posts: 58
|
Tutto Ok !!! Ho riscritto la macro riavviato come mi hai consigliato ed al riavvio tutto ok : i TAB si sono colorati di rosso. Perfetto. Grazie Andrea .
Ciao Giuseppe
|
|
Rank: AiutAmico
Iscritto dal : 6/28/2005 Posts: 58
|
Variante al tema dell'oggetto: è possibile alla scadenza (anzicchè colorare i TAB del Foglio) far partire automaticamente una email ? Se ho inserito una data per es. in A1 20/02/2007 e desidero che due giorni prima (variabile) parta un email all'interessato avvisandolo per es. che la sua assicurazione auto sta per scadere. Sarebbe veramente interessante quanto utile realizzare un'apllicazione del genere, ammesso che sia realizzabile.
Saluti giuseppe
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve Che gestore di posta usi?? O.E. oppure Microsoft Outlook. Con OE l'uso dell'istruzione SendMail rende un po confuso l'inserimento del Corpo del messaggio con MS Outlook è sicuramente meglio. saluti Andrea
|
|
Rank: AiutAmico
Iscritto dal : 6/28/2005 Posts: 58
|
Salve, uso OE ; però se è più semplice posso cambiare e usare Microsoft outlook; devo solo configurarlo perchè non ho mai pensato di usarlo.
saluti giuseppe
|
|
Guest |