Avatar billede Butterfly Ekspert
12. september 2019 - 12:14 Der er 17 kommentarer og
1 løsning

SumBold fejler

Hej
Jeg har ca. 4000 rækker hvor jeg skal lægge en masse tal sammen, ca. 100. Hvis jeg bruger SumBold får jeg et resultat, hvis jeg bruger A1+A12+A23+A34+A45.... også fremdeles ca. 100 gange, så når jeg et lidt andet resultat, det rigtige, for jeg har et kontrol ark.
Det er ligegyldigt om jeg lægger tallene sammen med eller uden kommatal, når jeg bruger SumBold, resultatet bliver det samme og kun et helt tal.
Nogen der har et bud på, hvad der er galt med SumBold?
Avatar billede Jan Hansen Ekspert
12. september 2019 - 12:47 #1
SumBold er det ikke en UDF (brugerdefineret funktion)?

Hvis, må vi se koden?
Avatar billede falster Ekspert
12. september 2019 - 20:32 #2
Hvis det er denne, er der vba-kode et stykke nede (den de sælger i Kutools rykker de nok ikke ud med koden til).

https://www.extendoffice.com/documents/excel/1339-excel-sum-count-bold-cells.html

Desuden er selve funktionaliteten

if you want to sum only the bold numbers in a data range

måske forklaring på, hvorfor det giver noget andet end sammenlægningen.

Hvis det altså er denne SumBold, som Butterfly anvender.
Avatar billede Jan Hansen Ekspert
12. september 2019 - 20:59 #3
hvis det er denne
Function SumBold(WorkRng As Range)
'Update 20131202
Dim Rng As Range
Dim xSum As Long
For Each Rng In WorkRng
    If Rng.Font.Bold Then
        xSum = xSum + Rng.Value
    End If
Next
SumBold = xSum
End Function

prøv at rette til denne.

Function SumBold(WorkRng As Range) as variant
'Update 20131202
Dim Rng As Range
Dim xSum As variant
For Each Rng In WorkRng
    If Rng.Font.Bold Then
        xSum = xSum + Rng.Value
    End If
Next
SumBold = xSum
End Function
Avatar billede Butterfly Ekspert
13. september 2019 - 10:14 #4
Hej Jan
Jeg havde den første version og skiftede til den anden, men det hjalp desværre ikke.
Avatar billede falster Ekspert
13. september 2019 - 10:27 #5
Du kan måske tjekke, om der er en "fejl" i formatet i en eller flere af cellerne, således at funktionen ikke får fat i de samme, som når du lægger sammen.

Det simple er, hvis differencen er lig med værdien i én celle.

Der er også nogle muligheder for at udtrække:

https://trumpexcel.com/filter-bold-font-formatting-in-excel/
Avatar billede Jan Hansen Ekspert
13. september 2019 - 10:29 #6
Hmmm det har nogle gange hos mig været variabeltypen der har generet mig!!

Tænker måden du laver fed skrift på er det betinget formatering (bare en tanke) og om det kan have indvirkning!!

prøv i vba

Function SumBold(WorkRng As Range) as variant
'Update 20131202
Dim Rng As Range
Dim xSum As variant
For Each Rng In WorkRng
    If Rng.Font.Bold Then
        xSum = xSum + Rng.Value
        Debug.print Rng.Address &" : "& Rng.Value &" Sum:" & Xsum
    End If
Next
SumBold = xSum
End Function

for at vise debug.print tryk Ctrl+G

på denne måde kan du se hvilke celler den griber hvad de indeholder og udviklingen af xSum
Avatar billede falster Ekspert
13. september 2019 - 11:59 #7
Som Jan er inde på, medregner Kutools funktion ikke celler, som er betinget formateret med fed.

Det dyrkes en del på nettet, hvorledes man konverterer betinget formatering til statisk.

F.eks.

https://excel.tips.net/T001947_Removing_Conditional_Formats_but_Not_the_Effects.html

Ikke helt ligetil, men måske er der noget at hente.
Avatar billede Butterfly Ekspert
13. september 2019 - 12:05 #8
Hej Jan
Det regner desværre også forkert. Min Bold er sat ind, ikke betinget formatering.
Avatar billede Jan Hansen Ekspert
13. september 2019 - 12:51 #9
Så må vi nok be om en dummy fil med fejlen til analyse
Avatar billede store-morten Ekspert
13. september 2019 - 14:33 #10
Måske denne:
Function TaelFed(ran As Range) As Double
    cou = 0
    For Each c In ran.Cells
        If c.Font.Bold = True Then
            cou = cou + 1
        End If
    Next c
    TaelFed = cou
End Function
Avatar billede Jan Hansen Ekspert
13. september 2019 - 15:08 #11
#10
Du tæller antallet af celler med fed, det indholdet der skal tælles sammen.
Hvis du ændre det, er det som jeg ser det den samme som er foreslået.
Avatar billede Jan Hansen Ekspert
13. september 2019 - 15:10 #12
Butterfly prøv

Function SumBold(WorkRng As Range) as variant
'Update 20131202
Dim Rng As Range
Dim xSum As variant
For Each Rng In WorkRng
    If Rng.Font.Bold Then
        xSum = xSum + (Rng.Value*1)
    End If
Next
SumBold = xSum
End Function

Måske opfatter excel dine tal som tekst
derfor Rng.value*1
Avatar billede store-morten Ekspert
13. september 2019 - 15:13 #13
Ups...
Function SumFontCol(cel, ran As Range) As Double
    Application.Volatile
    colo = cel.Font.Color
    colsum = 0
    For Each c In ran.Cells
        If c.Font.Color = colo Then
            colsum = colsum + c.Value
        End If
    Next c
    SumFontCol = colsum
End Function
Avatar billede store-morten Ekspert
13. september 2019 - 15:29 #14
Jeg er vist træt
Function SumFed(ran As Range) As Double
    Application.Volatile
    cou = 0
    For Each c In ran.Cells
        If c.Font.Bold = True Then
            cou = cou + c.Value
        End If
    Next c
    SumFed = cou
End Function
Avatar billede Jan Hansen Ekspert
13. september 2019 - 15:58 #15
Undskyld store-morten men udover Application.Volatile hvad er så forskellen på:

Function SumBold(WorkRng As Range)
'Update 20131202
Dim Rng As Range
Dim xSum As Long
For Each Rng In WorkRng
    If Rng.Font.Bold Then
        xSum = xSum + Rng.Value
    End If
Next
SumBold = xSum
End Function

og

Function SumFed(ran As Range) As Double
    Application.Volatile
    cou = 0
    For Each c In ran.Cells
        If c.Font.Bold = True Then
            cou = cou + c.Value
        End If
    Next c
    SumFed = cou
End Function
Avatar billede store-morten Ekspert
13. september 2019 - 16:43 #16
Undskyld Jan Hansen, jeg var træt og forsøgte at rette min fejl.
Avatar billede Butterfly Ekspert
15. oktober 2019 - 12:08 #17
Hej
Undskyld det sene svar, men jeg har været på en dejlig "Sommerferie" på den anden side af jorden :-)
Avatar billede Butterfly Ekspert
15. oktober 2019 - 15:01 #18
Mange tak store-morten det virker perfekt, lige hvad jeg ønskede mig.
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