Avatar billede hubertus Seniormester
29. maj 2012 - 21:49 Der er 7 kommentarer og
1 løsning

VBA: Farvelægge lørdag og søndag ud fra dato i celle

Jeg har et skema som dækker en hel måned. ugenummeret står i række 2, og datoen i række 3. Hvordan får jeg farvelagt de datoer, som svarer til lørdage og søndage i den pågældende måned?
Avatar billede store-morten Ekspert
29. maj 2012 - 21:56 #1
Skal det være VBA ?

Ellers prøv:

Marker Data i række 3
Betinget formatering
Bruge en formel til at bestemme, hvilken celler der skal formateres
=ELLER(UGEDAG(A3)=7;UGEDAG(A3)=1)
Vælg farve
Avatar billede store-morten Ekspert
29. maj 2012 - 23:00 #2
Det er så vigtigt at se i "Boksen navn" hvad der står, efter du har markeret?
eks.1. A3: 01-05-2012 Markeres venstre mod højre: =ELLER(UGEDAG(A3)=7;UGEDAG(A3)=1)
eks.2. AE1: 31-05-2012 Markeres højre mod venstre: =ELLER(UGEDAG(AE1)=7;UGEDAG(AE1)=1)

TIP: Lav formateringen på: 01-05-2012 og derefter "Fyld ud"
Avatar billede hubertus Seniormester
30. maj 2012 - 06:52 #3
Hej Morten
Ja, det skal være via Vba, da det skal bruges, som en del af en mere omfattende kode.
nb. jeg havde set den tidligere tråd, hvor du svarede med en betinget formatering.
Avatar billede Mads Larsen Nybegynder
30. maj 2012 - 08:56 #4
Her er en idé til hvordan det kunne gøres med VBA :)

Sub Farve()
Range("A3").Select

Do Until Len(ActiveCell.Text) = 0
    If Weekday(ActiveCell.Text) = 7 Or Weekday(ActiveCell.Text) = 1 Then
        ActiveCell.Interior.ColorIndex = 36
    End If
ActiveCell.Offset(0, 1).Select
Loop

End Sub
Avatar billede hubertus Seniormester
30. maj 2012 - 22:16 #5
Hej It-GuFFe
Dit forslag ser godt ud, den kan jeg godt brygge videre på :0))
Kan du også hjælpe det sidste stykke vej, med at konvertere det fundne ugenummer til datoen på den første dag i ugen (mandag)?
Avatar billede Mads Larsen Nybegynder
31. maj 2012 - 08:20 #6
Her er hvordan du kan få UgeNr på :)

Sub UgeNr()
    Range("A1").Select
    Do Until Len(ActiveCell.Text) = 0
        If Weekday(ActiveCell.Text) = 2 Then
            ActiveCell.Offset(1, 0) = CInt(Format(ActiveCell.Text, "ww"))
        End If
    ActiveCell.Offset(0, 1).Select
Loop
End Sub
Avatar billede hubertus Seniormester
01. juni 2012 - 07:00 #7
Super - Lægger du et svar, så er der point på vej. :0)). Tak for hjælpen.

nb. kan jeg komme fra et ugenummer til første dag i ugen?
Avatar billede Mads Larsen Nybegynder
01. juni 2012 - 08:20 #8
Her er et svar :)


Fandt lige sådan en her, det er dog med dato og ikke ugenummer.

Function Last_Monday(vDate As Date)
    'if today is Monday, then return today's date
    If Weekday(vDate, vbSunday) = 2 Then
        Last_Monday = vDate
    Else
        Last_Monday = vDate - Weekday(vDate, vbSunday) + 2
    End If
End Function
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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