Qualcuno ha fatto qualche routine per il controllo formale della partita iva in vb6 oppure in Vba?
Grazie.
Buongiorno,
allego una classe sviluppata in C# che esegue sia il controllo formale.
private bool _checkVatItaFormale(string _myCountry, string _myVatNumber)
{
bool _isValid = false;
Int16 _ris;
try
{
if (_myCountry.CompareTo("IT") == 0)
{
if (_myVatNumber.Length == 11)
{
Int32 s = 0;
int n = 1;
// sommare ad s le cifre di posto dispari (dalla prima alla nona)
while (n <= 9)
{
_ris = Convert.ToInt16(_myVatNumber.Substring(n - 1, 1));
s = s + _ris;
n = n + 2;
}
// per ogni cifra di posto pari (dalla seconda alla decima),
// moltiplicare la cifra per due e, se risulta piu' di 9, sottrarre 9;
// quindi aggiungere il risultato a s;
n = 2;
while (n <= 10)
{
_ris = Convert.ToInt16(_myVatNumber.Substring(n - 1, 1));
_ris = Convert.ToInt16(_ris * 2);
if (_ris > 9)
{
_ris = Convert.ToInt16(_ris - 9);
}
s = s + _ris;
n = n + 2;
}
// si calcola il resto della divisione di s per 10
var _resto = s % 10;
// calcolo ultima cifra della partita iva
Int16 c = Convert.ToInt16((_resto == 0) ? 0 : 10 - _resto);
_isValid = Convert.ToInt16(_myVatNumber.Substring(10, 1)) == c ? true : false;
}
}
}
catch
{
// noop
_isValid = false;
}
return _isValid;
}
Saluti
Emanuele
Grazie ma a me interessava in vb6 o vba.
Basta convertire il codice da C# (più che leggibile) a VB6
E’ stato un po complicato, ma ci sono riuscito grazie per il codice: