Kan man lave en formel, hvor man kun vil sumere tal skrevet med rød f.eks. (Jeg har nogle felter med sorte tal og andre med røde tal. Kan man sumere dem på baggrund af deres skriftfarve ?) Vil helst undgå VBA
Function ColorSum(Seller, Farve) Application.Volatile For Each c In Seller If c.Font.ColorIndex = Farve Then cSum = cSum + c.Value End If Next ColorSum = cSum End Function
Ikke med mindre den røde farve kommer fra en betinget formatering. Så kan du anvende samme betingelse til summereringen, som du anvender til formatering.
Har du manuelt valgt rød farve i celler, kan du ikke.
Tror faktisk jeg kan bruge en betinget formatering. Det er så bare lige hvordan jeg får det skrevet rigtigt. Når man indtaster et tal i et felt skal det være rødt, hvis man starter med at skrive o (for overtid) foran tallet (kan være et kommatal fx. o5,25). Ellers skal det bare være sort. Når man skriver o foran skal det ikke vises i feltet, men tallet skal bare blive rødt. Derefter må man kunne lave en betingelse for at summere alle tal som starter med o.
Du kan ikke indtaste et bogstav i et tal-felt. Det vil sige at hvis din indtastning starter med et "o", vil det blive opfattet, som et tekstfelt, der ikke uden videre kan laves beregninger på.
Den optimale løsning vil være at indtaste o-et i en celle, og timetallet i en anden celle. Det vil være langt den letteste løsning for dig.
Et andet problem i det du nævner er at du indtaster timetal, som et decimaltal. Herved afskærer du dig fra at benytte de indbyggede funktioner til beregninger på timer/minutter.
Der er ingen problemer i at benytte betinget formatering i forhold til det du nævner.
Kan lave det sådan at man skriver 0 istedet for o foran tallet ? (vel helst undgå at skulle bruge et ekstra felt)
Lyder fornuftigt at bruge timer/minutter beregning. Man skal bare kun kunne skrive/regne med et interval på 15 min. Har ikke rigtig arbejdet med Timer/minutter beregning før.
Hvordan gør jeg så, når jeg har nogle medarbejdere der skal indtaste deres arbejdstid. De skal så kunne angive om det er alm. timer eller overtidstimer !! Da ikke alle er lige smarte til at håndtere en pc skal det gøres meget simpel (med at man taster et tal/bogstav inden selve timeantallet). Kan en betinget formatering ikke skelne mellem de indtastede værdier, og kun nøjes med at srive timeantalet i feltet bare med rød skrift.
Du KAN ikke have 2 informationer i den samme celle, hvis det er noget du skal bruge til beregninger og vil anvende betinget formatering på.
Hvis du endelig VIL benytte fremgangsmåden med at indtaste et "o" foran et timetal - i den samme celle (hvad jeg endnu en gang vil fraråde på det kraftigste), vil jeg foreslå at du laver dette som en indtastningscelle, og herfra overfører klokkeslettet til en anden celle, som efterfølgende benyttes til beregningerne.
Det er heller ikke særligt logisk for urutinerede brugere at de i samme celle skal indtaste et bogstav og et klokkeslet i samme celle. Det er da langt lettere at forklare den at de i en celle skal indtaste om det er alm.timer/overtimer og i en anden antallet af timer.
1.Forslag : indsæt i arkets kodemodul indtast o efterfulgt af tal
Private Sub Worksheet_Change(ByVal Target As Range) If Left(Target, 1) = "o" Then Target = Mid(Target, 2, Len(Target)) Target.Font.ColorIndex = 3 End If End Sub
2.Forslag : indsæt i arkets kodemodul dobbeltklik på den selle hvor tal skal være rød
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Target = InputBox("Indtast Overtid : ") Target.Font.ColorIndex = 3 End Sub
=ColorProdukt(J9:J128;3;1;0) -sumerer værdier i J9:J128 hvis er rød og sagsnr. = 1 =ColorProdukt(J9:J128;3;1;-1) -sumerer værdier i J9:J128 hvis er rød og sagsnr. i I9:I128 = 1 =ColorProdukt(J9:J128;3;1;2) -sumerer værdier i J9:J128 hvis er rød og sagsnr. i L9:L128 = 1
Function ColorProdukt(Seller, Farve, Nummer, Kolonne) Dim c, cSum Application.Volatile For Each c In Seller If c.Offset(0, Kolonne) = Nummer And c.Font.ColorIndex = Farve Then cSum = cSum + c.Value End If Next ColorProdukt = cSum End Function
det er hvis dine sagsnumre ikke er i samme kolonne som de værdier du vil sumere 0 = samme kolonne/range -1 hvis de er i kolonnen til venstre 2= 2 kolonner til højre
for at lukke skal du markere box med navn og klikke accepter
Synes godt om
Ny brugerNybegynder
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.