Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Come evidenziare in grassetto le date dei giorni festivi

1,520 views
Skip to first unread message

magomerlino

unread,
Jun 15, 2008, 3:42:28 PM6/15/08
to
Nel foglio excel nella colonna F
ho delle date ed ho la necessità
di evidenziare in grassetto solo i giorni festivi
da calendario compreso il giorno della festa patronale
che ricorre il 9/5/08.
Forse una macro farebbe al caso mio.

Grazie!


elby

unread,
Jun 15, 2008, 7:23:34 PM6/15/08
to
Ciao magomerlino
Copia in un modulo standard il codice sottostante. Seleziona le celle
di interesse in colonna F ( la formula seguente assume ch epartano da
F1 ) e nella formattazione condizionale seleziona la formula è:
=GiornoNonLavorativo($F1;FALSO;"8-mag")
scegli il formato grassetto

Function GiornoNonLavorativo(dtmMiaData As Date, _
Optional SabatoNonLav As Boolean = False, _
Optional dtmPatrono As Date = "1-gen") As Boolean
GiornoNonLavorativo = False
Select Case Format(dtmMiaData, "d-mmm")
Case Is = "1-gen", "6-gen", "25-apr", "1-mag", "2-giu", "15-ago",
_
"1-nov", "8-dic", "25-dic", "26-dic", Format(dtmPatrono, "d-mmm")
GiornoNonLavorativo = True
Exit Function
End Select
Select Case WorksheetFunction.Weekday(dtmMiaData, 2)
Case Is = 7
GiornoNonLavorativo = True
Exit Function
Case Is = 6
If SabatoNonLav = True Then
GiornoNonLavorativo = True
Exit Function
End If
End Select
If WorksheetFunction.Weekday(dtmMiaData, 2) = 1 Then
If Month(dtmMiaData) = 3 Or Month(dtmMiaData) = 4 Then
If dtmMiaData = EASTER(Year(dtmMiaData)) + 1 Then
GiornoNonLavorativo = True
Exit Function
End If
End If
End If
End Function

Function EASTER(Yr As Integer) As Long
' Dal sito:
'http://longre.free.fr/pages/form/dateheure.htm#Jours_fériés.
Dim Century As Integer
Dim Sunday As Integer
Dim Epact As Integer
Dim Golden As Integer
Dim LeapDayCorrection As Integer
Dim SynchWithMoon As Integer
Dim N As Integer

Golden = (Yr Mod 19) + 1
Century = Yr \ 100 + 1
LeapDayCorrection = 3 * Century \ 4 - 12
SynchWithMoon = (8 * Century + 5) \ 25 - 5
Sunday = 5 * Yr \ 4 - LeapDayCorrection - 10
Epact = _
(11 * Golden + 20 + SynchWithMoon - LeapDayCorrection) Mod 30
If Epact < 0 Then Epact = Epact + 30
If (Epact = 25 And Golden > 11) _
Or Epact = 24 Then Epact = Epact + 1
N = 44 - Epact
If N < 21 Then N = N + 30
N = N + 7 - ((Sunday + N) Mod 7)
EASTER = DateSerial(Yr, 3, N)
End Function

Ciao Elio

filippo

unread,
Jun 16, 2008, 12:17:33 AM6/16/08
to
"magomerlino" <magomerl...@libero.it> ha scritto nel messaggio
news:Ege5k.9337$Ca.1...@twister2.libero.it...


lo puoi fare anche con "formattazzione condizionale"
ciao

p.s. se hai date nel formato xx/xx/xx ti posso dire come


magomerlino

unread,
Jun 16, 2008, 1:28:16 AM6/16/08
to
Si ho le date nel formato xx/xx/xx mi dici come fare?

"filippo" <filip...@tin.it> ha scritto nel messaggio
news:4855e94a$0$40315$4faf...@reader5.news.tin.it...

magomerlino

unread,
Jun 16, 2008, 9:06:57 AM6/16/08
to
Gentile elby, scusami la colonna di riferimento non è la F ma la E
nella macro quale stringa devo cambiare ?

Grazie!

"elby" <elib...@tin.it> ha scritto nel messaggio
news:b1b20192-db61-418a...@8g2000hse.googlegroups.com...

magomerlino

unread,
Jun 16, 2008, 1:50:09 PM6/16/08
to
Ho provato con la formattazione condizionale :
=GIORNO.SETTIMANA(N5)=1 e formato carattere grassetto,
funziona ma delle tre date uguali si formatta solo la prima le altre due
no!


"filippo" <filip...@tin.it> ha scritto nel messaggio
news:4855e94a$0$40315$4faf...@reader5.news.tin.it...

elby

unread,
Jun 16, 2008, 5:29:40 PM6/16/08
to
Ciao magomerlino

