Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[VBA] Goalseek werkt niet met VBA functie *

Pagina: 1
Acties:

  • deleenheir
  • Registratie: September 2003
  • Laatst online: 28-04-2024
Bij het maken van een VBA function in Excel loop ik tegen een praktisch probleem aan.
Graag had ik een functie geschreven die in een recordgebaseerde worksheet afhankelijk van een parameter één bepaalde formule gaat toepassen. Deze formule dient opgehaald te worden in een tweede tabel waar de gebruiker dan vrij formules kan toevoegen en deze een naam geven.
Deze formules dienen als volgend voorbeeld gecodeerd te worden:
A!+B!

Een ! als wildcard indien de VBA functie de rij waarin de functie gebruikt wordt dient in te vullen.

De VBA functie ziet er als volgt uit:
code:
1
2
3
4
5
6
Function t2f(t2fStr As String, rijnum)

    t2fStr = replace(t2fStr, "!", rijnum)
    t2f = Application.Evaluate(t2fStr)

End Function

Het probleem is hierbij dat indien er een wijziging in de cellen plaats vind in de gebruikte cellen de VBA functie niet automatisch herberekend.

Dit kan opgelost worden door volgende event sub in de sheet waar de bovenstaande functie gebruikt wordt in te bouwen.
code:
1
2
3
4
5
Private Sub Worksheet_Change(ByVal Target As range)

    Application.CalculateFull

End Sub


Maar de functie t2f wil niet werken met een tool als Goal seek

Is hier een oplossing voor?
De voorbeeld excel is te downloaden van rapidshare:
http://rapidshare.com/files/196726329/Book3.xls.html

[ Voor 4% gewijzigd door deleenheir op 11-02-2009 12:18 ]

"If it works, don't fix it"


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Als je nu zelf eens een titel zou voorstellen, ipv te gaan 'roepen' dat je de titel vergeten bent, en ons een te laten verzinnen ....
Je kan adhv een topicrecport een titel voorstellen.

https://fgheysels.github.io/


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

deleenheir schreef op woensdag 11 februari 2009 @ 11:47:
Bij het maken van een VBA function in Excel loop ik tegen een praktisch probleem aan.
Graag had ik een functie geschreven die in een recordgebaseerde worksheet afhankelijk van een parameter één bepaalde formule gaat toepassen. Deze formule dient opgehaald te worden in een tweede tabel waar de gebruiker dan vrij formules kan toevoegen en deze een naam geven.
Deze formules dienen als volgend voorbeeld gecodeerd te worden:
A!+B!

Een ! als wildcard indien de VBA functie de rij waarin de functie gebruikt wordt dient in te vullen.

De VBA functie ziet er als volgt uit:
code:
1
2
3
4
5
6
Function t2f(t2fStr As String, rijnum)

    t2fStr = replace(t2fStr, "!", rijnum)
    t2f = Application.Evaluate(t2fStr)

End Function

Het probleem is hierbij dat indien er een wijziging in de cellen plaats vind in de gebruikte cellen de VBA functie niet automatisch herberekend.

Dit kan opgelost worden door volgende event sub in de sheet waar de bovenstaande functie gebruikt wordt in te bouwen.
code:
1
2
3
4
5
Private Sub Worksheet_Change(ByVal Target As range)

    Application.CalculateFull

End Sub
gebruikelijker is de opdracht application.volatile bovenaan toevoegen aan de functie.
Maar de functie t2f wil niet werken met een tool als Goal seek

Is hier een oplossing voor?
De voorbeeld excel is te downloaden van rapidshare:
http://rapidshare.com/files/196726329/Book3.xls.html
het is mij onduidelijk welk probleem je wil oplossen met goalseek, iig zal het idd niet lukken met de t2f functie omdat die een evaluate doet. dat zou beter kunnen werken indien deze functie de formule zelf in de spreadsheet neerzet. of je kan verder in vba aan de slag met het goalseek statement.

  • deleenheir
  • Registratie: September 2003
  • Laatst online: 28-04-2024
Bedankt de application.volatile heeft het probleem opgelost...

"If it works, don't fix it"