Excel: villkorstyrd formatering
Hejsan. Jag har gjor en lista med 4 kolumner per rad och i kolumn 1 finns "starttid" och i kolumn 2 finns "sluttid" enligt följande:
**Startid Sluttid Plats Område
**09:00 10:30 GUP TUB
10:45 11:30 HÖK TUB
…
Jag skulle vilja ha en funktion som läser av aktuell tid ( kanske =NU() ) och jämför den med starttid och sluttid så att ifall aktuell tid ligger inom tidsspannet så blir bakgrundndsfärgen för denna rad grön och annars blir bakgrundsfärgen röd. Detta måste naturligvis uppdateras kontinuerligt så att man kan ha excelarket öppet.
Upptäckte ganska snart att jag hade alldeles för dåliga kunskaper i Excel för att kunna genomföra detta. Ni som vet bättre - är detta genomförbart, och i så fall hur?
Mycket tacksam för svar!
Du kan inte få det att uppdateras helt med automatik utan makron, men varje gång du skriver i bladet eller trycker F9 så uppdateras det.
- Markera tabellen och gå till Format, Villkorstyrd formatering
- Välj Formeln är i första listan
- Ange följande formel:
=OCH($A2<=KLOCKSLAG(TIMME(NU()); MINUT(NU()); SEKUND(NU())); $B2>=KLOCKSLAG(TIMME(NU()); MINUT(NU()); SEKUND(NU()))) - Tryck på Formatera och formatera med grön bakgrundsfärg
- Tryck Ok
Varje gång du nu trycker på F9 så räknas bladet om och formateringen uppdateras.
Om du vill ha alla andra rader röda så formaterar du dom som vanligt med röd fyllningsfärg.
Bifogar en fil med ett exempel.
// Johan
Mvh // Johan
Underbart! tack Johan, helt suveränt1
Tyvärr hittar jag inte någon bifogad fil.
Mvh
Martin V
En sista fråga Johan 
Du skrev i din kommentar att man inte kan få detta att uppdateras automatiskt utan macro… Går det att skiva ett macro som uppdaterar sidan exempelvis en gång per minut?
Mvh
Martin V
Ja, öppna Visual Basic Editorn (Alt+F11) och dubbelklicka på ThisWorkbook. Lägg in följande kod:
Private Sub Workbook_Open()
Recalc
End Sub
Skapa en ny modul (Infoga, Modul) och klistra in följande kod:
Public Sub Recalc()
ActiveSheet.Calculate
Application.OnTime Now + (1 / 24 / 60), "Recalc"
End Sub
Spara arbetsboken, stäng den och öppna den igen.
// Johan
Mvh // Johan
Super! Tack så mycket Johan, du är en klippa!
Har märkt en sak bara, när klockslaget går över till nästa dygn fungerar det inte, ex. 23:00 - 01:00.
Går det på något sätt att matcha datum och klockslag istället för enbart klockslag för att på detta sätt komma runt detta problem?
Mvh
Martin
Ja, det blir nästan bara enklare. Om du i cellerna skriver hela datum och klockslag kan du sedan kontrollera om det är större eller mindre än NU().
Det borde alltså blir:
=OCH($A2<=NU(); $B2>=NU())
Men då gäller det som sagt att du skrivit hela datum och klockslag i cellerna, typ 2007-07-30 22:45.
Mvh // Johan
Oki, men tyvärr är det här ett schema som fortlöper oberoende av dag och datum, så då måste man väl uppdatera listan och ändra till dagens datum varje gång man ska använda den?
Dessutom kan inte kolumnbredden vara så bred att hela datumet och klockslag syns i cellerna, vilket kommer att göra det väldigt oöverskådligt då man bara kommer att kunna se en del av datumet.
Går det på något annat sätt att matcha formeln så att när kl går över 23:59 så matchas det på något annat sätt?