si grazie pippolik
il tutto funge, eliminando anche le due funzioni UltimodelMese e LapYear, ma l'errore rimane. Difatti facendo partire la sub inserisce la data in formato mese/giorno/anno fino al giorno 13 poi ritorna nel formato che voglio giorno/mese/anno :master:.
Riposto il codice modificato:
codice:
Private Sub CommandButton1_Click() 'INSERISCI MESE
Dim M As Integer
Dim A As Integer
Dim J As Integer
Dim Giorni As Integer
Dim chegiorno As String
Dim firstrow As Integer
Dim firstcol As Integer
Dim R As Integer
Dim C As Integer
If ComboBox1.Text = "" Then
MsgBox "Nessun MESE selezionato." & Chr(13) & "Seleziona il MESE dall'elenco a discesa."
ElseIf ComboBox2.Text = "" Then
MsgBox "Nessun ANNO selezionato." & Chr(13) & "Seleziona l'ANNO dall'elenco a discesa."
Else: Dim DataIn As Object
A = ComboBox2.Value ' prendi l'anno
M = PrendiMese(ComboBox1.Value) ' prendi il mese
Set zona = Range(Range("A1"), Range("A1").End(xlDown)).Rows
DataBox = CDate(CStr(M) & "/" & CStr(A))
firstrow = 1
firstcol = 1
R = firstrow
C = firstcol
For Each DataIn In zona
If DataIn = DataBox Then
MsgBox "Già cè"
Exit Sub
Else: MsgBox "Non cè"
Giorni = Day(DateSerial(A, M + 1, 0))
For J = 1 To Giorni
chegiorno = CDate(CStr(J) & "/" & CStr(M) & "/" & CStr(A))
Cells(R, C) = chegiorno
Cells(R, C + 1) = "gigi"
Cells(R, C + 2) = "pino"
Cells(R, C + 3) = "ninos"
R = R + 1
Next
MsgBox "Completato!"
Exit Sub
End If
Next
End Sub
Function PrendiMese(strItem As String) As Integer
Select Case LCase(strItem)
Case "gennaio"
PrendiMese = 1
Case "febbraio"
PrendiMese = 2
Case "marzo"
PrendiMese = 3
Case "aprile"
PrendiMese = 4
Case "maggio"
PrendiMese = 5
Case "giugno"
PrendiMese = 6
Case "luglio"
PrendiMese = 7
Case "agosto"
PrendiMese = 8
Case "settembre"
PrendiMese = 9
Case "ottobre"
PrendiMese = 10
Case "novembre"
PrendiMese = 11
Case "dicembre"
PrendiMese = 12
Case Else
PrendiMese = 0
End Select
End Function