Avatar billede xane Nybegynder
11. februar 2008 - 10:28 Der er 13 kommentarer og
1 løsning

Hente funktion ved knap klik

Hejsa!

Jeg har et lille problem, som jeg er sikker på en af jer sagtens kan klarer :-)

Har lavet et excel ark med ca. 8800 data-rækker og en 5 kollonner. For hver række beregnes der en værdi ved brug af en "function" hvor der indgår de 5 parametre til beregningen. Der hvor værdien skal beregnes ser ligninger dermed sådan her ud:

=PMV(A2;B2;C2;D2;E2)

og i kollonnen lige ved siden af beregnes en ny værdi ud fra funktionen "PMV", kaldet PPD.

Som i kan se laves der ret mange beregninger i arket, samtidigt med at der foretages en iterativ proces inde i funktionen PMV. :-(
Problemet er så at hver gang jeg trykker enten eller ændre en værdi i indgangsparametrene, så beregner excel funktionerne som jeg har lavet.

Generelt set: "er der en smartere metode til dette problem? (jeg kan ikke lige se det)"

Har tænkt lidt på at lave en knap, hvor når der trykkes så udføres beregningerne af de to funktioner (PMV, PPD). Men jeg kan ikke finde ud af at lave en knap der "kører" funktionerne?

Håber i kan hjælpe, da arket skal være endnu størrer....og det bliver kun tungere og tungere :-(

På forhånd mange tak....

mvh

Xane
Avatar billede jkrons Professor
11. februar 2008 - 10:31 #1
Det nemmeste vil nok være at slå manuel beregning til under Funktioner - Indstillinger - Beregn. Så beregnes der først, når du trykker F9.
Avatar billede xane Nybegynder
11. februar 2008 - 10:56 #2
Ja....det kunne være en mulighed. Men ikke helt den jeg søger :-)

Da arket/programmet skal benyttes af mange forskellige personer indenfor ingeniør branchen vil jeg meget gerne, at det er noget der skal være universalt. Sådan at folk ikke skal ind og ændre i deres excel opsætning.

Håber det var svar nok?
Avatar billede jkrons Professor
11. februar 2008 - 11:35 #3
Læg disse to makroer i ThisWorkbook modulet for din projektmappe.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    With Application
        .Calculation = xlAutomatic
    End With
End Sub

Private Sub Workbook_Open()
MsgBox "Beregninger udføres først, når der trykkes F9", vbonkonly + vbInformation
    With Application
        .Calculation = xlManual
    End With
End Sub

Så ændres automatisk til manuel beregning når mappen åbnes og tilbage, når den lukkes.

Hvis du gerne vil, kan du selvfølgelig supplere med en knap, der udfører beregningen i stedet for F9. På denne knap skal så ligge koden

Private Sub CommandButton1_Click()
    Calculate
End Sub

Men du kan ikke, uden at slå automatisk beregning fra, få funktioner til kun at beregne, når du beder om det. Fuktioner "køres" ikke på samme måde som makroer. De "beregner" bare.
Avatar billede bak Forsker
11. februar 2008 - 11:35 #4
Står der Application.Volatile nogen steder inde i dine funktioner ?

Hvis der gør det vil dine funktioner blive genberegnet hver eneste gang excel skal foretage en kalkulation på noget som helst.
Avatar billede jkrons Professor
11. februar 2008 - 11:39 #5
bak-> PMT lyder som en standardfunktion (på dansk YDELSE). Hvis det er tilfældet kan man nok ikke gøre meget ved om den har Volatile eller ej.
Avatar billede xane Nybegynder
11. februar 2008 - 11:49 #6
Hej igen!

Mange tak for besvarelserne!

Der står ikke Application.Volatile nogensteder i funktionerne.

jkrons: Er det ikke muligt at beregne en funktion, kun når der trykkes på en knap? Eller er excel bare lavet sådan at de functions der ligger i "module1" afvikles hver gang der ændres en værdi i arket?
Tænkte på om man ikke kunne "kører" funktionerne PMV og PPD når der først trykkes på en knap?
Avatar billede jkrons Professor
11. februar 2008 - 11:54 #7
Nej. Alle de funktioner der bruges i regnearket, uanset hvilet modul, de ligger i, genberegnes når der ændres værdier med mindre beregning er sat til manuel.

Du kan muligvis indlægge en kode i dine funktioner, der tester på om en given betingelse er opfyldt før det genberegnes, men det vil stadig betyde, at hver enmeste funktion skal aktiveres ved indtastning af data.
Avatar billede xane Nybegynder
11. februar 2008 - 12:01 #8
Mange tak for det jkrons!

Jeg benytter mig så af de svar tidligere :-)

Rigtig dejligt med lidt forklaring til hvordan excel virker, sådan man kan huske det og ikke mindst lærer noget mere af det!
Avatar billede xane Nybegynder
11. februar 2008 - 12:03 #9
Så er det bare lige hvordan jeg giver dig pointene?
Avatar billede jkrons Professor
11. februar 2008 - 12:03 #10
Velbekomme :-)
Avatar billede xane Nybegynder
11. februar 2008 - 15:51 #11
Hej jkrons...igen!

Jeg kom lige til at tænke på om man kunne lave en knap der udførte samme handling som ved tryk på F9? Eller kan man ikke styre excel på den måde?

Jeg vil godt lave et nyt spørgsmål med point hvis det er?
Avatar billede jkrons Professor
11. februar 2008 - 16:00 #12
Det kan du. Som jeg skrev i 11/02-2008 11:35:10 kan du kave en kommandoknap med tiæhørende kode. Så er det bare at klikke på knappen, når der skal beregnes.
Avatar billede bak Forsker
11. februar 2008 - 16:03 #13
-->jkrons... jeg læste det som PMV og det er da ikke nogen standardfunktion :-)
Avatar billede jkrons Professor
11. februar 2008 - 16:12 #14
bak->Du har helt ret. Det er bare mig der ikke kan læse - eller rettere læser det, som jeg tror der står.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester