Avatar billede Sidsel Seniormester
17. april 2018 - 09:33 Der er 6 kommentarer og
1 løsning

Resultat af udregning via VBA i celle

Hej.
Dette er muligvis simpelt, men jeg kan ikke få det til at virke.
I en workbook skal jeg bruge resultatet af en udregning, som henter værdier i 2 andre workbooks. Den Workbook som resultatet skal ind i er aktiv inden denne funktion skal bruges.
Mit forsøg ser således ud:

Range("d30").Value= Evaluate(1-((100*(1-Workbooks(3).Range("d28").Value))/(100-Workbooks("Prisnedsættelse").Range("B2").Value))

Jeg har også prøvet uden evaluate()
Er de nogen som kan hjælpe?
17. april 2018 - 09:36 #1
Du mangler en worksheets angivelse

Range("d30").Value= Evaluate(1-((100*(1-Workbooks(3).Worksheets("???").Range("d28").Value))/(100-Workbooks("Prisnedsættelse").Worksheets("???").Range("B2").Value))

Altså, hvilken arkfane de to celler D28 og B2 findes på
Avatar billede Sidsel Seniormester
17. april 2018 - 09:41 #2
ja, godt set, tak, men det virker stadig ikke.
nu ser den således ud:

Range("d30").Value= Evaluate(1-((100*(1-Workbooks(3).Worksheets("Schneider og Sarel").Range("d28").Value))/(100-Workbooks("Prisnedsættelse").Worksheets("Ark1").Range("B2").Value))
17. april 2018 - 09:47 #3
Er du sikker på at Workbooks(3) er den rigtige workbook - er det ikke bedre med et navn?

Er Workbooks("Prisnedsættelse") åben?

Forstår ikke helt hvorfor du bruger Evaluate?

Hvad knækker den på?
Prøv at teste de enkelte elementer via Immediate vinduet
Avatar billede Sidsel Seniormester
17. april 2018 - 09:56 #4
Jeg bruger workbooks(3) fordi det er en del af en makro som skal køre på mange forkellige workbooks, hvor navne er forkellige, men jeg har brugt referencen mange andre steder, hvor det virker.

Jeg er absolut ikke fastlåst på at bruge evaluate, det var bare et forsøg.

Ja, Workbooks("Prisnedsættelse") er åben.

Jeg er selvlært med VBA, så der er meget jeg ikke ved. Jeg har åbnet immediate vinduet og indsat teksten der. Den giver fejlen Compile error: Expected: ), men jeg kan ikke se hvor der skulle mangle en parentes.
Koden ser således ud efter at have fjernet evaluate

Range("d30").Value= 1-((100*(1-Workbooks(3).Worksheets("Schneider og Sarel").Range("d28").Value))/(100-Workbooks("Prisnedsættelse").Worksheets("Ark1").Range("B2").Value)
Avatar billede Sidsel Seniormester
17. april 2018 - 10:00 #5
Der manglede en parentes til sidst. For dælen en dum fejl. Nå men den havde ikke virket uden Worksheet referencen.
17. april 2018 - 10:03 #6
Super.
17. april 2018 - 10:04 #7
Husk at markere opgaven som løst
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

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