You are here:Home-Domande su Excel VBA e MACRO-[RISOLTO] Estrarre data di nascita dal CF: anni 1900 e 2000-Rispondi a: [RISOLTO] Estrarre data di nascita dal CF: anni 1900 e 2000
Rispondi a: [RISOLTO] Estrarre data di nascita dal CF: anni 1900 e 20002018-01-09T18:12:33+01:00

Home Forum Domande su Excel VBA e MACRO [RISOLTO] Estrarre data di nascita dal CF: anni 1900 e 2000 Rispondi a: [RISOLTO] Estrarre data di nascita dal CF: anni 1900 e 2000

BySalvBySalv
Amministratore del forum
    Post totali: 772

    Ciao Rex ti ho modificato un poco le tue macro, ma già erano funzionanti, è bastato inserire il parametro del Secolo.
    ecco il codice delle macro, la prima “ESTRAZIONE_DATE” la seconda la funzione di estrazione “ESTRAI_DATA1”, inseriscile in un modulo, ma attenzione se le inserisci nel file che hai inviato devono andare in sostituzione di quelle esistenti.

    Sub ESTRAZIONE_DATE()
    Dim j As Long
    Dim vCF As Variant, vFinale() As Variant
    
    With Sheets("Foglio1") 'nome tuo foglio
    vCF = .Range("D2:D" & .Range("D" & Rows.Count).End(xlUp).Row)
    ReDim vFinale(1 To UBound(vCF), 1 To 1)
    For j = 1 To UBound(vCF)
    vFinale(j, 1) = ESTRAI_DATA1(vCF(j, 1), 1900) ' messo 1900 per secolo
    Next j
    .Range("J2:J" & Rows.Count).ClearContents
    .Range("J2:J" & UBound(vCF) + 1).Value = vFinale
    End With
    End Sub
    
    Public Function ESTRAI_DATA1(ByVal CF As String, ByVal nSecolo As Integer) As Variant
    'nSecolo può essere 1900, 2000, ecc...
    Dim vMese As Variant
    vMese = Array("A", "B", "C", "D", "E", "H", "L", "M", "P", "R", "S", "T")
    On Error GoTo USCITA
    ESTRAI_DATA1 = DateValue(Val(Mid(CF, 7, 2)) + nSecolo & "/" & Application.WorksheetFunction.Match(Mid(CF, 9, 1), _
    vMese, 0) & "/" & Val(Mid(CF, 10, 2)) Mod 40)
    USCITA:
    If Err.Number <> 0 Then
    ESTRAI_DATA1 = "CODICE FISCALE NON VALIDO"
    End If
    End Function

    In questo modo non ti riporterà l’anno 2000, ma solo il 1900, quindi attenzione se ci sono nati nell’anno 2000 li riporterà come se fossero nati nel 1900, perciò se è nato nel 2001 lo riporterà come 1901.

    Io non capisco perchè vuoi l’anno a 4 cifre.

    Perciò ho detto che per adesso gli anni dovrebbero essere considerati a 2 cifre, non è stato ancora codificato nel Codice Fiscale l’anno 2000, secondo me l’anno dovrebbero considerarlo in “Esadecimale

    Ciao By Sal  :bye:

    Ciao By Sal (8-)
    se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie