Hej Jeg har oprettet en ugeplan med plads til 30 medarbejdere. Hver dag i ugen indeholder 8 celler (fredag 5 celler). Disse celler farver jeg i forskellige farver med dertil oprettede typografier, som angiver opgave. Hver celle repræsenterer én arbejdstime. Hvordan laver jeg en sammentælling af farvede celler? Der er ingen data i cellerne, udover den valgte typografi, altså her bare en fyldfarve af cellen.
Jeg vil gerne ha' en sammentælling af planlagte arbejdstimer, samt en sammentælling af ledige timer, altså tomme celler.
Hvis du kun skal tælle celler med farve, uanset farven, så er der en brugerdefineret funktion her
Function AntalFarvet(rRange As Range) As Double Dim rCell As Range Dim dCount As Integer dCount = 0 Application.Volatile For Each rCell In rRange If rCell.Interior.ColorIndex <> xlNone Then dCount = dCount + 1 End If Next rCell AntalFarvet = dCount End Function
Hvis den skal adskille farverne fra hinanden og summere på cellerne, så er det denne:
Function ColorCount(rRange As Range, rColor As Range) As Double Dim rCell As Range Dim dCount As Double dCount = 0 Application.Volatile For Each rCell In rRange If rCell.Interior.ColorIndex = rColor.Interior.ColorIndex Then dCount = dCount + rCell End If Next rCell ColorCount = dCount End Function
Det er jo nok bare mig der fatter nada....... men jeg har én celle som skal lave en sammentælling af antallet af farvede celler indenfor en nærmere defineret kolonne af celler. Jeg kan ikke rigtig få ovenstående til at virke på det?
ind, den kan du så trække til højre som du vil, overskrifterne i række 46, skal have samme farve som timerne i området, så får du timer for projektet, uanset hvem som arbejder på det.
Nu nærmer vi os helt klart noget :) "Skagen Fyr" og "Vejgård Boldklub" har samme farve, fordi de begge er anlægsopgaver som Peter er ansvarlig for. Dette står i typografien. Det eneste jeg skal bruge til noget er, at alle celler med farve, uanset hvilken farve de måtte ha', skal tælles sammen til en sum, hvor hver farvet celle tæller for 1.
Timer for det enkelte projekt har vi i et timestyringsprogram. Dette excel-ark skal blot bruges som planlægningshjælp på en interaktiv storskærm. Det skulle gerne gi' et overblik over hvor mange mand vi har brug for med aktuel ordrebeholdning, samt hvilke folk vi kan flytte rundt mellem de forskellige projekter.
Tusind tak for ovenstående inputs - det virker. Men kan nogen svare på hvorfor sammentællingen ikke sker med det samme? Der går et stykke tid, og pludselig har den registreret det. Kan man gøre noget for at det skal ske straks - vi har jo ikke hele dagen til planlægning :)
Dem som skal bruge skemaet skal bruge det via en interaktiv storskærm, og de skulle meget gerne kunne nøjes med blot at afsætte timerne indenfor der forskellige arbejdskategorier.
Hvad kan årsagen være til der ikke beregnes med det samme?
Årsagen er, at ændring af formatering, som f.eks. farver, ikke er en såkaldt 'flygtig' handling i Excel, og derfor ikke opfattes af Excel, som, at der skal genberegnes.
Derfor skal man enten manuelt genberegne, ved at trykker på [F9] eller også skal man ligge programlinjen:
Hvis du kigger på den funktion, som jeg linker til, så er kodelinjen godt nok lagt ind, men som du også ser, så er den kommenteret ud - altså ikke "i drift".
Fjern kommentar apostroffen, og det hele skulle virke.
Kommentar apostroffen er sat ind fordi jeg ikke selv benytter mig af "flygtige" regneark :-)
Jeg har stadig problemer med funktionen. Application.Volatile er lagt ind i programmeringen der ser sådan ud:
Function AntalFarvet(rRange As Range) As Double Dim rCell As Range Dim dCount As Integer dCount = 0 Application.Volatile For Each rCell In rRange If rCell.Interior.ColorIndex <> xlNone Then dCount = dCount + 1 End If Next rCell AntalFarvet = dCount End Function
"Automatisk beregning" er også slået til, og alligevel skal jeg benytte F9 for at beregne hver gang jeg har ændret formatteringen af celler.
Hvad kan jeg gøre for at få det til at ske automatisk, så snart jeg har farvet en celle??
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.CalculateFull End Sub
og denne er OK i Module4 og må IKKE være i arkmodulet
Function AntalFarvet(rRange As Range) As Double Dim rCell As Range Dim dCount As Integer dCount = 0 Application.Volatile For Each rCell In rRange If rCell.Interior.ColorIndex <> xlNone Then dCount = dCount + 1 End If Next rCell AntalFarvet = dCount End Function
Jeg er glad for din hjælp, men fatter ikke en meter :) Hvad er forskellen? Jeg er bare ganske almindelig bruger af excel og har ingen erfaring i Visual Basic og alt det andet.....
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.