Excel Forum Per condividere esperienze su Microsoft Excel

Codice Fiscale

  • Messaggi
  • OFFLINE
    peppe.Teano
    Post: 38
    Registrato il: 15/06/2005
    Città: TEANO
    Età: 68
    Utente Junior
    00 02/11/2006 19:15
    Qualche amico mi avea inviato ena funzione per calcolare il Cod. Fisc. Causa formattazione ho perso il prezioso suggerimento.
    Adesso mi serve che quell'amico me lo re-invii.
    In futuro starò più attento.
  • OFFLINE
    T3T
    Post: 318
    Registrato il: 26/11/2005
    Città: ROMA
    Età: 71
    Utente Senior
    Excel 2003 - 2010
    00 02/11/2006 23:28
    Codice Fiscale
    Ciao peppe,

    ti giro una funzione per il calcolo del CF che ho reperito tempo fa (non so se nel forum stesso o in rete) che mi sembra funzionare egregiamente, poi dai anche una guardata al seguente link:

    http://www.pug.univ.trieste.it/docenti/economia/merson/merson.htm



    Codice
    ------------------------

    Public Function CODFISC(Cogn, Nome, Data, SS, CodCom)
    Dim cognome As String
    Dim cons As String * 21
    Dim Pari1 As String * 26
    Dim Pari11 As String * 10
    Dim dispari As String * 52
    Dim cfp As String
    Dim riempie As String * 3
    Dim s As Integer
    Dim p As Integer
    fi1 = Cogn
    fi2 = Nome
    fi3 = Data
    fi4 = SS
    fi5 = CodCom
    cons = "BCDFGHLMNPQRSTVWKXYJZ"
    Voca = "AEIOU"
    Mese = "ABCDEHLMPRST"
    Pari1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    Pari11 = "0123456789"
    dispari = "0100050709131517192102041820110306081214161022252423"
    riempie = "XXX"
    fi1 = UCase(Trim(fi1))
    fi2 = UCase(Trim(fi2))
    fi4 = UCase(Trim(fi4))
    lu1 = fi1
    nu1 = Len(lu1)
    lu2 = fi2
    nu2 = Len(lu2)
    cognome = " "
    For i = 1 To nu1 Step 1
    co = Mid(lu1, i, 1)
    For N = 1 To Len(cons)
    If co = Mid(cons, N, 1) Then
    cognome = cognome + co
    End If
    Next N
    Next i
    hu11 = Trim(cognome)
    nu11 = Len(hu11)
    cognome = " "
    If nu11 < 3 Then
    For i = 1 To nu1 Step 1
    co = Mid(lu1, i, 1)
    For N = 1 To Len(Voca)
    If co = Mid(Voca, N, 1) Then
    cognome = cognome + co
    End If
    Next N
    Next i
    End If
    cognome = Trim(cognome)
    lu1 = hu11 + cognome
    lu1 = Left(lu1, 3)
    lu1 = Trim(lu1)
    nu11 = Len(lu1)
    If nu11 < 3 Then
    lu1 = lu1 + Mid(riempie, 1, (3 - nu11))
    End If
    Nome = " "
    cont = 0
    For i = 1 To nu2 Step 1
    co = Mid(lu2, i, 1)
    For N = 1 To Len(cons)
    If co = Mid(cons, N, 1) Then
    cont = cont + 1
    End If
    Next N
    Next i
    coris = " "
    If cont > 3 Then
    Nome = " "
    cont = 0
    For i = 1 To nu2 Step 1
    co = Mid(lu2, i, 1)
    For N = 1 To Len(cons)
    If co = Mid(cons, N, 1) Then
    cont = cont + 1
    If cont = 2 Then
    coris = co
    Else
    Nome = Trim(Nome + co)
    End If
    End If
    Next N
    Next i
    Else
    Nome = " "
    cont = 0
    For i = 1 To nu2 Step 1
    co = Mid(lu2, i, 1)
    For N = 1 To Len(cons)
    If co = Mid(cons, N, 1) Then
    Nome = Trim(Nome + co)
    End If
    Next N
    Next i
    End If
    hu11 = Trim(hu11)
    hu11 = Mid(Nome, 1, 3)
    nu11 = Len(hu11)
    If nu11 < 3 Then
    If coris = "" Then
    hu11 = hu11 + Trim(coris)
    End If
    End If
    nu11 = Len(Trim(hu11))
    If nu11 < 3 Then
    Nome = " "
    For i = 1 To nu2 Step 1
    co = Mid(lu2, i, 1)
    For N = 1 To Len(cons)
    If co = Mid(Voca, N, 1) Then
    Nome = Trim(Nome + co)
    End If
    Next N
    Next i
    End If
    lu2 = Trim(Mid(hu11 + Nome, 1, 3))
    If Len(lu2) < 3 Then
    lu2 = lu2 + Mid(riempie, 1, (3 - Len(lu2)))
    End If
    giorno = Left(fi3, 2)
    SS = Mid(fi3, 4, 2)
    gi = LTrim(giorno)
    If fi4 = "F" Then
    g = Val(fi3) + 40
    gi = LTrim(Str(g))
    End If
    anno = Right(fi3, 2)
    Ms = Mid(Mese, SS, 1)
    CF = lu1 + lu2 + anno + Mid(Mese, SS, 1) + gi + fi5
    a = 0
    For i = 2 To 14 Step 2
    cfp = Mid(CF, i, 1)
    If InStr(Pari1, cfp) > 0 Then
    a = a + InStr(Pari1, cfp) - 1
    Else
    a = a + InStr(Pari11, cfp) - 1
    End If
    Next
    b = 0
    ric = 0
    For i = 1 To 15 Step 2
    cfp = Mid(CF, i, 1)
    If InStr(Pari1, cfp) > 0 Then
    ric = InStr(Pari1, cfp) * 2 - 1
    b = b + Val(Mid(dispari, ric, 2))
    Else
    ric = InStr(Pari11, cfp) * 2 - 1
    b = b + Val(Mid(dispari, ric, 2))
    End If
    Next
    c = a + b
    d = Int(c / 26)
    e = c - d * 26
    finale = Mid(Pari1, e + 1, 1)
    CF = CF + finale
    CODFISC = CF
    End Function

    -------------------------------
    Ciao

    mario
    . .
    Se insisti e resisti
    raggiungi e conquisti.
  • OFFLINE
    T3T
    Post: 319
    Registrato il: 26/11/2005
    Città: ROMA
    Età: 71
    Utente Senior
    Excel 2003 - 2010
    00 02/11/2006 23:33
    p.s.: codice fiscale
    guardando meglio ho visto che dovrebbe essere opera del solito mitico By Sal.

    ciao
    . .
    Se insisti e resisti
    raggiungi e conquisti.
  • OFFLINE
    APOBEN64
    Post: 502
    Registrato il: 12/07/2005
    Città: LA SPEZIA
    Età: 60
    Utente Senior
    00 03/11/2006 08:33
    Ciao,

    prova a vedere questo link, ci sono due files di esempio anche per la versione XP, nel caso l'avessi .



    http://ennius.interfree.it/vba/vba135.htm
  • OFFLINE
    by sal
    Post: 856
    Registrato il: 14/11/2004
    Utente Senior
    Office 2019
    00 03/11/2006 09:02
    File Codice Fiscale
    Ciao Peppe, ecco il file del Codice Fiscale, l'ho caricato su un sito hosting, per non riempire il mio spazio. ne ho poco.

    Ecco il file del Codice Fiscale

    Per scaricarlo dovete andare a fondo pagina scrivere il numero e fare l'upload.
    per chi possa servire Ciao [SM=x423028]

    [Modificato da by sal 03/11/2006 9.04]

    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • OFFLINE
    peppe.Teano
    Post: 39
    Registrato il: 15/06/2005
    Città: TEANO
    Età: 68
    Utente Junior
    00 03/11/2006 14:43
    Grazie a Tutti
    Era proprio questo il file perso.
    Grazie.
  • OFFLINE
    trakko
    Post: 111
    Registrato il: 01/06/2004
    Città: TORINO
    Età: 52
    Utente Junior
    medio
    00 04/11/2006 11:44
    Scusate se mi intrometto, ma io ho una versione "più grafica" per lo stesso scopo.
    Il codice non è mio, ma ho curato la parte grafica.
    Se volete....

    Ciao!

    [SM=x423025]
  • OFFLINE
    joedibrutto
    Post: 0
    Registrato il: 20/02/2018
    Città: BRESCIA
    Età: 52
    Utente Junior
    2016
    00 20/02/2018 09:10
    grazie
    grazie [SM=g27811]