• 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.

Excel Macro en UserForm in (centraal) extern bestand

Status
Niet open voor verdere reacties.

ScoobyD

Gebruiker
Lid geworden
12 jan 2018
Berichten
5
beste mensen op dit Forum, ik hoop dat jullie kunnen helpen.

Ik heb een vrij grote Excel met een flink aantal macro's >50 en een hand vol UserForms. Nu heb ik er niet één van, maar een aantal. Tot nu toe wanneer er een goede wijziging is gemaakt aan een macro of userform, wordt deze handmatig aangepast in alle excels. De basis van de excels is telkens hetzelfde, alleen de data er in is anders.

Wat ik eigenlijk wilde doen is de excel opslaan als Macro.xls (oude formaat) of .xlam zodat alle macro's en userforms in één centraal bestand staan en alle 'data' excel bestanden gebruik kunnen maken van dezelfde macro's.

Toen ik dat deed, konden de data excels echter (uiteraard) de macro's niet meer vinden. En krijg je error te zien file!maco niet gevonden. Is er een mogelijkheid om bijvoorbeeld te definiëren:
- DefaultLocationMacroFile = file.xlam
zodat de excel niet probeert: databestandxlsopen!macro maar file.xlam!macro

Dan is volgens mij mijn probleem opgelost. Wel moet uiteraard de macro wel functioneren over het geopende data0xx.xls bestand.

Ik had ook nog geprobeerd de macro.xls file te gebruiken als add-in. Maar ook dan worden deze niet automatisch herkend. Iemand tips? Wat mis ik?
 
Als add-in moet het een .xlam zijn.
 
Maar de excel pakt dan niet 'automatisch' de macro die in de Add-in staat. Als ik ga naar ALT-F11, dan zie ik wel dat de Add-In is geladen.

Ik zie twee VBAProjects open: data.xls en macro.xlam
er wordt aangeroepen data.xls!dezemacrowilik

foutmelding is: data.xls!dezemacrowilik kan niet worden gevonden (klopt ook)

Als Add-In: in macro.xlam staat in een Module: sub dezemacrowilik()

hoe krijg ik dan data.xls de macro.xlam aan te roepen in plaats van zichzelf?
 
Zijn de macro's aan knoppen gehangen of zo iets? Misschien beter om de invoegtoepassing een eigen tab op het lint te geven, dan kunnen de knoppen weg uit de bestanden. MOet je wel iets inbouwen in je invoegtoepassing zodat die "eigen" bestanden herkent.
 
Vanuit een ander document dan de xlam zelf kan je een macro in de xlam zo aanroepen:
Application.Run "'macro.xlam'!dezemacrowilik"

Beter is het om de complete functionaliteit in de addin in te bouwen die je dan met menu's en userforms kan gebruiken.
 
Als ik de knop direct verwijs naar de .xlam dan werkt het niet.
Als ik aan de knop een macro hang die uitvoert wat jij zegt: Application.Run "'macro.xlam'!dezemacrowilik"
dan werkt het wel :) SUPER bedankt!

Ik verwacht wanneer ik de "ThisWorkbook" heb aangepast naar iets anders, dat het helemaal moet lukken.
 
Ok dan.
Zo zal je waarschijnlijk nog wel meer aanpassingen moeten doen.
Maar daar kom je vanzelf achter ;)
 
Waarom de macro's niet opnemen in Personal.xlsb?
 
Het voordeel van een invoegtoepassing is dat je die op 1 centrale plek kan zetten waar iedereen bij kan in plaats van bij iedere gebruiker in de XLSTART map.
Ook een eventuele aanpassing in de code van de invoegtoepassing is dan direct voor iedere gebruiker beschikbaar.
 
@edmoor, bedankt voor de uitleg!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan