IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Web Service pour vérification de la TVA


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Par défaut Web Service pour vérification de la TVA
    Bonjours,

    La commission europeene met à disposition sur son site internet un WS qui permet de déterminer si un numéro de tva intracommunautaire est correcte ou pas et de vous renoyer nom et adresse du détenteur pour certain pays j'ai installer tout l'atirail miscrosoft suppémentaire pour utiliser les WS j'ai ensuite importer dans accès la définition XML suite à quoi un nouveau module est créer. Jusque la je n'ai pas e problème, après je suis bloque je ne vois pas commet faire appel dans un evenemnt à cette provédure en claire je voudais ajouter un bouton dans un formulaire passer le numéro de tva pour vérification et puis afficher un message si le numéro n'existe pas ou si il existe proposé d'importer les données fournie par le WS.

    Je crois que le plus simpe serais de créer une foncion avec 2 paramètre en entréer qui sont le pays et le numérode tva et qui renvois une structure avec toute les informations du site

    Pour plus d'info voila le code généré dans accès :
    Option Compare Database

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    '*****************************************************************
    'This class was created by the Web Service References Tool 2.0.
    '
    'Created: 10/24/2007 02:06:40 PM
    '
    'Description:
    'This class is a Visual Basic for Applications class representation of the Web service
    'as defined by <a href="http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl" target="_blank">http://ec.europa.eu/taxation_customs...ckVatPort?wsdl</a>.
    '
    'To Use:
    'Dimension a variable as new clsws_checkVatService, and then write code to
    'use the methods provided by the class.
    'Example:
    ' Dim ExampleVar as New clsws_checkVatService
    ' debug.print ExampleVar.wsm_checkVat("Sample Input")
    '
    'For more information, see Complex Types in Web Service References
    'Tool 2.0 Help.
    '
    'Changes to the code in this class may result in incorrect behavior.
    '
    '*****************************************************************
     
    'Dimensioning private class variables.
    Private sc_checkVatService As SoapClient30
    Private Const c_WSDL_URL As String = "http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl"
    Private Const c_SERVICE As String = "checkVatService"
    Private Const c_PORT As String = "checkVatPort"
    Private Const c_SERVICE_NAMESPACE As String = "urn:ec.europa.eu:taxud:vies:services:checkVat"
     
    Private Sub Class_Initialize()
        '*****************************************************************
        'This subroutine will be called each time the class is instantiated.
        'Creates sc_ComplexTypes as new SoapClient30, and then
        'initializes sc_ComplexTypes.mssoapinit2 with WSDL file found in
        'http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl.
        '*****************************************************************
     
        Dim str_WSML As String
        str_WSML = ""
     
        Set sc_checkVatService = New SoapClient30
     
        sc_checkVatService.MSSoapInit2 c_WSDL_URL, str_WSML, c_SERVICE, c_PORT, c_SERVICE_NAMESPACE
        'Use the proxy server defined in Internet Explorer's LAN settings by
        'setting ProxyServer to <CURRENT_USER>
        sc_checkVatService.ConnectorProperty("ProxyServer") = "<CURRENT_USER>"
        'Autodetect proxy settings if Internet Explorer is set to autodetect
        'by setting EnableAutoProxy to True
        sc_checkVatService.ConnectorProperty("EnableAutoProxy") = True
     
     
    End Sub
     
    Private Sub Class_Terminate()
        '*****************************************************************
        'This subroutine will be called each time the class is destructed.
        'Sets sc_ComplexTypes to Nothing.
        '*****************************************************************
     
        'Error Trap
        On Error GoTo Class_TerminateTrap
     
        Set sc_checkVatService = Nothing
     
    Exit Sub
     
    Class_TerminateTrap:
        checkVatServiceErrorHandler ("Class_Terminate")
    End Sub
     
    Private Sub checkVatServiceErrorHandler(str_Function As String)
        '*****************************************************************
        'This subroutine is the class error handler. It can be called from any class subroutine or function
        'when that subroutine or function encounters an error. Then, it will raise the error along with the
        'name of the calling subroutine or function.
        '*****************************************************************
     
        'SOAP Error
        If sc_checkVatService.FaultCode <> "" Then
            Err.Raise vbObjectError, str_Function, sc_checkVatService.FaultString
        'Non SOAP Error
        Else
            Err.Raise Err.Number, str_Function, Err.Description
        End If
     
    End Sub
     
    Public Sub wsm_checkVat(ByRef str_countryCode As String, ByRef str_vatNumber As String, ByRef dtm_requestDate As Date, ByRef bln_valid As Boolean, ByRef str_name As String, ByRef str_address As String)
        '*****************************************************************
        'Proxy subroutine created from <a href="http://ec.europa.eu/taxation_customs/vies/api/checkVatPort?wsdl" target="_blank">http://ec.europa.eu/taxation_customs...ckVatPort?wsdl</a>.
        '*****************************************************************
     
        'Error Trap
        On Error GoTo wsm_checkVatTrap
     
        sc_checkVatService.checkVat str_countryCode, str_vatNumber, dtm_requestDate, bln_valid, str_name, str_address
     
    Exit Sub
    wsm_checkVatTrap:
        checkVatServiceErrorHandler "wsm_checkVat"
    End Sub
    Et pour la doc voila le lien sur le site de EU : http://ec.europa.eu/taxation_customs/vies/faqvies.do voir point n° Q16

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 110
    Par défaut
    Bonjour,

    A la lecture du code (pas testé) il faut utiliser la sub wsm_checkVat avec les paramètres.

    Ces paramètres pouvant être tes controles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call wsm_checkVat(me.codepays,me.numTvaIntra,me.datevalid....)
    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Par défaut Reponce Final
    Salut a tous j'ai enfin trouver la solus pour utiliser ce ws

    alors en procédure sur clique sur un bonton par exemple vou indique le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Private Sub ChekVIE_Click()
    Dim VIE As New clsws_checkVatService 'clsws_checkVatService est le nom du module
    Dim Pays As String
    Dim TVA As String
    Dim DateDem As Date
    Dim Valide As Boolean
    Dim NomCompan As String
    Dim Adresse As String
     
    On Error GoTo ChekVIE_Click_Error
     
    'avant l'appel a la fonction les deux variable ci après doivent contenir une valeur
    Pays = Me.Pays_TVA.Column(1)
    TVA = Me.TVA
     
    'wsm_checkVat est la partie du modue qui verif la tva
    VIE.wsm_checkVat Pays, TVA, DateDem, Valide, NomCompan, Adresse
     
    'après appel a la procedure le info sont renvoyer dans les variables qu vous passer en paramètre
     
    On Error GoTo 0
    Exit Sub
     
    ChekVIE_Click_Error:
     
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure ChekVIE_Click of Document VBA Form_Sociétés"
    End Sub

  4. #4
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Par défaut Mise à jour
    Bonjour,

    Nos amis de l'UE on décidé de faire une mise à jour de leur service et Microsoft de suprimé le toolkit soap sur Office 2010. Quelqu'un pourrait'il m'aider pour intégré ce service nouvelle mouture sur office 2010?

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 241
    Par défaut
    Salut Rob81,

    J'avais, il y a qq tps, fait un code pour demander une vérification de validité du N° de TVA sur le site Vies.
    Il fonctionnait correctement, c'était du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    Dim strResponseText As String
        Dim strURL As String
        Dim strEnv As String
        Dim xmlhtp As MSXML2.XMLHTTP60
        Dim LimiteGauche As String
        Dim LimiteDroite As String
     
        Dim Message1 As String
        Dim Message2 As String
        Dim Message3 As String
        Dim Message4 As String
        Dim Message5 As String
     
        Dim TestReponse_SiteWeb As String
        strEnv = ""
     
        Code_Pays = UCase(CountryCode) & "-Belgique"
     
        'Création Enveloppe
        ' Création SOAP enveloppe pour soumission au Site Web Service Vies
        strEnv = "<?xml version=""1.0"" encoding=""utf-8""?>"
        strEnv = strEnv & "<SOAP-ENV:Envelope xmlns:ns0=""urn:ec.europa.eu:taxud:vies:services:checkVat:types"" "
        strEnv = strEnv & "xmlns:ns1=""http://schemas.xmlsoap.org/soap/envelope/"" "
        strEnv = strEnv & "xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" "
        strEnv = strEnv & "xmlns:SOAP-ENV=""http://schemas.xmlsoap.org/soap/envelope/"">"
        strEnv = strEnv & "  <SOAP-ENV:Header/>"
        strEnv = strEnv & "  <ns1:Body>"
        strEnv = strEnv & "   <ns0:checkVatApprox>"
        strEnv = strEnv & "    <ns0:countryCode>" & UCase(CountryCode) & "</ns0:countryCode>" 'Code pays du N° de TVA à contôrler
        strEnv = strEnv & "    <ns0:vatNumber>" & VatNumber & "</ns0:vatNumber>"       'Le N° de TVA à contôler
        strEnv = strEnv & "    <ns0:traderName/>"
        strEnv = strEnv & "    <ns0:traderCompanyType/>"
        strEnv = strEnv & "    <ns0:traderStreet/>"
        strEnv = strEnv & "    <ns0:traderPostcode/>"
        strEnv = strEnv & "    <ns0:traderCity/>"
        strEnv = strEnv & "    <ns0:requesterCountryCode>" & UCase(CountryCode) & "</ns0:requesterCountryCode>"   'Le code pays du demandeur - on met le même que celui à contrôler
        strEnv = strEnv & "    <ns0:requesterVatNumber>" & VatNumber & "</ns0:requesterVatNumber>"     'Le N° de TVA du demandeur - on met le même que celui à contrôler
        strEnv = strEnv & "   </ns0:checkVatApprox>"
        strEnv = strEnv & "  </ns1:Body>"
        strEnv = strEnv & "</SOAP-ENV:Envelope>"
     
        'L'URL address du site Vies
        strURL = "https://ec.europa.eu/taxation_customs/vies/vatRequest.html"
        Set xmlhtp = New MSXML2.XMLHTTP60
     
        'Enveloppe créée. ouverture du http POST
        xmlhtp.Open "POST", strURL, False
     
        xmlhtp.setRequestHeader "Content-Type", "text/xml"
     
        'MsgBox (strEnv) 'Message envoyé
     
        'Envoi de l'enveloppe
        xmlhtp.send strEnv
        strResponseText = xmlhtp.responseText 'Reponse du site WEB
     
        Debug.Print strResponseText
     
        '*****************************************************************'
        Dim Message, Title As String
     
        TestReponse_SiteWeb = ExtraireChaineDelimitee(strResponseText, "<faultstring", "</faultstring")
        MsgBox (strResponseText)  'Message reçu Valid = True Or False et nom et adresse à qui appartient le numéro de TVA
     
        If TestReponse_SiteWeb = "MS_UNAVAILABLE" Then
            Message = "Site indisponible"
        Else
            Validité_Num_TVA = ""
            Message1 = ExtraireChaineDelimitee(strResponseText, "<valid", "</valid")  'Recherche la balise <valid> et </valid> pour en extraire ce qu'il y a entre
            Message2 = ExtraireChaineDelimitee(strResponseText, "<traderName", "</traderName")  'Recherche la balise <traderName> et </traderName> pour en extraire ce qu'il y a entre
            Message3 = ExtraireChaineDelimitee(strResponseText, "<traderAddress", "</traderAddress")   'Recherche la balise <traderAddress> et </traderAddress> pour en extraire ce qu'il y a entre
            Message4 = ExtraireChaineDelimitee(strResponseText, "<traderCompanyType", "</traderCompanyType")  'Recherche la balise <traderCompanyType> et </traderCompanyType> pour en extraire ce qu'il y a entre
     
            'Message5 = ExtraireChaineDelimitee(strResponseText, "<traderAddress", "</traderAddress")   '(ExtraireChaineDelimitee(Message3))
     
            'Affichage des infos reçue du site WEB VIES concernant la validité du N° de TVA
           ' Message = GrasMsgBox("Numéro de TVA : " & CountryCode & " " & VatNumber & vbCrLf & _
                      "Est :           " & vbTab & Validité_Num_TVA & "@@" & vbCrLf & vbTab & _
                      "Nom company :   " & vbCrLf & vbCrLf & _
                       Message2 & vbCrLf & _
                       Message3)
     
     
            'Data pour affichage du résultat de validité du N° de TVA dans le F_
            Num_TVA_Request = CountryCode & " " & VatNumber
            Validite_Reponse_Request = Validité_Num_TVA
            Societe_Request = Message2
            Adresse_1_Request = Message3
            'Adresse_2_Request = Len(Message3)
            Company_Type_Request = Message4
     
            Debug.Print Message5
     
            'DoCmd.OpenForm ("F_Reponse_Validite_Num_TVA_Request"), acNormal
        End If
     
        Title = "Validité du Numéro de TVA sur le Site 'ec.europa.eu'"    ' Définit le titre.
     
        If Validité_Num_TVA = "Valide" Then
            Message = GrasMsgBox(vbTab & "Numéro de TVA : " & CountryCode & " " & VatNumber & vbCrLf & vbCrLf & vbTab & vbTab & _
                      "Est :           " & vbTab & Validité_Num_TVA & "@@" & vbTab & _
                      "Nom société :   " & vbCrLf & vbCrLf & _
                       Message2 & vbCrLf & _
                       Message3, vbInformation + vbOKOnly, Title)
        Else
            Message = GrasMsgBox(vbTab & "Numéro de TVA : " & UCase(Num_TVA_Request) & vbCrLf & vbTab & vbCrLf & vbTab & vbTab & _
                     "NON VALIDE" & "@@" & vbTab, vbCritical + vbOKOnly, Title)
        End If
        Set xmlhtp = Nothing
     
    End Function
    Mais il ne fonctionne plus, je vois que tu as réussi à faire fonctionner ta demande, j'ai copié le code mais il y a des erreurs, pourrais-tu m'aider ?

    Merci

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 241
    Par défaut
    Salut à tous,

    Je reviens avec ce post, car je viens de trouver ça
    https://viesapi.eu/docs/#link-generowanie-klucza
    C'est une API pour le site vies pour le contrôle des N° de TVA
    Si qq'un peut jeter un oeil et m'éclairer sur ce qu'il faut faire réellement

    Merci

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 241
    Par défaut
    Salut,

    C bon, j'ai réussi à réécrire le code et ça fonctionne.

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 110
    Par défaut
    Bonjour,

    Parfait ! N'hésite pas à partager ton code.

    ça sera surement utile à d'autre.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  9. #9
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Par défaut Vérification d'un N° de TVA intracommunautaire
    Citation Envoyé par electrosat03 Voir le message
    Salut,

    C bon, j'ai réussi à réécrire le code et ça fonctionne.
    J'essaie dans une BDD Access de vérifier les N° de TVA intracommunautaire; j'ai consulté le site VIES API de l'Union européenne, mais n'y comprends rien et plusieurs adresses référencées sont bloquées.
    Le code que j'avais écrit fonctionnait en 2020, mais actuellement il ne fonctionne plus. Quel que soit le N° de TVA testé, c'est comme si le N° de TVA n'était pas valide or je teste des numéros bien actifs.

    Serait-il possible de me transmettre le code que tu as réécrit et qui semble fonctionner ?

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 241
    Par défaut
    Salut, voici le code, j'ai attendu un peu avant de poster le code afin de vérifier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    Function Test_Num_TVA(ByVal CountryCode As String, ByVal VatNumber As String, ByVal requesterCountryCode As String, ByVal requesterVatNumber As String, ByRef VatData As Variant) As ErrObject
     
        Static http As Object
        Dim XMLdoc As Object
        Dim XMLrequest As String
        Dim checkVatApproxResponse As Object
        Dim soapFault As Object
        Dim responseData(0 To 7) As Variant
        Dim Message As String
        Dim Title As String
     
        Set XMLdoc = CreateObject("MSXML2.DOMDocument")
     
        If http Is Nothing Then Set http = CreateObject("MSXML2.XMLHTTP")
     
        On Error GoTo handler
     
     
        'checkVatApprox request - the Consultation Number is returned in the requestIdentifier element in the checkVatApproxResponse xml
        XMLrequest = "<?xml version='1.0' encoding='UTF-8' standalone='no'?>" & _
                    "<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'" & _
                    " xmlns:tns1='urn:ec.europa.eu:taxud:vies:services:checkVat:types'" & _
                    " xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'" & _
                    " xmlns:impl='urn:ec.europa.eu:taxud:vies:services:checkVat'" & _
                    " xmlns:apachesoap='http://xml.apache.org/xml-soap'" & _
                    " xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'" & _
                    " xmlns:xsd='http://www.w3.org/2001/XMLSchema'" & _
                    " xmlns:wsdlsoap='http://schemas.xmlsoap.org/wsdl/soap/'" & _
                    " xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>" & _
                    " <SOAP-ENV:Body>" & _
                    "  <tns1:checkVatApprox xmlns:tns1='urn:ec.europa.eu:taxud:vies:services:checkVat:types'>" & _
                    "   <tns1:countryCode>" & CountryCode & "</tns1:countryCode>" & _
                    "   <tns1:vatNumber>" & VatNumber & "</tns1:vatNumber>" & _
                    "   <tns1:requesterCountryCode>" & requesterCountryCode & "</tns1:requesterCountryCode>" & _
                    "   <tns1:requesterVatNumber>" & requesterVatNumber & "</tns1:requesterVatNumber>" & _
                    "  </tns1:checkVatApprox>" & _
                    " </SOAP-ENV:Body>" & _
                    "</SOAP-ENV:Envelope>"
     
        With http
            .Open "POST", "http://ec.europa.eu/taxation_customs/vies/services/checkVatService", False
            .send (XMLrequest)
            Debug.Print .responseText
        End With
     
     
     
        With XMLdoc
            .validateOnParse = False
            .SetProperty "SelectionLanguage", "XPath"
            .SetProperty "SelectionNamespaces", "xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' xmlns:resp='urn:ec.europa.eu:taxud:vies:services:checkVat:types'"
            .LoadXML http.responseText
        End With
     
        'Did a soap fault occur?
     
        Set soapFault = XMLdoc.SelectSingleNode("//soap:Envelope/soap:Body/soap:Fault")
     
        If soapFault Is Nothing Then
     
            'No - service returned successful response, so extract checkVatApproxResponse details
     
            Set checkVatApproxResponse = XMLdoc.SelectSingleNode("//resp:checkVatApproxResponse")
     
            'responseData(0) = True 'Success
     
            responseData(1) = checkVatApproxResponse.SelectSingleNode("resp:valid").text
     
            responseData(2) = checkVatApproxResponse.SelectSingleNode("resp:countryCode").text
     
            responseData(3) = checkVatApproxResponse.SelectSingleNode("resp:vatNumber").text
     
            responseData(4) = checkVatApproxResponse.SelectSingleNode("resp:traderName").text
     
            responseData(5) = checkVatApproxResponse.SelectSingleNode("resp:traderCompanyType").text
     
            responseData(6) = checkVatApproxResponse.SelectSingleNode("resp:traderAddress").text
     
            responseData(7) = checkVatApproxResponse.SelectSingleNode("resp:requestIdentifier").text
     
            Title = "Validité du Numéro de TVA sur le Site 'ec.europa.eu'"    ' Définit le titre de la MsgBox.
     
            If responseData(1) = True Then
                Dim RéponseVAT As String
     
                If responseData(1) = True Then
                    RéponseVAT = "Valide"
                Else
                    RéponseVAT = "Non valide"
                End If
     
                Message = MsgBox(vbTab & "Numéro de TVA : " & CountryCode & " " & VatNumber & vbCrLf & vbCrLf & vbTab & _
                          "Est : " & "Valide pour les transactions transfrontières dans l’UE" & vbTab & _
                          "Nom société :   " & vbCrLf & vbCrLf & _
                           responseData(4) & vbCrLf & _
                           responseData(6), vbInformation + vbOKOnly, Title)
            Else
                Message = MsgBox(vbTab & "Numéro de TVA : " & CountryCode & " " & VatNumber & vbCrLf & vbCrLf & vbTab & _
                          "Est : " & "Non valide pour les transactions transfrontières dans l’UE" & vbTab & _
                          "Nom société :   " & vbCrLf & vbCrLf & _
                           responseData(4) & vbCrLf & _
                           responseData(6), vbCritical + vbOKOnly, Title)
            End If
            Set http = Nothing
        Else
     
            'Yes - service returned a soap fault
     
            responseData(0) = False 'Failure
            responseData(1) = soapFault.SelectSingleNode("faultcode").text
            responseData(2) = soapFault.SelectSingleNode("faultstring").text
        End If
     
        VatData = responseData
        'Set GetVatNumberData = Nothing
     
        Exit Function
     
        'A run-time error occurred
    handler:
        'Set GetVatNumberData = err
     
    End Function

Discussions similaires

  1. Web Service pour vérifier un numéro INE
    Par Mose dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 21/12/2019, 17h21
  2. web service pour CDC application
    Par mimaaaa dans le forum Java ME
    Réponses: 1
    Dernier message: 24/02/2009, 14h36
  3. Web Services pour remplacer serveur IRC
    Par tuxmat dans le forum Services Web
    Réponses: 2
    Dernier message: 14/08/2008, 14h44
  4. Java et Vista / Web services pour les nuls
    Par Colargole dans le forum Général Java
    Réponses: 28
    Dernier message: 02/03/2008, 18h58
  5. Les Web Services pour access
    Par naphta dans le forum Contribuez
    Réponses: 0
    Dernier message: 08/01/2008, 22h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo