Hoe oproepen sub/functie vanuit ander VBProject

Status
Niet open voor verdere reacties.

VBAmateur

Gebruiker
Lid geworden
11 feb 2010
Berichten
18
Ik heb twee excel (2007) bestanden "map1.xlsm" en "map2.xlsm" met elk een VBA-module respectievelijk "Module1" (Map1) en "Module2" (Map2). In Module2 is een sub "DoeWat" gedeclareerd. Beide bestanden zijn geopend.
De vraag is of het mogelijk is de routine "DoeWat" op te roepen vanuit Module1 en zo ja, hoe dat moet.
In de helptekst staat dat je dat zo moet doen: '[map2.xlsm].[Module2].DoeWat', maar dat resulteert in een compileerfout.

Graag advies; bij voorbaat dank.
 
Code:
Sub Start()

    Run "book2.xlsm!DoeWat"

End Sub

Wigi
 
:(
Wat maakt dat uit?

Beste Wigi,

:confused: Nou, op zich niets. Ik ben bezig een Excel-bestand te maken dat een grote groep collega's als sjabloon gaat gebruiken. Daarnaast zijn er nog andere bestanden mee gemoeid, waarin gegevens opgeslagen worden en zo. Mijn bedoeling is een soort Macro-bibliotheek te maken in een separaat excelbestand(*) om te voorkomen dat dat excelsjabloonbestand te groot wordt en ik routines dubbel moet gaan schrijven. Maar vooral om softwareupdates te kunnen implementeren, die met terugwerkende kracht ook in de reeds gemaakte excelbestanden (kopieën van het moederbestand) van toepassing zijn.

Ik ging er van uit dat het aanroepen van routines uit ander VBProjecten objectgeörienteerd geprogrammeerd zou kunnen worden, zoals de helptekst suggereert, maar dat is dus blijkbaar niet zo. :( Mijn gevoel zegt me dat de run-instructie niet 100% hetzelfde werkt als de call-instructie; ik wil zoveel als mogelijk voorkomen tegen onvermoede (voor mij althans) beperkingen op te lopen.

:o Maar nu ik het woord 'sjabloon' heb gebruikt, heb ik waarschijnlijk ook al de oplossing gevonden voor mijn probleem. Eerst nog maar wat experimenteren met sjabloonbestanden dus.:)

Maar misschien heb jij nog goede tips? Bij voorbaat dank.

Groet,

VBAmateur

(*) Ik werk in een aan alle kanten beveiligde bedrijfsnetwerkomgeving (server based), dus kan geen dll's of wat dan ook installeren.

P.S. Heb je website ook al bezocht; ziet er goed uit :thumb:
 
Laatst bewerkt:
Dan kun je het beste met add-ins werken (xla) in plaats van sjablonen (xlt).
 
elk antwoord levert een nieuwe vraag op

Dan kun je het beste met add-ins werken (xla) in plaats van sjablonen (xlt).

Dank je SNB, ik was er inmiddels ook achter gekomen dat xlt's niet net zo werken als dot's en dat invoegtoepassingen (xll's in 2007?) een betere optie zijn.
Alleen kan ik die niet aanmaken met VBA2007 (althans niet voor zover mijn kennis rijkt :o). Bovendien blijft het probleem aanwezig, dat ik die xla's / xlll's niet kan installeren op ons server based computing bedrijfsnetwerk (waar ik een 'gewone' :( rechtenloze gebruiker ben); of is dat niet nodig (wederom gebrek aan kennis)?

Kun je (of Wigi?) mij iets meer toelichting geven hoe ik die xla's kan maken en toepassen met VBA? Alvast bedankt :thumb:

VBAmateur
 
Speciaal voor jou geschreven: kijk eens hier.
Althans voor zover mijn kennis reikt
 
Top!

Speciaal voor jou geschreven: kijk eens hier.
Althans voor zover mijn kennis reikt

SUPER! :thumb: :thumb: :thumb: Hier kan ik echt wat mee.
Excuses voor mijn grammatica :shocked:; had niet mogen gebeuren :o. Bedankt voor de correctie :D.

VBAmateur
 
xla's niet in een beveiligd bedrijfsnetwerk

Speciaal voor jou geschreven: kijk eens hier.
Althans voor zover mijn kennis reikt

SNB,

het is niet mogelijk om als gewone gebruiker een xla te installeren in de bedrijfsnetwerkomgeving (SBC, citrix). Bij 'AddIns.Add' gaat het fout. Jammer, maar ik had het al zo'n beetje verwacht :evil:.
Moet het toch maar 'houtje-touwtje'.

Evenzogoed bedankt voor het advies. Groet,

VBAmateur
 
Probeer het volgende.

1. Sla je invoegtoepassing op in een netwerkdirectory.
Open de optie invoegtoepassingen (menubalk/extra/invoegtoepassingen..) (E2000/E2003)
klik op de knop Bladeren...
Selecteer jouw invoegtoepassing en vink die aan.

2. kopieer jouw invoegtoepassing naar de directory xlStart.

3. kopieer jouw invoegtoepassing met VBA naar de directory xlStart

4. wijzig zonodig de extensie van het xla-bestand. Als het in de juiste directory staat kun je het bestand hernoemen met VBA.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan