|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
TESTER NUMÉRO TVA INTRA-COMMUNAUTAIRE
Information sur la source
Description
Voici une fonction permettant de tester la structure d'un numéro de TVA intra communautaire. Nous ne pouvons pas aller beaucoup plus loin dans va vérification étant donné qu'il n’existe aucun algorithme accessible aux entreprises permettant de calculer automatiquement les numéros de TVA intracommunautaire et pouvant être intégré dans des systèmes informatiques de gestion. Les structures testées suivent les conventions du 1er juin 2005 pour les 25 Etats membres
Source
- ' =====================================================================================================
- ' isIntraComValide : Teste que la structure du numéro de TVA intra communautaire soit valide.
- '
- ' num : numéro de TVA intra Com.
- ' [siren] : cas pour la France afin d'afiner la vérification
- '
- ' Return : True/False
- '
- ' =====================================================================================================
- '
- ' Il n’existe aucun algorithme accessible aux entreprises permettant
- ' de calculer automatiquement les numéros de TVA intracommunautaire et
- ' pouvant être intégré dans des systèmes informatiques de gestion.
- '
- ' Mise à jour : 1er juin 2005 pour les 25 Etats membres
-
-
- Private Function isIntraComValide(ByVal num As String, Optional ByVal siren As String) As Boolean
-
- 'Nettoyer la chaine
- num = UCase(Replace(num, " ", ""))
-
- If Len(num) < 3 Then ' Il n'existe pas de code de moins de 3 char
- isIntraComValide = False
- Exit Function
- End If
-
- ' Découpage des données
- Dim cle As String: cle = Mid(num, 1, 2)
- Dim fin As String: fin = Mid(num, 3)
- Dim finLength As Integer: finLength = Len(fin)
-
-
- ' Vérifier à partir de la clé Pays
- Select Case cle
- Case "IE": isIntraComValide = (finLength = 8) ' Irlande
-
- Case "DK": isIntraComValide = (finLength = 8) And IsNumeric(fin) ' Danemark
- Case "FI": isIntraComValide = (finLength = 8) And IsNumeric(fin) ' Finlande
- Case "LU": isIntraComValide = (finLength = 8) And IsNumeric(fin) ' Luxembourg
- Case "MT": isIntraComValide = (finLength = 8) And IsNumeric(fin) ' Malte
- Case "SI": isIntraComValide = (finLength = 8) And IsNumeric(fin) ' Slovénie
- Case "HU": isIntraComValide = (finLength = 8) And IsNumeric(fin) ' Hongrie
-
- Case "CZ": isIntraComValide = (finLength >= 8 And finLength <= 10) And IsNumeric(fin) 'République tchèque
-
- Case "ES": isIntraComValide = (finLength = 9) ' Espagne
- Case "CY": isIntraComValide = (finLength = 9) ' Chypre : CY + 8 caractères numériques + 1 caractères alphabétiques
-
- Case "DE": isIntraComValide = (finLength = 9) And IsNumeric(fin) ' Allemagne
- Case "EL": isIntraComValide = (finLength = 9) And IsNumeric(fin) ' Grèce
- Case "GR": isIntraComValide = (finLength = 9) And IsNumeric(fin) ' Grèce
- Case "PT": isIntraComValide = (finLength = 9) And IsNumeric(fin) ' Portugal
- Case "EE": isIntraComValide = (finLength = 9) And IsNumeric(fin) ' Estonie
-
- Case "SK": isIntraComValide = ((finLength = 9) Or (finLength = 10)) And IsNumeric(fin) ' Slovaquie
- Case "LT": isIntraComValide = ((finLength = 9) Or (finLength = 12)) And IsNumeric(fin) ' Lituanie
-
- Case "GB": isIntraComValide = (((finLength = 9) Or (finLength = 4 And Mid(fin, 1, 1) = "9")) _
- And IsNumeric(fin)) Or (finLength = 5 And IsNumeric(Mid(fin, 3))) 'Grande-Bretagne
-
- Case "AT": isIntraComValide = (finLength = 9 And (Mid(fin, 1, 1) = "U") _
- And IsNumeric(Mid(fin, 2))) 'Autriche
-
- Case "PL": isIntraComValide = (finLength = 10) And IsNumeric(fin) ' Pologne
- Case "BE": isIntraComValide = (finLength = 10) And IsNumeric(fin) _
- And (Mid(fin, 1, 1) = "0") ' Belgique
-
- Case "LV": isIntraComValide = (finLength = 11) ' Lettonie
- Case "IT": isIntraComValide = (finLength = 11) And IsNumeric(fin) ' Italie
- Case "FR": isIntraComValide = (finLength = 11) And IsNumeric(fin) _
- And IIf(Len(siren), Mid(fin, 3) = siren, True) ' France
-
- Case "NL": isIntraComValide = (finLength = 12) ' Pays-Bas
- Case "SE": isIntraComValide = (finLength = 12) And IsNumeric(fin) ' Suède
- End Select
- End Function
' =====================================================================================================
' isIntraComValide : Teste que la structure du numéro de TVA intra communautaire soit valide.
'
' num : numéro de TVA intra Com.
' [siren] : cas pour la France afin d'afiner la vérification
'
' Return : True/False
'
' =====================================================================================================
'
' Il n’existe aucun algorithme accessible aux entreprises permettant
' de calculer automatiquement les numéros de TVA intracommunautaire et
' pouvant être intégré dans des systèmes informatiques de gestion.
'
' Mise à jour : 1er juin 2005 pour les 25 Etats membres
Private Function isIntraComValide(ByVal num As String, Optional ByVal siren As String) As Boolean
'Nettoyer la chaine
num = UCase(Replace(num, " ", ""))
If Len(num) < 3 Then ' Il n'existe pas de code de moins de 3 char
isIntraComValide = False
Exit Function
End If
' Découpage des données
Dim cle As String: cle = Mid(num, 1, 2)
Dim fin As String: fin = Mid(num, 3)
Dim finLength As Integer: finLength = Len(fin)
' Vérifier à partir de la clé Pays
Select Case cle
Case "IE": isIntraComValide = (finLength = 8) ' Irlande
Case "DK": isIntraComValide = (finLength = 8) And IsNumeric(fin) ' Danemark
Case "FI": isIntraComValide = (finLength = 8) And IsNumeric(fin) ' Finlande
Case "LU": isIntraComValide = (finLength = 8) And IsNumeric(fin) ' Luxembourg
Case "MT": isIntraComValide = (finLength = 8) And IsNumeric(fin) ' Malte
Case "SI": isIntraComValide = (finLength = 8) And IsNumeric(fin) ' Slovénie
Case "HU": isIntraComValide = (finLength = 8) And IsNumeric(fin) ' Hongrie
Case "CZ": isIntraComValide = (finLength >= 8 And finLength <= 10) And IsNumeric(fin) 'République tchèque
Case "ES": isIntraComValide = (finLength = 9) ' Espagne
Case "CY": isIntraComValide = (finLength = 9) ' Chypre : CY + 8 caractères numériques + 1 caractères alphabétiques
Case "DE": isIntraComValide = (finLength = 9) And IsNumeric(fin) ' Allemagne
Case "EL": isIntraComValide = (finLength = 9) And IsNumeric(fin) ' Grèce
Case "GR": isIntraComValide = (finLength = 9) And IsNumeric(fin) ' Grèce
Case "PT": isIntraComValide = (finLength = 9) And IsNumeric(fin) ' Portugal
Case "EE": isIntraComValide = (finLength = 9) And IsNumeric(fin) ' Estonie
Case "SK": isIntraComValide = ((finLength = 9) Or (finLength = 10)) And IsNumeric(fin) ' Slovaquie
Case "LT": isIntraComValide = ((finLength = 9) Or (finLength = 12)) And IsNumeric(fin) ' Lituanie
Case "GB": isIntraComValide = (((finLength = 9) Or (finLength = 4 And Mid(fin, 1, 1) = "9")) _
And IsNumeric(fin)) Or (finLength = 5 And IsNumeric(Mid(fin, 3))) 'Grande-Bretagne
Case "AT": isIntraComValide = (finLength = 9 And (Mid(fin, 1, 1) = "U") _
And IsNumeric(Mid(fin, 2))) 'Autriche
Case "PL": isIntraComValide = (finLength = 10) And IsNumeric(fin) ' Pologne
Case "BE": isIntraComValide = (finLength = 10) And IsNumeric(fin) _
And (Mid(fin, 1, 1) = "0") ' Belgique
Case "LV": isIntraComValide = (finLength = 11) ' Lettonie
Case "IT": isIntraComValide = (finLength = 11) And IsNumeric(fin) ' Italie
Case "FR": isIntraComValide = (finLength = 11) And IsNumeric(fin) _
And IIf(Len(siren), Mid(fin, 3) = siren, True) ' France
Case "NL": isIntraComValide = (finLength = 12) ' Pays-Bas
Case "SE": isIntraComValide = (finLength = 12) And IsNumeric(fin) ' Suède
End Select
End Function
Conclusion
Pour la France, il est préférable de passer le siren en parametre afin de completer la vérification. Pour tout autre pays, il suffit de passer le numéro à tester à la fonction. Pour consulter une base de données officielle afin de vérifier la concordance entre le nom d’une entreprise et son numéro de TVA intracommunautaire : http://www.europa.eu.int/comm/taxation_customs/vies/fr/vieshome.htm ++ Zlub
Historique
- 03 février 2006 02:55:17 :
- fautes de frappes ;)
- 03 février 2006 15:58:51 :
- Affiné pour la Grande-Bretagne
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Case TVA?? [ par gatsso ]
Bonjour a tous,je d'acheter le bouquin EXCEL2002 et je ne m'en sort pas c'est peut etre parce que j'ai EXCEL 97? bref je fait mon facturier et j'aimer
Maskedbox1 [ par petiflamand ]
Salut comment faire pour effacer un maskedboxen effet je rentre dedans un numero de tvaau format 123/123/123puis si il y a pas de tva pour un clientje
Je n'y connais rien et on me demande de faire des trucs pas possible... [ par kimenbo ]
Bonjour à tous et merci de m'apporter votre aide et soutien...On m'a demandé de développer une base access pour gérer des chantier
Clé TVA Intracommunautaire [ par MadJax ]
Bonjour à tous et bonne année, Ma question est simple. Je cherche un algo permettant de générer un N° TVA Intracommunautaire
comment eviter plein de if ??? dans une boucle [ par petiflamand ]
bonjour , je doit faire un calcul entre 300 a 400 ligne chauque jourdans c'est ligne j'ai des champ avec des numero entre 1 et 89je vourais savoir si
Probleme avec datagridviewcomboboxcell vb2005 [ par chris81 ]
bonjour,j'ai ub datagridview avec une comboboxcolumn que je remplit ainsi dans le chargement de ma page.[CODE] Dim MyTVA As New tvaDim Myds As
Calculer la TVA à 19.6% ou plus Simplement un pourcentage ? [ par Dri60 ]
Bonjour, je voulais savoir si il existe une Fonction pour Calculer la TVA à 19.6% ou plus Simplement un pourcentage ?Merci d'avance. Dri60
Requette imbriqué VB.net [ par perlitta3000 ]
BonjourSVP j'ai besoin de votre aide. Je extraire des donnees de plusieurs tables c-a-d je veux creer une sqlcommand qui contient une requette sql imb
Application de calcul de TVA au maroc avec VB2005 [ par etarik87 ]
bsr mes freres les developpeurs je suis un etudiant dans une ecole d'informatique appliquée a la gestion on a fait de la programmation c'est juste une
Problème arrondi calcul validité IBAN [ par fusuke ]
Bonjour à tous, ôh mes maîtres !!!! Je voudrais calculer la validité d'un IBAN.Pour celà, je me fie à un mode de calcul donné dans Wikipédia pour l
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|