+ Start a Discussion

Using WSDL/Excel 2007 VBA without the Salesforce Toolkit


From what I understand to use the salesforce office connecter toolkit, it needs to be installed on each users computer and thats not a path I'm able to take. I was hoping I could communicate with the API using the WSDL file instead.

I have generated the WSDL and saved it down locally.

I'm trying to initialize with the following calls:


Dim soapObj As New SoapClient30 soapObj.MSSoapInit "C:\WSDL\Salesforce.wsdl"



Excel returns an error that this is an improper procedure call or argument.

If someone can shed some light on this - I'd really appreciate it.



Message Edited by Hoff_I on 11-19-2009 09:00 AM
Just a quick reply: if you don't have the toolkit DLL installed locally (and a Reference set to it in your code) you won't be able to call the SoapClient30 object - if you try to compile your code I suspect you'll get an error - I hate to say it but I don't think there's a way around installing on each user's PC - although I think you can install the DLL only.  Good luck!



Thanks for the quick reply. Are you referring to the salesforce toolkit or the Microsoft Soap Type Library? I have a reference set to that in VBA and I believe thats what allows creation of the SoapClient30 object.




Sorry!  You're absolutely right - I was trying to get off a quick response withoout looking at our code and confused the two.  I'm having a bad day - just posted more bad info for you, then pulled it back...


In a big Access app we use the SF API DLL and somewrapper classes for our SFDC API interface, but use the MS Soap lib for some other web service calls.  Since I confused things for you a bit, I cracked the code and here's a quick look at what we've done with Soap.


We've been using the old Soap lib MSSOAP1.dll for a few years:



Dim SoapClient As MSSOAPLib.SoapClient
Set SoapClient = CreateObject("MSSOAP.SoapClient")
Call SoapClient.mssoapinit(strURL & "?wsdl")

(we're retrieving the URL from a table field).


Recently tried to go to SoapClient30 but dropped back to the old one, I think because we had deployment problems on our client's machines.  When we had SoapClient30 working in our dev environment, this was the code:



Dim SoapClient As MSSOAPLib30.SoapClient30
Set SoapClient = CreateObject("MSSOAP.SoapClient30")
Call SoapClient.mssoapinit(strURL & "?wsdl")

Whether that would work with the SFDC WSDL, I don't know.  I seem to recall we had some other complications with SoapClient30 but doubt that's relevant for you.


HTH! Good luck.  I'm going to get some coffee...


Rick N.



Thanks for your code suggestions. Neither works in Excel 2007 though. The library is called "MSOSOAPLib30" in 2007 but I can't seem to find any good documentation on how to use it on google. I've tried all the variants I can think of but nothing seems to work. VBA keeps raising an error that "ActiveX cannot create the control". I can't imagine that theres no way to interact with the API without the Salesforce toolkit.


Any other suggestions would be appreciated.






I have a similar issue. I am trying to connect to the Salesforce API from Excel using VBA. The Salesforce Office toolkit is not a viable route as it requires installation of the toolkit to all the individual computers which number in the hundreds.

Any tips or suggestions regarding this issue is appreciated.


Thank you




I would like to create a quote object in salesforce with data coming from Excel.

The office connector and toolkit not provide access to quote object.

So my idea is to generate entreprise wsdl and call with Excel soap class.

I am looking for feedback on this methodology.