08. august 2003 - 09:25
Der er
8 kommentarer og
1 løsning
Betinget farve af række - afhængig af dato/deadline
Hej
Jeg er ved at udarbejde et opfølgningsskema. Hver aktivitet har en deadline. Jeg ønsker at en aktivitet som er oprettet og aktiv (det er den hvis der er en ansvarlig - dette indikeres ved at en celle er udfyldt med initialerne)
Jeg ønsker at rækken kan have 5 forskellige status - indikeres med farve på rækken.
1. Aktivitet oprettet
2. Aktivitet tildelt til en person (initialer er udfyldt)
3. Opfølgning på aktivitet - der er 3 dage til deadline.
4. dealine overskredet.
5. aktivitet udført - eksempel ved at et felt "afkrydses"
Jeg slipper vel ikke uden om noget VBA - eller?
VH FLN
08. august 2003 - 10:42
#6
Denne makro lægges ind i arkets eget kodemodul (højreklik på en arkfane, vælg Vis Koder" og kopier den ind.)
Den reagerer på ændringer i området A5:A10, men det kan du selv ændre.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo finito
If Not Intersect(Target, Range("A5:A10")) Is Nothing Then
Select Case Target.Value
Case 1: Target.Interior.ColorIndex = 9
Case 2: Target.Interior.ColorIndex = 1
Case 3: Target.Interior.ColorIndex = 5
Case 4: Target.Interior.ColorIndex = 4
Case 5: Target.Interior.ColorIndex = 2
Case Else
End Select
End If
finito:
End Sub
08. august 2003 - 12:20
#8
Tja...
Jeg ved ikke hvor interessant det er for almenheden og den er ikke specielt køn, men her kommer den
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A4:G54")) Is Nothing Then
Range(Target.Offset(0, -ActiveCell.Column + 1), Target.Offset(0, -ActiveCell.Column + 1).Offset(0, 6)).Interior.ColorIndex = 0
If Not Target.Offset(0, -ActiveCell.Column + 1).HasFormula And Not IsEmpty(Target.Offset(0, -ActiveCell.Column + 1)) Then 'Tjekker at det ikke er en formel, så projektoverskrifter ikke farves
Range(Target.Offset(0, -ActiveCell.Column + 1), Target.Offset(0, -ActiveCell.Column + 1).Offset(0, 6)).Interior.ColorIndex = 3
End If
' Tildelt person
If Not IsEmpty(Target.Offset(0, -ActiveCell.Column + 1).Offset(0, 1)) Then
Range(Target.Offset(0, -ActiveCell.Column + 1), Target.Offset(0, -ActiveCell.Column + 1).Offset(0, 6)).Interior.ColorIndex = 4
End If
' Opfølgning - 3 dage til deadline
If IsDate(Target.Offset(0, -ActiveCell.Column + 1).Offset(0, 6).Text) Then
If CDate(Target.Offset(0, -ActiveCell.Column + 1).Offset(0, 6).Text) <= DateAdd("d", 3, Date) Then
Range(Target.Offset(0, -ActiveCell.Column + 1), Target.Offset(0, -ActiveCell.Column + 1).Offset(0, 6)).Interior.ColorIndex = 5
End If
End If
' Deadline overskredet
If IsDate(Target.Offset(0, -ActiveCell.Column + 1).Offset(0, 6).Text) Then
If CDate(Target.Offset(0, -ActiveCell.Column + 1).Offset(0, 6).Text) < Date Then
Range(Target.Offset(0, -ActiveCell.Column + 1), Target.Offset(0, -ActiveCell.Column + 1).Offset(0, 6)).Interior.ColorIndex = 6
End If
End If
' Aktivitet udført
If Not IsEmpty(Target.Offset(0, -ActiveCell.Column + 1).Offset(0, 5)) Then
Range(Target.Offset(0, -ActiveCell.Column + 1), Target.Offset(0, -ActiveCell.Column + 1).Offset(0, 6)).Interior.ColorIndex = 7
End If
End If
End Sub