Avatar billede prinsib Seniormester
26. januar 2009 - 23:19 Der er 12 kommentarer og
1 løsning

Fastfrysning af celler

Hej eksperter.
Hvis nu jeg har en formel i en celle, og den har lavet en udregning, kan det så lade sig gøre, at resultatet bagefter bliver stående (fastfryses) i cellen uanset om en af de celler som indgår i formlen ændres senere.
Hvis det er muligt, hvordan gør jeg så det.
Ib
Avatar billede kabbak Professor
27. januar 2009 - 00:20 #1
kun ved at kopier cellen og så vælg indsæt specielt i samme celle og vælg værdier
Avatar billede prinsib Seniormester
27. januar 2009 - 21:15 #2
Hej kabbak.
Jeg er ikke helt med på hvad du mener. Kan du forklare det nærmere. Jeg troede at det måske kunne klares med en makro, eller en kode af en eller anden slags.
Ib
Avatar billede kabbak Professor
27. januar 2009 - 23:12 #3
Via kode kan du godt, men da det er en formel, du har i cellen, kan den ikke automatisk trikke en automatisk makro, så du skal fysisk, selv køre makroen.
Avatar billede prinsib Seniormester
27. januar 2009 - 23:38 #4
Hvad nu hvis jeg har en celle med et tal som bruges i formlen, og jeg ændre dette tal, kan man så få denne ændring til at køre en makro?
Ib
Avatar billede kabbak Professor
27. januar 2009 - 23:53 #5
Skal være i arkets modul

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then ' celle der indgår i formel
        [b1] = [b1].Value ' formelcellen, her B1, bliver til en værdi, i stedet for formel
    End If
End Sub
Avatar billede prinsib Seniormester
29. januar 2009 - 12:58 #6
Hej kabbak.
Hvad gør jeg forkert? Jeg kan ikke få det til at virke.
Det drejer sig om et låneskema, hvor jeg gerne vil regne et rentebeløb ud i J8 og ned. Min formel ser sådan her ud.
=HVIS(D8<>0; HVIS(D8-H8=0;H8*$J$4*F8/365;HVIS(F8<"";H8*$J$4*F8/365;""));"")Formlen er kopieret nedad.
D8 er afdrag, H8 er lånt beløb tilbage, F8 er antal lånte dage og J4 er renten. Jeg har ændret formlen så den nu ser sådan her ud.
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$j$4" Then ' celle der indgår i formel
        [j8] = [j8].Value ' formelcellen, her j8, bliver til en værdi, i stedet for formel
    End If
End Sub
Jeg har sat den ind i wbaprojekt (arkets navn) - ark1(ark1) – Worksheet. Er det rigtigt?
Jeg vil gerne kunne ændre renten (J4) i et måned, uden at det udregnede rentebeløb, for de foregående måneder, ændre sig
Ib
Avatar billede prinsib Seniormester
31. januar 2009 - 12:03 #7
Hej kabbak.
Er det en helt umulig opgave jeg er gået i gang med? Hvis ja så læg et svar, så lukker jeg.
Jeg er ikke så god til det med koder.
Ib
Avatar billede prinsib Seniormester
03. februar 2009 - 22:56 #8
Hej kabbak.
Jeg har stadig ikke fundet ud af mit problem. Kan du hjælpe mig, eller er der andre der kan. Hvis ikke så læg lige et svar kabbak, så jeg kan få lukket.
Ib
Avatar billede kabbak Professor
03. februar 2009 - 23:14 #9
Jeg havde faktisk ventet på om nogen af de andre nørder, havde et svar, jeg er ikke helt sikker på at det kan gøres, jeg skal se arket først, inden jeg er sikker.

Du kan sende den til kabbak snabela tiscali dot dk
Avatar billede prinsib Seniormester
04. februar 2009 - 00:08 #10
Hej kabbak.
Skema er sendt.
Ib
Avatar billede kabbak Professor
04. februar 2009 - 18:14 #11
Lav en knap og lad den kalde denne makro, den laver de formler, der er udregnet, om til værdier.
Så tryk på den inden du ændrer renten, eller bare for hver måned, du indtaster.

Sub FRYS()
    Dim I As Integer
    For I = 8 To 46 Step 2
        If Cells(I, "J") = "" Then Exit For
        Cells(I, "J") = Cells(I, "J").Value  ' formelcellen, her B1, bliver til en værdi, i stedet for formel
    Next
End Sub
Avatar billede prinsib Seniormester
05. februar 2009 - 11:56 #12
Hej kabbak. Det virker perfekt. Tak for hjælpen. Vil du fortælle lidt om hvad koden gør. Læg et svar.
Ib
Avatar billede kabbak Professor
05. februar 2009 - 16:46 #13
Sub FRYS()
    Dim I As Integer
    For I = 8 To 46 Step 2' step 2 fordi du bruger hveranden celle
        If Cells(I, "J") = "" Then Exit For' hvis der ikke er en værdi, må den have nået sidst udregnet, så stop ved at Exit koden
        Cells(I, "J") = Cells(I, "J").Value  ' formelcellen, her B1, bliver til en værdi, i stedet for formel
    Next 'tjekker næste celle
End Sub
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