Finally I found a solution using the XMLHTTP
object
Sub Initialize
Dim xmlhttp As Variant
dim DOMDocument As Variant
Dim soapEnvelope As String
Dim webService As String
dim username As String
Dim password As String
Dim strxml As String
Set xmlhttp = CreateObject("Msxml2.XMLHTTP")
Set DOMDocument = CreateObject("MSXML2.DOMDocument")
webService = "http://server/path/service"
username = "user1"
password = "123456"
soapEnvelope ={<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:doc="http://checkYourOwnEnvelopeDetails.com">}
soapEnvelope =soapEnvelope & {<soap:Header/>}
soapEnvelope =soapEnvelope & {<soap:Body>}
' ...use SoapUI to know the exact envelop structure
soapEnvelope =soapEnvelope & {</soap:Body>}
soapEnvelope =soapEnvelope & {</soap:Envelope>}
DOMDocument.loadXML (soapEnvelope)
Call xmlhttp.open("POST", webService, False,username,password)
Call xmlhttp.setRequestHeader("Content-Type", "application/soap+xml;charset=UTF-8")
Call xmlhttp.setRequestHeader("Username", username)
Call xmlhttp.setRequestHeader("Password", password)
' again, use SoapUI to discover the exact name of the action
Call xmlhttp.setRequestHeader("SOAPAction", "urn:getListAll")
Call xmlhttp.send(DOMDocument.xml)
strxml = xmlhttp.responseText
...
End Sub