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