Avatar billede tash104 Nybegynder
24. oktober 2012 - 08:14 Der er 20 kommentarer og
1 løsning

Excel hjælp; kan man få formler til at vise tal frem for cellereferencer?

Hej alle

I Excel vil jeg meget gerne kunne lave det sådan, at når jeg har udregnet noget i en celle vha. en lang formel (der ofte betyder mange celle referencer), at så kan jeg vise formlen, men med tal.

Jeg kan snildt finde ud af at vise formel, men jeg ville virkelig gerne have excel til at vise, eksempelvis "(12*10%/1+65)^2 frem for (C42*E1)/1+B23)^C4".


Men kan den overhovedet lade sig gøre? Det skal altså gerne ske nærmest ligeså nemt og automatisk som med "vis formel", bare "vis formel med tal frem for celle numre"

Jeg håber der er en der kan hjælpe:)
Avatar billede supertekst Ekspert
24. oktober 2012 - 18:24 #1
Forsøger med VBA - så måske...
Avatar billede store-morten Ekspert
24. oktober 2012 - 19:17 #2
Kopier koden her under.
I Excel
Tryk alt+F11
Indsæt koden i et modul
luk på det røde kryds.
Function Udregn(rngF As Range) As String
    Dim vRefs As Variant, lngRef As Long
    Udregn = "'" & rngF.Formula
    vRefs = Split(PatternExtract(Udregn, "[A-Z]{1,2}[0-9]+", , -1))
    For lngRef = LBound(vRefs) To UBound(vRefs) Step 1
        Udregn = Replace(Udregn, vRefs(lngRef), Round(Evaluate(vRefs(lngRef)), 3), 1, -1, vbTextCompare)
    Next lngRef
End Function

'RegExp Function
Function PatternExtract(strF As String, strPattern As String, _
            Optional boolIgnoreCase As Boolean = True, Optional lngInstance As Long = 1) As Variant
    Dim RegExp As Object, RegExpMatch As Object
    On Error Resume Next
    Set RegExp = CreateObject("vbscript.regexp")
    With RegExp
        .Global = True
        .IgnoreCase = boolIgnoreCase
        .Pattern = strPattern
    End With
    Set RegExpMatch = RegExp.Execute(strF)
    If lngInstance > RegExpMatch.Count Then
        PatternExtract = ""
    Else
        If lngInstance = -1 Then
            For lngInstance = 1 To RegExpMatch.Count Step 1
                PatternExtract = PatternExtract & " " & RegExpMatch(lngInstance - 1)
            Next lngInstance
            PatternExtract = Replace(PatternExtract, " ", "", 1, 1)
        Else
            PatternExtract = RegExpMatch(lngInstance - 1)
        End If
    End If
    Set RegExpMatch = Nothing
    Set RegExp = Nothing
End Function
A2: din formel
A1: =Udregn(A2)
Avatar billede tash104 Nybegynder
24. oktober 2012 - 19:44 #3
Jeg har fundet modul der kommer frem under "insert --> Modul2.. men så indsætter jeg koden og lukker vinduet ned, men der sker ikke noget nyt? Gør jeg en fejl?
Avatar billede store-morten Ekspert
24. oktober 2012 - 19:45 #4
A2: din formel
A1: =Udregn(A2)
Avatar billede store-morten Ekspert
24. oktober 2012 - 19:54 #5
Velkommen på Eksperten.dk

Som spørger, skal du bruge:
Kommentar (til forslag)

Og når du har fået et 'Svar' på dit spørgsmål, du kan bruge,
beder du den der har hjulpet dig, om at lægge et:
Svar (til løsninger og pointgivning)
Avatar billede tash104 Nybegynder
24. oktober 2012 - 19:53 #6
Ja men der kommer ikke en formel der hedder udregn frem?!
Avatar billede store-morten Ekspert
24. oktober 2012 - 19:58 #7
Ecel version?
Avatar billede store-morten Ekspert
24. oktober 2012 - 20:03 #8
Hvis du har formlen: =(C42*E1)/1+(B23)^C4 i celle A2

Og du taster =Udregn(A2) i celle A1

