Avatar billede clausen7 Nybegynder
27. november 2008 - 12:12 Der er 7 kommentarer og
1 løsning

Makro til målsøgning i brøk - Part 2

Hej igen

Hvis jeg nu ønsker at teste hvor meget jeg kan ændre nævneren før resultatet af brøken når et bestemt niveau(forudbestemt tal), hvordan skriver jeg så den makro?

Altså:

Tælleren består af A1, A2 og A3 som lægges sammen i B4(B4=a1+a2+a3)

Nævneren indtastes i B2
Resultatet af brøken er B3(B3=B1/B2)

Grænseværdien er B5
Resultatet af testen er i B6

Hvordan strikker jeg det sammen?
Avatar billede jkrons Professor
27. november 2008 - 14:30 #1
Prøv med noget i denne stil:

Sub MSN()
    Range("B3").GoalSeek Goal:=Range("b5"), ChangingCell:=Range("B2")
    If Range("b5") > Range("b5") Then
    na = Range("b5") - 0.01
    Else: Exit Sub
    End If
    Do While Range("b3") > na
        Range("B3").GoalSeek Goal:=na, ChangingCell:=Range("B2")
    na = na - 0.01
    Loop
End Sub
Avatar billede clausen7 Nybegynder
27. november 2008 - 14:40 #2
prøver det lige af. Mange tak!
Avatar billede clausen7 Nybegynder
27. november 2008 - 14:42 #3
Lige en lille detalje, jeg vil gerne at resultaten af testen vises i B6. Hvordan ser makroen så ud?
Avatar billede jkrons Professor
27. november 2008 - 14:47 #4
Så skal du lave en kopi af formlen fra B3 i B6 og dernæst bruge

Sub MSN()
    Range("B6").GoalSeek Goal:=Range("b5"), ChangingCell:=Range("B2")
    If Range("b5") > Range("b5") Then
    na = Range("b5") - 0.01
    Else: Exit Sub
    End If
    Do While Range("b6") > na
        Range("B6").GoalSeek Goal:=na, ChangingCell:=Range("B2")
    na = na - 0.01
    Loop
End Sub
Avatar billede clausen7 Nybegynder
27. november 2008 - 15:03 #5
har indsat formlen fra B3 eller i mit tilfælde fra C13 til C17(som er den celle jeg gerne vil have resultaten af testen i)

Kan ikke få line 1 til at køre. Derudover er det korrekt at C19 skal være større end C19, som du også beskriver i dit program? Skal den ikke hedde, at hvis resultatet af B3(C13) er større end B5(C19) så exit... eller??


Sub MSN()

    Range("C17").GoalSeek Goal:=Range("C19"), ChangingCell:=Range("C7")
    If Range("C19") > Range("C19") Then
    na = Range("C19") - 0.01
    Else: Exit Sub
    End If
    Do While Range("C13") > na
        Range("C13").GoalSeek Goal:=na, ChangingCell:=Range("C7")
    na = na - 0.01
    Loop
End Sub
Avatar billede jkrons Professor
27. november 2008 - 15:46 #6
For at makroen skal køre skal C17 indeholde en formel. C19 og C7 må ikke indeholde formler. B3 (C13) er sleti kke involveret i målsøgning. Der kan kun den celel være, hvor du vil have resultatetb til at stå.
Avatar billede clausen7 Nybegynder
27. november 2008 - 15:52 #7
Hej

Glem min kommentar, fik rodet nogle ting sammen. Jeg har fundet en formelløsning uden om en makro.

Ellers tak for hjælpen. Vil dog stadigt godt give point for indsatsen, hvis muligt?
Avatar billede jkrons Professor
27. november 2008 - 15:56 #8
Helt i orden.
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