> Gentile elby, scusami la colonna di riferimento non è la F ma la E
> nella macro quale stringa devo cambiare ?
Nessuna. La funzione utente funziona alla stregua di una funzione
nativa di Excel
Qiundi funziona sia su foglio di lavoro ( restituisce vero o falso a
seconda che il giorno sia festivo o no) che nelle formule della
formattazione condizionale
Ovviamente devi mettere i riferimenti giusti. Nel tuo caso la formula
della formattazione condizionale diventa
=GiornoNonLavorativo($E1;FALSO;"8-mag")
Attenzione a mettere il segno $ alla sola sinistra di E
Il vantaggio dell'utilizzo di una formula definita dall'utente come
quella da me proposta rispetto a GIORNO.SETTIMANA e che ti intercetta
le festività italiane non domenicali, il lunedì di Pasqua; il sabato
( opzionale) e il patrono ( opzionale ) di qualsiasi anno. Copia il
codice sottostante perchè il precedente aveva un riporto a capo errato
per effetto del copia e incolla.
Ciao Elio

magomerlino

unread,
Jun 16, 2008, 6:52:06 PM6/16/08
to
Gentile elby, quando avvio la macro i giorni di maggio 2008 che mi
compaiono in grassetto sono:
6-7-8-10-11-14-15-16-17-18-20-21-25-26-27-31
mentre voglio che mi compaiano solo i festivi da calendario:
1-4-11-20-25 ed in più il 9 (festa patronale) Non l'8 mag .
Per la formattazione condizionale infatti ho inserito:
=GiornoNonLavorativo($E5;FALSO;"9-mag")
N.B. E5 in quanto i dati partono dalla riga 5


"elby" <elib...@tin.it> ha scritto nel messaggio

news:d7546202-7018-4ba6...@79g2000hsk.googlegroups.com...

magomerlino

unread,
Jun 16, 2008, 7:05:26 PM6/16/08
to
Scusami elby rettifico le date , i giorni di maggio 2008 che mi
compaiono in grassetto sono:
1-4-6-7-8-9-10-11-14-15-16-17-18-20-21-25-26-27-31

mentre voglio che mi compaiano solo i festivi da calendario:
1-4-11-20-25 ed in più il 9 (festa patronale) .
Ripeto Per la formattazione condizionale infatti ho inserito:

=GiornoNonLavorativo($E5;FALSO;"9-mag")
N.B. E5 in quanto i dati partono dalla riga 5


"magomerlino" <magomerl...@libero.it> ha scritto nel messaggio
news:q8C5k.9978$Ca.1...@twister2.libero.it...


> Gentile elby, quando avvio la macro i giorni di maggio 2008 che mi
> compaiono in grassetto sono:
> 6-7-8-10-11-14-15-16-17-18-20-21-25-26-27-31
> mentre voglio che mi compaiano solo i festivi da calendario:
> 1-4-11-20-25 ed in più il 9 (festa patronale) Non l'8 mag .
> >
>
>
>

elby

unread,
Jun 16, 2008, 8:06:19 PM6/16/08
to
Prova con la formula in formattazione condizionale:
=GiornoNonLavorativo($E5;FALSO;"9-mag")=VERO
Ho verificato e funziona con entrambe le formule ( Excel 2003 ):
solo 1, 4, 9, 11, 18, 25 di maggio 2008 sono tutti in grassetto
Ciao Elio

On 17 Giu, 01:05, "magomerlino" <magomerlino.1...@libero.it> wrote:
> Scusami elby rettifico le date , i giorni di maggio 2008 che mi
> compaiono in grassetto sono:
> 1-4-6-7-8-9-10-11-14-15-16-17-18-20-21-25-26-27-31
> mentre voglio che mi compaiano solo i festivi da calendario:
> 1-4-11-20-25 ed in più il 9 (festa patronale) .
> Ripeto Per la formattazione condizionale infatti ho inserito:
> =GiornoNonLavorativo($E5;FALSO;"9-mag")
> N.B. E5 in quanto i dati partono dalla riga 5
>

> "magomerlino" <magomerlino.1...@libero.it> ha scritto nel messaggionews:q8C5k.9978$Ca.1...@twister2.libero.it...


>
> > Gentile elby, quando avvio la macro i giorni di maggio 2008 che mi
> > compaiono in grassetto sono:
> > 6-7-8-10-11-14-15-16-17-18-20-21-25-26-27-31
> > mentre voglio che mi compaiano solo i festivi da calendario:
> > 1-4-11-20-25 ed in più il 9 (festa patronale) Non l'8 mag .
>

> > "elby" <elibu...@tin.it> ha scritto nel messaggio

filippo

unread,
Jun 16, 2008, 11:49:12 PM6/16/08
to
devi inserire la formula

=GIORNO.SETTIMANA(N5;2)=7

fai sapere se hai risolto. ciao

"magomerlino" <magomerl...@libero.it> ha scritto nel messaggio

news:lJx5k.99624$FR.3...@twister1.libero.it...

0 new messages