Hvad står der så i A1?
Avatar billede tash104 Nybegynder
24. oktober 2012 - 20:27 #9
jamen den vil slet ikke godtage udregn formlen, så jeg tror allerede den går galt ift. evt at gemme eller lignende i modulet?!:(
Avatar billede store-morten Ekspert
24. oktober 2012 - 20:31 #10
Prøv i et nyt/tomt ark
Avatar billede tash104 Nybegynder
24. oktober 2012 - 20:35 #11
nu har jeg fået døbt modulet "udregn" så nu er den i excel, men når jeg skriver en formel i A1 og efterfølgende skriver "udregn=(A1)" skriver den "#NAVN?"
Avatar billede store-morten Ekspert
24. oktober 2012 - 20:41 #12
Du skal skrive: =Udregn(A1)

Ikke udregn=(A1)
Avatar billede tash104 Nybegynder
24. oktober 2012 - 20:48 #13
hov min fejl, det er self =udregn jeg har skrevet, som ikke virker
Avatar billede store-morten Ekspert
24. oktober 2012 - 20:49 #14
Avatar billede store-morten Ekspert
24. oktober 2012 - 20:49 #15
Med stort u
Avatar billede supertekst Ekspert
25. oktober 2012 - 00:04 #16
Anbring VBA-kode under et Ark med formler - Højreklik på en celle med formler og værdier vises i meddelelsesboks. Kan ændres så alle formler vises med værdier. Vil godt vide, hvordan du ønsker at anvende funktionaliteten.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim formel As String, x As Integer, tegn As String, alfaFlag As Boolean, numFlag As Boolean
Dim startP As Integer, slutP As Integer
Dim tabel As String, dele As Variant
    If Target.HasFormula = True Then
        alfaFlag = False
        numFlag = False
        tabel = ""
       
        formel = Target.Formula
       
        For x = 1 To Len(formel)
            tegn = Mid(formel, x, 1)
            If testAlfabetisk(tegn) = True And alfaFlag = False Then
                alfaFlag = True
                startP = x
            Else
                If testNumerisk(tegn) = True And alfaFlag = True Then
                    If numFlag = False Then
                        numFlag = True
                    End If
                Else
                    If alfaFlag = True And numFlag = True Then
                        slutP = x
                        adresse = Mid(formel, startP, slutP - startP)
                        værdi = Range(adresse)
                        tabel = tabel & værdi & tegn
                       
Rem indsæt i formel (gem forinden)
                        alfaFlag = False
                        numFlag = False
                    Else
                        tabel = tabel & tegn
                    End If
                End If
            End If
        Next x
       
        If alfaFlag = True And numFlag = True Then
            slutP = x
            adresse = Mid(formel, startP, slutP - startP)
            værdi = Range(adresse)
            tabel = tabel & værdi
            Cancel = True
        End If
        MsgBox tabel
    Else
        Cancel = False
    End If
End Sub
Private Function testAlfabetisk(tegn)
    If Asc(UCase(tegn)) >= 65 And Asc(UCase(tegn)) <= 90 Then
        testAlfabetisk = True
    Else
        testAlfabetisk = False
    End If
End Function
Private Function testNumerisk(tegn)
    If Asc(UCase(tegn)) >= 49 And Asc(UCase(tegn)) <= 57 Then
        testNumerisk = True
    Else
        testNumerisk = False
    End If
End Function
Avatar billede tash104 Nybegynder
25. oktober 2012 - 13:45 #17
Mange tak for din hjælp det spiller nu :)
Avatar billede store-morten Ekspert
25. oktober 2012 - 16:45 #18
Som spørger, skal du bruge:
Kommentar (til forslag)

Og når du har fået et 'Svar' på dit spørgsmål, du kan bruge,
beder du den der har hjulpet dig, om at lægge et:
Svar (til løsninger og pointgivning)

Her er en lille film om:
Hvordan man accepterer svar på Eksperten.dk
http://www.youtube.com/watch?v=s26DGiuvXBo
Avatar billede tash104 Nybegynder
25. oktober 2012 - 22:03 #19
ok det må du meget gerne så:)
Avatar billede store-morten Ekspert
25. oktober 2012 - 22:06 #20
Det gør jeg så ;-)
Avatar billede carlt Seniormester
26. januar 2013 - 10:52 #21
Er der nogen, der stadig følger dette spørgsmål?
Der er et par ting, jeg ikke forstår!
Det er muligvis fordi, det er for længe siden, jeg lærte matematik:-)

Jeg er villig til at oprette et spørgsmål!
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

IT-JOB

Netcompany A/S

Network Engineer

Unik System Design A/S

DevOps Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger IT-supporter til Lokal IT Servicecenter i Karup

SOS International

Platform Engineer

Csis Security Group A/S

Junior Software Engineer