- Codice: Seleziona tutto
A1 b1
gennaio
dom 1 (in rosso)
lun 2 (in nero) 8
mar 8
mer 8
gio 8
ven (in grigio) 7
sab (in giallo)
non so piu come fare grazie
Moderazione: splittato e spostato da Programmazione.
Moderatori: Anthony47, Flash30005
A1 b1
gennaio
dom 1 (in rosso)
lun 2 (in nero) 8
mar 8
mer 8
gio 8
ven (in grigio) 7
sab (in giallo)
Public AnnoF As Integer, VettS(7), VettM(12) As String, VettF(11) As Date
Sub FormattaF()
Application.ScreenUpdating = False
Application.Calculation = xlManual
AnnoF = Mid(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 7, 4)
VettS(1) = "L"
VettS(2) = "M"
VettS(3) = "M"
VettS(4) = "G"
VettS(5) = "V"
VettS(6) = "S"
VettS(7) = "D"
VettM(1) = "GEN"
VettM(2) = "FEB"
VettM(3) = "MAR"
VettM(4) = "APR"
VettM(5) = "MAG"
VettM(6) = "GIU"
VettM(7) = "LUG"
VettM(8) = "AGO"
VettM(9) = "SET"
VettM(10) = "OTT"
VettM(11) = "NOV"
VettM(12) = "DIC"
For CCol = 1 To 12
Foglio = VettM(CCol)
Sheets(Foglio).Range("C1:C31").Interior.ColorIndex = xlNone
Sheets(Foglio).Range("D1:D31").ClearContents
Next CCol
Call Pasqua
Call Festivita
IniA = DateSerial(AnnoF, 9, 1)
FineA = DateSerial(AnnoF + 1, 8, 31)
For NM = IniA To FineA
Foglio = VettM(Month(NM))
If Foglio = "FEB" Then Worksheets(Foglio).Range("A29:B29").Value = ""
GS = VettS(Weekday(NM, 2))
GN = Day(NM)
If Worksheets(Foglio).Cells(GN, 3).Interior.ColorIndex = xlNone Then
If GS = "V" Then Worksheets(Foglio).Cells(GN, 3).Interior.ColorIndex = 15
If GS = "S" Then Worksheets(Foglio).Cells(GN, 3).Interior.ColorIndex = 6
If GS = "D" Then Worksheets(Foglio).Cells(GN, 3).Interior.ColorIndex = 3
Worksheets(Foglio).Cells(GN, 4).Value = 8
If GS = "V" Then Worksheets(Foglio).Cells(GN, 4).Value = 7
If GS = "S" Or GS = "D" Then Worksheets(Foglio).Cells(GN, 4).ClearContents
Else
If GS = "S" Then Worksheets(Foglio).Cells(GN, 3).Interior.ColorIndex = 35
If GS = "D" Then Worksheets(Foglio).Cells(GN, 3).Interior.ColorIndex = 45
End If
'If Worksheets(Foglio).Cells(GN, 1).Value <> GS Then
Worksheets(Foglio).Cells(GN, 1).Value = GS
Worksheets(Foglio).Cells(GN, 2).Value = GN
'Worksheets(Foglio).Range("D2:E31").ClearContents
'End If
Next NM
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
End Sub
Sub Festivita()
Worksheets("GEN").Cells(1, 3).Interior.ColorIndex = 7
Worksheets("GEN").Cells(6, 3).Interior.ColorIndex = 7
Worksheets("APR").Cells(25, 3).Interior.ColorIndex = 7
Worksheets("MAG").Cells(1, 3).Interior.ColorIndex = 7
Worksheets("GIU").Cells(2, 3).Interior.ColorIndex = 7
Worksheets("AGO").Cells(15, 3).Interior.ColorIndex = 7
Worksheets("AGO").Cells(16, 3).Interior.ColorIndex = 7 'Patrono
Worksheets("NOV").Cells(1, 3).Interior.ColorIndex = 7
Worksheets("DIC").Cells(8, 3).Interior.ColorIndex = 7
Worksheets("DIC").Cells(25, 3).Interior.ColorIndex = 7
Worksheets("DIC").Cells(26, 3).Interior.ColorIndex = 7
End Sub
Sub Pasqua()
Dim a, b, c, d, e, M, N As Integer
Dim Giorno, Mese, Anno As Integer
Anno = Val(Worksheets("Gen").Range("P1"))
Select Case Anno
Case 1583 To 1699
M = 22
N = 2
Case 1700 To 1799
M = 23
N = 3
Case 1800 To 1899
M = 23
N = 4
Case 1900 To 2099
M = 24
N = 5
Case 2100 To 2199
M = 24
N = 6
Case 2200 To 2299
M = 25
N = 0
Case 2300 To 2399
M = 26
N = 1
Case 2400 To 2499
M = 25
N = 1
Case Else
GPasqua = False
Exit Sub
End Select
a = Anno Mod 19
b = Anno Mod 4
c = Anno Mod 7
d = (19 * a + M) Mod 30
e = (2 * b + 4 * c + 6 * d + N) Mod 7
If d + e < 10 Then
Giorno = d + e + 22
Mese = 3
Foglio = "Mar"
Else
Giorno = d + e - 9
Mese = 4
Foglio = "Apr"
End If
GPasqua = DateSerial(Anno, Mese, Giorno)
GPtta = Day(GPasqua) + 1
Sheets(Foglio).Cells(GPtta, 3).Interior.ColorIndex = 7
End Sub
Private Sub Workbook_Open()
VettM(1) = "GEN"
VettM(2) = "FEB"
VettM(3) = "MAR"
VettM(4) = "APR"
VettM(5) = "MAG"
VettM(6) = "GIU"
VettM(7) = "LUG"
VettM(8) = "AGO"
VettM(9) = "SET"
VettM(10) = "OTT"
VettM(11) = "NOV"
VettM(12) = "DIC"
Call FormattaF
MeseA = Month(Now())
GA = Day(Now())
Worksheets(VettM(MeseA)).Select
Range("D" & GA).Select
End Sub
=SE(MESE(DATA(K1;2;29))=3;"";A366+1)
=SE(A367="";"";SE(VAL.ERRORE(CERCA.VERT(A367;$K$2:$L$15;2;0));SE(O(GIORNO.SETTIMANA(A367)=1;GIORNO.SETTIMANA(A367)=7);"festivo";SE(GIORNO.SETTIMANA(A367)=6;7;8));CERCA.VERT(A367;$K$2:$L$15;2;0)))
IniA = DateSerial(AnnoF, 9, 1)
FineA = DateSerial(AnnoF + 1, 8, 31)
IniA = DateSerial(AnnoF, 1, 1)
FineA = DateSerial(AnnoF, 12, 31)
Torna a Applicazioni Office Windows
Excel: formula automatica per evidenziare prodotto scaduto Autore: gamma_ray |
Forum: Applicazioni Office Windows Risposte: 3 |
Salvare file excel in formato html escludendo le immagini Autore: systemcrack |
Forum: Applicazioni Office Windows Risposte: 5 |
formula excel non visualizza risultato Autore: tommasog |
Forum: Applicazioni Office Windows Risposte: 6 |
Excel 2016 - Funzione SCARTO + INDIRETTO Autore: pl1957 |
Forum: Applicazioni Office Windows Risposte: 2 |
Visitano il forum: Marius44 e 49 ospiti