Vinnaren i pepparkakshustävlingen!
2013-11-06, 13:36
  #1
Medlem
Jag har ett projektarbete som involverar kodning i VBA och det har gått rätt så bra hittills. Men jag stötte på ett problem när jag behövde skriva ut en formel i en specifik cell som är baserad på de andra cellerna. Jag är rätt säker på att min kod inte stämmer för fem öre (förutom det med Problemlösaren). Det jag vill göra är att få fram formeln (B5*I5+B6*I6+...+BX*IX)/(B5+B6+...+BX) där X är sista cellen som har ett värde. Den formeln vill jag sen skriva ut i I5.

Jag har lyckats att skriva koden så att jag får ut ett statiskt värde i I5 (se kommentardelen av koden)
, men jag skulle behöva en formel där istället
Please help
Mvh / Martin

Kod:
Sub MinRisk()
'
' MinRisk Macro
'


    ProblemlösarenÅterställ
    
    Do Until (Worksheets("equityPortfolio").Range("A" & (assetAmount + 5)) = "")
        assetAmount = assetAmount + 1
    Loop
    
    'Dim t As Double
    't = 0
    'Dim n As Long
    'n = 0
    
    Dim x As Long
    For x = 1 To assetAmount
    ProblemlösarenLäggTill CellRef:="$B$" & (4 + x), Förhållande:=1, Formel:="$G$" & (4 + x)
    
    't = t + Range("B" & (4 + x)) * Range("I" & (4 + x))
    'n = n + Range("B" & (4 + x))
    

    ' Denna del är väldigt modifierad och fungerar inte
    Range("K5").Formula = "=((sum(($B$(4 + x))*(I & (4 + x))))/(sum((B & (4 + x))  )"

        
    Next x
    
    'Range("K5").Formula = "=(t / n)"
    ' ingen formel, bara statiskt värde, går inte att optimera!
    
    ProblemlösarenOK Målcell:="$K$5", MaxMinVärde:=2, VärdeAv:="0", _
                     JusterbaraCeller:=""
                     
                     
                     
    ProblemlösarenLäggTill CellRef:="$B$5:$B$" & (4 + assetAmount), Förhållande:=3, Formel:="0"
    ProblemlösarenLäggTill CellRef:="$E$2", Förhållande:=2, Formel:="$L$5"
    ProblemlösarenOK Målcell:="$K$5", MaxMinVärde:=2, VärdeAv:="0", _
        JusterbaraCeller:="$B$5:$B$" & (4 + assetAmount)
    ProblemlösarenLös
End Sub
Citera
2014-03-05, 20:00
  #2
Medlem
Lifelovers avatar
Skulle säga att du lär fundera på hur den fungerande formeln ser ut i excel och sedan använda VB-koden för att få till formelsnutten så som den måste se ut. Det som står inom citationstecknen är (vad jag kan se) inte en formel som funkar i excel nämligen.

Sen verkar det ju vara så att du vill lägga en formel i ett fält som du använder i själva formeln, vilket skapar en cirkelreferens? Om du är lite mer specifik så kan jag säkert hjälpa dig
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback