• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

UDF in ander bestand gebruiken

Status
Niet open voor verdere reacties.

swanwil

Gebruiker
Lid geworden
30 aug 2010
Berichten
165
Besturingssysteem
Windows 11
Office versie
Office 365 NL
Hallo,

Men heeft voor ons een UDF (user defined feature) gemaakt (genaamd connect)die data ophaalt uit ons CRM systeem en in Excel weergeeft.
Als we dan een artikelnummer in kolom A hebben staan kan in kolom B met die connect functie bijv. de omschijving opgehaald worden uit CRM door te verwijzen naar de juiste tabelnaam en kolomnaam van CRM

In Excel hebben we diverse macro’s die in een persoonlijk bestand staan die op de achtergrond ook geopend wordt als ik in Excel werk. Hierdoor zijn deze macro’s in alle Excel documenten beschikbaar.

Als ik de UDF nu in mijn persoonlijk bestand plaats werkt de functie niet. Deze werkt alleen als de functie rechtstreeks in het bestand geplaatst wordt waarin gewerkt wordt.
Dit betekent dat de UDF in ieder bestand ingekopieerd moet worden om te kunnen gebruiken.
Nu is mijn vraag of het mogelijk is dat de UDF ook vanuit mijn persoonlijk bestand opgeroepen kan worden.

Onderstaand de UDF zonder onze inlog-gegevens;

'excel-sql
Public Function connect(crit As String)

Dim cn As New ADODB.Connection

Dim server As String, database As String, user As String, paswoord As String
server = "XXX"
database = "XXX"
user = "XXX"
paswoord = "XXXX"

On Error GoTo err1

cn.ConnectionString = "Provider=SQLOLEDB; Data Source=" & server & "; Initial Catalog=" & database & "; User ID=" & user & "; Password=" & paswoord & "; Trusted_Connection=no"

If cn.State = 0 Then cn.Open

Dim rec As New ADODB.Recordset
Dim bb As String
rec.Open crit, cn ', adOpenForwardOnly, adLockOptimistic

rec.MoveFirst
bb = rec(0)
rec.Close
cn.Close 'optioneel

connect = bb
Exit Function
 
Probeer eens met
Code:
=PERSONAL.XLSB!connect(......)
 
TOP
Werkt perfect.

Bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan