Ik ben een Excel bestand aan het maken voor het bijhouden van wedstrijdgegevens en voor iedere rubriek maak ik met een macro een nieuwe sheet aan in het actieve Excel Workbook. Nu had ik gevonden dat het heel handig was om een "Worksheet_Change" event te maken om bij het wijzigen van een aantal cellen een macro uit te voeren. Met deze macro's verberg ik kolommen en pas ik gegevens aan die wel/niet horen bij de gekozen waarde in de aangepaste cel.
Zoals ik al zei maak ik met een macro de nieuwe sheet aan. Ik voeg met diezelfde macro dus ook alle teksten en formules toe. Het enige dat met niet lukt is om zo'n change event toe te voegen.
Na wat zoeken vond ik dit op MSDN, waarin getoond wordt hoe ik een Macro programmatisch toe kan voegen: How To Create and Call an Excel Macro Programmatically from VB. Dit krijg ik echter niet werkend voor de "Worksheet_Change" functie. Het probleem is dat ik de specifieke module niet benaderd krijg en ook niet weet waar ik hem vinden kan omdat alles na "ActiveWorkbook.VBProject" beveiligd lijkt ("ActiveWorkbook.VBProject.Name" geeft bijv een melding dat de toegang hiertoe "not trusted" is)
Hier vond ik maar 1 topic dat een beetje helpt: [VBA] Excel eventhandler tijdens runtime toewijzen. Hierin wordt ook verwezen naar een beveiligingsinstelling, maar deze kan ik onmogelijk op iedere pc uitschakelen aangezien ik dit bestand feitelijk weg geef aan iedereen die het wil gebruiken.
Nu ben ik gelukkig wel slim genoeg om een andere manier te gebruiken om het gewenste resultaat te krijgen; ik kopieer een lege sheet waarbij ik de events al heb ingesteld. Hierdoor kan ik waarschijnlijk zelfs een andere macro aanroepen zodat ik het alsnog programmatisch aan kan passen. Enige jammere is dat ik dus een (verborgen) sheet moet hebben. En het maakt het ook nog een beetje vreemd om uberhaupt met een macro een sheet te vullen omdat ik bijna alle formules al in die sheet er bij kan zetten.
Samengevat
Hoe voeg ik in Excel met een macro het "Worksheet_Change" event toe aan een willekeurige sheet in mijn Workbook?
ps, vragen naar code die ik al heb heeft geen zin omdat hetgeen ik geprobeerd heb nooit voor meer dan 1 regel werkte (Wel heb ik de code uit de links hierboven)
Zoals ik al zei maak ik met een macro de nieuwe sheet aan. Ik voeg met diezelfde macro dus ook alle teksten en formules toe. Het enige dat met niet lukt is om zo'n change event toe te voegen.
Na wat zoeken vond ik dit op MSDN, waarin getoond wordt hoe ik een Macro programmatisch toe kan voegen: How To Create and Call an Excel Macro Programmatically from VB. Dit krijg ik echter niet werkend voor de "Worksheet_Change" functie. Het probleem is dat ik de specifieke module niet benaderd krijg en ook niet weet waar ik hem vinden kan omdat alles na "ActiveWorkbook.VBProject" beveiligd lijkt ("ActiveWorkbook.VBProject.Name" geeft bijv een melding dat de toegang hiertoe "not trusted" is)
Hier vond ik maar 1 topic dat een beetje helpt: [VBA] Excel eventhandler tijdens runtime toewijzen. Hierin wordt ook verwezen naar een beveiligingsinstelling, maar deze kan ik onmogelijk op iedere pc uitschakelen aangezien ik dit bestand feitelijk weg geef aan iedereen die het wil gebruiken.
Nu ben ik gelukkig wel slim genoeg om een andere manier te gebruiken om het gewenste resultaat te krijgen; ik kopieer een lege sheet waarbij ik de events al heb ingesteld. Hierdoor kan ik waarschijnlijk zelfs een andere macro aanroepen zodat ik het alsnog programmatisch aan kan passen. Enige jammere is dat ik dus een (verborgen) sheet moet hebben. En het maakt het ook nog een beetje vreemd om uberhaupt met een macro een sheet te vullen omdat ik bijna alle formules al in die sheet er bij kan zetten.
Samengevat
Hoe voeg ik in Excel met een macro het "Worksheet_Change" event toe aan een willekeurige sheet in mijn Workbook?
ps, vragen naar code die ik al heb heeft geen zin omdat hetgeen ik geprobeerd heb nooit voor meer dan 1 regel werkte (Wel heb ik de code uit de links hierboven)