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

Vba

Status
Niet open voor verdere reacties.

nobody11

Gebruiker
Lid geworden
20 dec 2007
Berichten
552
Beste experts,

Ik zou graag aan een knop(uit formulieren werkbalk) een macro koppelen die bij aanklikken een bepaalde formule uitvoert in 2 verschillende cellen..

in cel G1 zou bij klikken volgende formule uitgevoerd moeten worden: DBLEZEN(C2:C15;1;D2:D3)

en bij aanlikken van dezelfde knop, zou in cel G2 volgende formule moeten uitgevoerd worden:
DBLEZEN(D2:D15;1;E2:E3)

hoe kan ik dit via VBA het snelste doen aub?
 
Code:
Sub zetformules()
    Range("G1").Formula = "=DGET(R[1]C[-4]:R[14]C[-4],1,R[1]C[-3]:R[2]C[-3])"
    Range("G2").Formula = "=DGET(RC[-3]:R[13]C[-3],1,RC[-2]:R[1]C[-2])"
End Sub

Wigi
 
Code:
Sub zetformules()
    Range("G1").Formula = "=DGET(R[1]C[-4]:R[14]C[-4],1,R[1]C[-3]:R[2]C[-3])"
    Range("G2").Formula = "=DGET(RC[-3]:R[13]C[-3],1,RC[-2]:R[1]C[-2])"
End Sub

Wigi
tx ik test het zsm uit
 
Laatst bewerkt:
Code:
Sub zetformules()
    Range("G1").Formula = "=DGET(R[1]C[-4]:R[14]C[-4],1,R[1]C[-3]:R[2]C[-3])"
    Range("G2").Formula = "=DGET(RC[-3]:R[13]C[-3],1,RC[-2]:R[1]C[-2])"
End Sub

Wigi

hoe kan ik dat doen dat die formule uitgevoerd wordt bij het klikken van die knop?

hoe werkt de verwijzing nr rijen en kolommen bij VBA? want in mn voorbeeldje zou deze formule uitgeveord moeten worden:

DBLEZEN(C2:C15;D1; D23), mr in jou code staat er precies:
DGET(R[1]C[-4]:R[14]C[-4],1,R[1]C[-3]:R[2]C[-3])

is dat niet DGET(D1:D14,1,C1:C3) ? is dit een foutje ?
 
hoe kan ik dat doen dat die formule uitgevoerd wordt bij het klikken van die knop?

Wijs de macro toe aan een knop.

hoe werkt de verwijzing nr rijen en kolommen bij VBA? want in mn voorbeeldje zou deze formule uitgeveord moeten worden:

DBLEZEN(C2:C15;D1; D23), mr in jou code staat er precies:
DGET(R[1]C[-4]:R[14]C[-4],1,R[1]C[-3]:R[2]C[-3])

is dat niet DGET(D1:D14,1,C1:C3) ? is dit een foutje ?

Foutje??? :evil::p

De notatie is in het Engels, R voor Row en C voor Column. Het is ook relatief t.o.v. waar de formule staat. Vandaar de minnetjes tussen de [ ].

Wigi
 
Wijs de macro toe aan een knop.



Foutje??? :evil::p

De notatie is in het Engels, R voor Row en C voor Column. Het is ook relatief t.o.v. waar de formule staat. Vandaar de minnetjes tussen de [ ].

Wigi

hij doet het wel, mr eens ik een keer heb geklikt,en ik verander de criteria, past hij de formule vanzelf toe,ipv dat ik opnieuw zou klikken.. ik zou graag hebben dat elke keer de critaria gewijzigd worden,dat ook de knop opnieuw moet aangeklikt worden.. of doe ik iets fout? :)
 
Laatst bewerkt:
hij doet het wel, mr eens ik een keer heb geklikt,en ik verander de criteria, past hij de formule vanzelf toe,ipv dat ik opnieuw zou klikken.. ik zou graag hebben dat elke keer de critaria gewijzigd worden,dat ook de knop opnieuw moet aangeklikt worden.. of doe ik iets fout? :)

Je doet niets fout, maar wat is daar de bedoeling van (onafgezien van het feit of we dit kunnen programmeren of niet)?

Formules hebben juist de bedoeling om onmiddellijk het resultaat te geven, ook als er iets gewijzigd is.
 
Je doet niets fout, maar wat is daar de bedoeling van (onafgezien van het feit of we dit kunnen programmeren of niet)?

Formules hebben juist de bedoeling om onmiddellijk het resultaat te geven, ook als er iets gewijzigd is.

mja, tis in feite om de gebruiker nog de keuze te geven of hij de formule (vrt.zoeken) wil laten uitvoeren of niet.. komt professioneler over.. :) laat het mij zo zeggen
 
...Dus wat je eigenlijk wilt, is dat VBA een formule voor je uitvoert (op de achtergrond) en je vervolgens alléén het resultaat van de formule in de betreffende cellen toont?
Dat zal dan (ff uit de losse pols) zoiets moeten worden...
Code:
Sub zetformules()
    Range("G1").Value = Worksheetfunction.Dget(R[1]C[-4]:R[14]C[-4],1,R[1]C[-3]:R[2]C[-3])
    Range("G2").Value = enz...
End Sub

Ik heb nu ff geen tijd om de RC notatie in de formule om te zettten in Ranges dus ik weet niet of dit zo gaat werken.

Groet, Leo
 
...Dus wat je eigenlijk wilt, is dat VBA een formule voor je uitvoert (op de achtergrond) en je vervolgens alléén het resultaat van de formule in de betreffende cellen toont?
Dat zal dan (ff uit de losse pols) zoiets moeten worden...
Code:
Sub zetformules()
    Range("G1").Value = Worksheetfunction.Dget(R[1]C[-4]:R[14]C[-4],1,R[1]C[-3]:R[2]C[-3])
    Range("G2").Value = enz...
End Sub

Ik heb nu ff geen tijd om de RC notatie in de formule om te zettten in Ranges dus ik weet niet of dit zo gaat werken.

Groet, Leo
ik wil dat de formule slechts uitgevoerd wordt bij het klikken op die knop.. en bij Wigi zijn code, past de formule in de doelcel zich steeds aan na de eerst emaal drukken op de knop. Ik zou graag in mijn werkblad dat ook als de criteria wijzigen, de formule past opnieuw berekend wordt als de knop weer ingedrukt wordt :)

bedankt!ç
 
Dus op het moment dat de criteria wijzigen, mag de formule niet meer berekend worden?
 
Dus op het moment dat de criteria wijzigen, mag de formule niet meer berekend worden?

Idd, tot als je de knop opnieuw indrukt :)
ps: kan die VBA code ook met absolute verwijzing? want zou makkelijker zijn, omdat het voorbeeldje dat ik gaf nog niet de definitieve range is (die moeot ik nog bepalen) en dan kan ik makkelijk zonder de relatieve verwijzing na te trekken de formule aanpassen :)
 
Dan haal je jezelf wel onnodige problemen op de hals.

Je kan de berekeningen uitzetten, maar dat geldt dan wel voor heel de Excel application...

aah nee :) ok, ik zal het anders oplossen.. zal het doen met keuzerondjes (of van die keuzevinkjes), waarbij ik dan een aanmaak die staat voor JA en andere diei staat voor NEE; en afhankelijk van welke die aangevinkt is kan ik de desbetreffende formule laten uitvoeren.. dit kan ik makkelijk en zonder VBA :) toch heel hartelijk bedankt vr al de moeite!! super forum hier! ik heb ontzettend veel bijgeleerd.. gisteren tot 2 u snachts (al de 4de nacht op rij ;) ) bezig geweest aan excel problemen op te lossen die ik me zelf voorschotel :eek:
 
ik wil dat de formule slechts uitgevoerd wordt bij het klikken op die knop.. en bij Wigi zijn code, past de formule in de doelcel zich steeds aan na de eerst emaal drukken op de knop. Ik zou graag in mijn werkblad dat ook als de criteria wijzigen, de formule past opnieuw berekend wordt als de knop weer ingedrukt wordt :)

bedankt!ç
DUS is mijn oplossing precies hetgeen je zoekt! De formule staat in VBA en wordt dus pas gebruikt als je op de knop drukt. Dit geeft hetzelfde effect als het proberen voor elkaar te krijgen om 1 of 2 cellen niet te laten 'hercalculeren'!
De code van Wigi plaatst gewoon de formule in de cellen en zal daarna dus mee gaan doen in de standaard calculatie van Excel.

Groet, Leo
 
...Dus wat je eigenlijk wilt, is dat VBA een formule voor je uitvoert (op de achtergrond) en je vervolgens alléén het resultaat van de formule in de betreffende cellen toont?
Dat zal dan (ff uit de losse pols) zoiets moeten worden...
Code:
Sub zetformules()
    Range("G1").Value = Worksheetfunction.Dget(R[1]C[-4]:R[14]C[-4],1,R[1]C[-3]:R[2]C[-3])
    Range("G2").Value = enz...
End Sub

Ik heb nu ff geen tijd om de RC notatie in de formule om te zettten in Ranges dus ik weet niet of dit zo gaat werken.

Groet, Leo

die werkt niet bij mij? :s ik krijg een rode lijn te zien bij de tekst die ik plak in VBA
hoe maak ik er overigens absolute verwjizingen naar ipv relatieve?
 
Nobody11 zei:
die werkt niet bij mij? :s ik krijg een rode lijn te zien bij de tekst die ik plak in VBA
Het was ook slechts als voorbeeld. Om het werkend te krijgen moet de code worden aangepast (maar daar heb ik nu de tijd ff niet voor - als niemand anders dit oppakt, zal ik vanavond ff kijken).

Groet, Leo
 
Nobody11, ...heb ff tijd gevonden...:D
Koppel dit blokje aan een knop en je ziet alleen de waardes updaten als je op die knop klikt.
Code:
Sub zetformules()
    Range("G1").Value = WorksheetFunction.DGet(Range("C2:C15"), 1, Range("D2:D3"))
    Range("G2").Value = WorksheetFunction.DGet(Range("D2:D15"), 1, Range("E2:E3"))
End Sub

Groet, Leo
 
Nobody11, ...heb ff tijd gevonden...:D
Koppel dit blokje aan een knop en je ziet alleen de waardes updaten als je op die knop klikt.
Code:
Sub zetformules()
    Range("G1").Value = WorksheetFunction.DGet(Range("C2:C15"), 1, Range("D2:D3"))
    Range("G2").Value = WorksheetFunction.DGet(Range("D2:D15"), 1, Range("E2:E3"))
End Sub

Groet, Leo

superhard bedankt!!

edit:bij uitvoering (eerste keer lukt het,sindsdien krijg ik error:
fout 1004 bij uitvoering.. eigenschap DGET van klasse Worksheetfunction kan niet worden opgehaald..
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan