07. november 2006 - 20:26Der er
10 kommentarer og 1 løsning
Macro til auto farvelægning
Jeg har lavet en kalender, som jeg gerne nemt vil kunne skifte farve på.
Fra række 5 til 35 vil jeg gerne have kolonne b,c,d og e givet baggrundsfarve. Hvis der i kolonne b står Lørdag skal kolonnne b-e have den baggrundsfarve der er valgt i felt AH5. Hvis der i kolonne b står Søndag skal kolonne b-e have den baggrundsfarve der er valgt i felt AH6.
Sådan har jeg gjort det nu, men jeg vil gerne give det nye år en ny farve, så de adskiller klart fra hinanden. Og det er noget besværligt at ændre via betinget formatering. Iøvrigt indeholder AH5 ingen data, men kun den ønskede baggrundsfarve.
Som almindelig makro, med fjernelse af eksisterende farve
Public Sub SkiftFarve() Dim I As Integer, Farve1 As Integer, Farve2 As Integer Farve1 = Range("AH5").Interior.ColorIndex Farve2 = Range("AH6").Interior.ColorIndex For I = 5 To 35 Select Case UCase(Cells(I, "B")) Case "LØRDAG" Range("B" & I & ":E" & I).Interior.ColorIndex = Farve1 Case "SØNDAG" Range("B" & I & ":E" & I).Interior.ColorIndex = Farve2 Case Else Range("B" & I & ":E" & I).Interior.ColorIndex = xlNone End Select Next End Sub
kabbak - din løsning dækker præcis min kalender funktion.
Som du nok kan regne ud vil din programstump farvelægge januar. Jeg skal jo så gøre det samme for de resterende måneder. Er der en snildere måde, end at kopiere dit program 11 gange efter hinanden og så rette kolonne bogstaverne? Februar går fra G til J.
Public Sub SkiftFarve() Dim I As Integer, Farve1 As Integer, Farve2 As Integer, C As Integer Farve1 = Range("AH5").Interior.ColorIndex Farve2 = Range("AH6").Interior.ColorIndex For C = 2 To 30 Step 5 ' går ud fra at der er 6 måneder, hvor hver måner er 2 celler med 1 tom imellem ' hvis du har 12 måneder ved siden af hinanden skal der stå 60 i stedet for 30 For I = 5 To 35 Select Case UCase(Cells(I, "B")) Case "LØRDAG" Range(Cells(I, C), Cells(I, C + 3)).Interior.ColorIndex = Farve1 Case "SØNDAG" Range(Cells(I, C), Cells(I, C + 3)).Interior.ColorIndex = Farve2 Case Else Range(Cells(I, C), Cells(I, C + 3)).Interior.ColorIndex = xlNone End Select Next I Next C End Sub
For C = 2 To 30 Step 5 ' går ud fra at der er 6 måneder, hvor hver måner er 4 celler med 1 tom imellem ' hvis du har 12 måneder ved siden af hinanden skal der stå 60 i stedet for 30 For I = 5 To 35
Jeg har ikke lige nået at prøve det nye tiltag endnu, men det ser rigtigt ud.
Tak for hjælpen.
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.