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

Custom Functie binnen macro activeren

Status
Niet open voor verdere reacties.

Kristinho1978

Gebruiker
Lid geworden
2 jul 2015
Berichten
96
Beste allemaal,


Ik heb een draaitabel in kolom A. De waarden in deze draaitabel hebben allemaal een 'inspringing'. De lengte hiervan heb ik bepaald m.b.v. een zelfgemaakte VBA-functie genaamd 'indenture':

Function indenture(r As Range) As Integer
indenture = r.IndentLevel
End Function

Als ik vervolgens de draaitabel refresh gaat alles goed, echter als ik het refreshen van de draaitabel in een macro opneem...

Range("A5").Select
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh

...geeft de indentureformule in kolom B foutmeldingen (#VALUE!). Waarschijnlijk komt dit doordat ik de indenturefunctie in VBA moet omzetten van Function naar Sub ofwel doordat ik de functie op e.o.a. manier in de macro moet opnemen. Maar hoe doe ik dat?


Alvast bedankt voor de tips!


Kris
 
Je kan in je eigen macro to gewoon Range("je range").IndentLevel gebruiken?
 
Hoi Ed,


Bedoel je zo? Dat lukt nl. niet - krijg ik een foutmelding...



Function indenture(r As Range) As Integer
indenture = r.IndentLevel
End Function


Sub Update()
'
' Update Macro
'
Sheets("Find Min Pos1").Select
Range("A5").Select
ActiveSheet.PivotTables("PivotTable81").PivotCache.Refresh
Range("B4:B500").IndentLevel

End Sub



Foutmelding: Invalid use of property
 
Je moet uiteraard wel een waarde meegeven:
Range("B4:B500").IndentLevel = 15
 
Op zich draait de macro dan wel weer gewoon, maar ik krijg weer de oorspronkelijke foutmelding. Ik denk overigens ook niet dat dit de bedoelig is. Misschien was de situatieschets niet geheel duidelijk. Daarom heb ik even een afbeelding toegevoegd.

Indenture.jpg

Zoals je ziet staat de indenturefuntie dus eigenlijk los van de macro (het is gewoon een formule die in kolom B wordt gebruikt), maar door het refreshen van de pivot via een macrofunctie lijkt ie de indenturefunctie niet meer te herkennen. En dat doet ie wel als ik het refreshen gewoon met de rechtermuisknop doe. Ik denk dus dat ik iets moet aanpassen in de macro zodat ie ook binnen de macro indenture herkent [zonder dat ie er verder iets mee doet].

Hopelijk is het zo meer duidelijk.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan