VBA uit apart doc / dot oproepen en uitvoeren

Status
Niet open voor verdere reacties.

Mestreech

Gebruiker
Lid geworden
15 jun 2007
Berichten
20
Ik heb legio dotm gemaakt waarbij 1 deel voor alle sjablonen hetzelfde is.
Er wordt via een function een koppeling naar een oracle database gemaakt en met de eerder opgegeven data worden de naw gegevens uit de database gehaald welke vervolgens weer verder verwerkt worden in het sjabloon.

Wat wil ik:
Dat stukje VBA in een aparte plaats buiten het sjabloon zetten als bv dotm of zo.
Dan vanuit het sjabloon deze dotm oproepen en dan in het sjabloon er verder mee werken.
Voordeel:
Als er iets in de VBA code wijzigt, dan hoef ik dit maar op 1 plek te doen ipv alle sjablonen aan te passen.
Ik heb dit wel eens gedaan meet stukken tekst die voor alle sjablonen van toepassing zijn (dat ging goed) echter nu meet vba code wat buiten het sjabloon moet staan en ook uitgevoerd moet worden lukt me dit niet

De code om de function op te roepen is nu:
Code:
AdresString = getNAWFromCompas(PENSIOENFONDSNR, TxtAdminNr, TxtLw)

De Function is als volgt:
Code:
Private Function getNAWFromCompas(PF As String, Admin As String, LW As String) As String
    Dim http As New WinHttp.WinHttpRequest
    Dim URL As String
    Dim Envelope As String
    Dim Response As String
    
    Dim nPF As String
    Dim nAdmin As String
    Dim nLW As String
    
    nPF = Replace(LTrim(Replace(PF, "0", " ")), " ", "0")
    nAdmin = Replace(LTrim(Replace(Admin, "0", " ")), " ", "0")
    nLW = Replace(LTrim(Replace(LW, "0", " ")), " ", "0")
    
    Dim SearchBeginTag As String
    Dim SearchEndTag As String
    
    SearchBeginTag = "<result>"
    SearchEndTag = "</result>"
    
    Dim beginIndex As Integer
    Dim endIndex As Integer
    
    URL = "http://wmacro_p.azl.local:7001/azlwbs_naw-azlwbs_naw-context-root/azlwbs_naw_TopLinkPlSqlProviderService"
    Envelope = "<?xml version=""1.0"" encoding=""utf-8""?><soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/""><soap:Body><ns1:nwpk999GetNaamAdresRegel xmlns:ns1=""http://azlwbs_naw/Azlwbs_naw_TopLinkPlSqlProviderServiceService""><ns1:I_REQUEST>" + nPF + "_" + nAdmin + "_" + nLW + "</ns1:I_REQUEST></ns1:nwpk999GetNaamAdresRegel></soap:Body></soap:Envelope>"
    
    Call http.Open("POST", URL)
    
    http.SetRequestHeader "Content-Type", "text/xml"
    http.SetRequestHeader "SOAPACTION", "http://azlwbs_naw/Azlwbs_naw_TopLinkPlSqlProviderServiceService:nwpk999GetNaamAdresRegel"
    
    http.Send Envelope
    
    Response = http.ResponseText
        
    beginIndex = InStr(1, Response, SearchBeginTag, vbTextCompare) + Len(SearchBeginTag)
    
    If (beginIndex = Len(SearchBeginTag)) Then
      getNAWFromCompas = ""
    Else
        endIndex = InStr(1, Response, SearchEndTag, vbTextCompare) - 1
        getNAWFromCompas = Mid(Response, beginIndex, endIndex - beginIndex + 1)
    End If
End Function
Deze function wil ik dus buiten het sjabloon leggen in een apart dotm, docm of zo.
Tevens moet daarna de aanroep veranderen zodat deze de buitenliggende function oproept en daarna weer terugkomt in de macro waar we mee bezig zijn.


Kan dit??
Wie wilt me helpen om dit tot een goed einde te brengen

BVD Mestreechteneer
 
Laatst bewerkt door een moderator:
Thnx, zal er volgende keer aan denken
 
Laatst bewerkt door een moderator:
Als je een .docm bestand laadt als AddIn (Developer/addins) zijn alle funkties in de addin voor alle andere bestanden toegankelijk.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan