Il fatto e' che il tuo file non ha nessuna predisposizione per segnare un messaggio come "eseguito", come pure la scelta di quali messaggi presentare e' meramente legata alla data che il foglio riconosce.
Per quello che intuisco dovresti modificare l' approccio, passando da una tabella settimanale a una tabella sequenziale, dove i giorni e i messaggi si accodano ai precedenti, con la possibilita' /obbligo dell' utente di marcare come "eseguita" le singole attivita', e con la ricerca del messaggio fatta non per data ma partendo dal primo messaggio non spuntato in avanti fino alla data odierna.
Non so quale e' il processo che sta' dietro il foglio di lavoro, quindi non so apprezzare se si tratta di una semplificazione o una complicazione rispetto a quanto hai gia' fatto; dal punto di vista excel si tratterebbe di una semplificazione...
Ad esempio partendo da un foglio "Programma" di questo tipo
Uploaded with
ImageShack.ussi puo' facilmente ottenere questo elenco su un ipotetico foglio "Guida operativa":
Uploaded with
ImageShack.usSul foglio Programma le colonne B:D sono compilate a mano; la colonna F contiene X per indicare "Visto"; la colonna Seq# e' calcolata con la formula
- Codice: Seleziona tutto
=SE(E(F2="";B2<=OGGI());RIF.RIGA();"")
Sul foglio Guida Operativa, in B5:E5 ho usato rispettivamente le formule
- Codice: Seleziona tutto
=PICCOLO(Programma!A:A;RIF.RIGA(A1))
=SE(VAL.ERRORE($B5);"";CERCA.VERT($B5;Programma!$A:$D;2;0))
=SE(VAL.ERRORE($B5);"";CERCA.VERT($B5;Programma!$A:$D;3;0))
=SE(VAL.ERRORE($B5);"";CERCA.VERT($B5;Programma!$A:$D;4;0))
Le ultime tre sono uguali, a parte "l' indice".
L' indicazione "Visto" la matti con una macro da eseguire sul foglio Guida operativa del tipo
- Codice: Seleziona tutto
Sub visto()
If IsNumeric(Cells(ActiveCell.Row, "B").Value) Then
If Cells(ActiveCell.Row, "B").Value > 0 Then _
Sheets("Programma").Cells(Cells(ActiveCell.Row, "B"), "F").Value = "X"
End If
End Sub
Dopo aver inserito la macro in un "Modulo standard" del vba, vai su foglio Guida operativa e disegna un pulsante vicino all' elenco attivita' (trovi questo oggetto nella barra degli strumenti Modulo); assegnagli la macro Visto (ti sara' fatta una domanda specifica durante la creazione del pulsante).
A questo punto sul foglio Guida operativa
-mentre hai selezionato una riga corrispondente all' attivita' che vuoi marcare
-premi il pulsante
-la macro marca l' attivita' "eseguita" (colonna F di Programma)
-e l' attivita' scompare dall' elenco
Spero che quanto descritto possa essere di tuo interesse.
Ciao