Avatar billede sgadegaard Nybegynder
12. december 2014 - 11:17 Der er 9 kommentarer og
1 løsning

Problemer med formel IF(ABS(I98)>E98;"!";"")

Hej,

Jeg skal lave et check på værdien i E om den er størrer end abs værdien i I.
Problemet er at værdien i I og E cellen er beregnet, og herefter formateret med feks. 3 decimaler. Efter formatering kan værdierne godt være ens, og så skal der ikke sættet et !.

Hvordan tjekker jeg kun på det viste tal og ikke på det beregnede?

herefter skal formlen gerne indsættet i macro
Workbooks(ToDoc).Sheets(1).Cells(o, 13).Formula = ?

mvh
Søren
12. december 2014 - 12:17 #1
Du skal ændre formlerne så det der vises, er identisk med cellens indhold.
I stedet for kosmetisk at vise et resultat med 3 decimaler, kan du ændre formlen til at beregne resultatet med 3 decimaler.
Brug f.eks. funktionerne AFRUND(), AFKORT() m.fl.

=AFRUND(A1/B1;3)
Avatar billede sgadegaard Nybegynder
12. december 2014 - 13:45 #2
OK men hvordan sætter jeg så antal af decimale, udfra antallet i I cellen?
Avatar billede supertekst Ekspert
12. december 2014 - 13:55 #3
#2
Sub findAntalDecimaler()
Dim opdeling As Variant, decimaler As String, antalDecimaler As Integer
    opdeling = Split(Range("E1"), ",")  'tilpas celle-adresse
    decimaler = opdeling(1)
    antalDecimaler = Len(decimaler)
End Sub
Avatar billede morten_dalsgaard Praktikant
12. december 2014 - 14:03 #4
=HVIS(AFRUND(I98;2)>AFRUND(E98;2);"!";"")
Avatar billede morten_dalsgaard Praktikant
12. december 2014 - 14:04 #5
her er valgt 2 decimaler..
12. december 2014 - 14:12 #6
De ovennævnte funktioner vil som udgangspunkt altid blive vist med det antal decimaler du afrunder/-korter til.

Eller kan det altid ændres manuelt.
19. december 2014 - 08:47 #7
Fik du løst din udfordring?
Avatar billede sgadegaard Nybegynder
05. januar 2015 - 14:55 #8
Den er næsten løst :-), nu er problemet bare hvordan jeg får den indsat via VB

LenVal2 = Len(Workbooks(ToDoc).Sheets(1).Cells(o, 5))
PosComma2 = InStr(1, Workbooks(ToDoc).Sheets(1).Cells(o, 5), ",")
NoDigits2 = LenVal2 - PosComma2
Workbooks(ToDoc).Sheets(1).Cells(o, 13).Formula = "=IF(ABS(RC[-4])>ROUND(RC[-8];NoDigits2);"!";"")"

VB melder fejl når jeg prøver at indsætte "!"
Hvordan skal det skrives?
Avatar billede sgadegaard Nybegynder
06. januar 2015 - 10:20 #9
Så er den løst, jeg tror erikjuul får point for at komme med det første hint.

LenVal = Len(Workbooks(ToDoc).Sheets(1).Cells(o, 5))
PosComma = InStr(1, Workbooks(ToDoc).Sheets(1).Cells(o, 5), ",")
NoDigits = LenVal2 - PosComma2
Workbooks(ToDoc).Sheets(1).Cells(o, 13).Formula = "=IF(ABS(RC[-4])>ROUND(RC[-8]," & NoDigits & "),""!"","""")"

Erik vil du sende et svar :-)
06. januar 2015 - 13:43 #10
OK!
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