Avatar billede pejsen Nybegynder
30. oktober 2005 - 20:47 Der er 5 kommentarer og
2 løsninger

VBA - Colorindex

I denne kode vil jeg gerne have flettet følgende:


Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("K:K")) Is Nothing Then
 
  Select Case UCase(Target)

Case "RESERVE"
            Range("B" & Target.Row & ":M" & Target.Row).Interior.ColorIndex = 19
            Range("B" & Target.Row & ":M" & Target.Row).Font.ColorIndex = 1

Hvis teksten "Dag" står i kolonne M. skal Casen "Reserve" udfører ovenstående:


Hilsen Jan
30. oktober 2005 - 22:19 #1
Sådan ?

Case "RESERVE"
    If UCASE(Range("M" & CStr(Target.Row)).Value) = "DAG" Then
        Range("B" & Target.Row & ":M" & Target.Row).Interior.ColorIndex = 19
        Range("B" & Target.Row & ":M" & Target.Row).Font.ColorIndex = 1
    End If
Avatar billede pejsen Nybegynder
31. oktober 2005 - 00:02 #2
Hej Flemming

Jeg kan ikke få koden til at virke!

Her er hele koden.

If Not Intersect(Target, Range("K:K")) Is Nothing Then
 
  Select Case UCase(Target)

        Case "FYRET"
            Range("B" & Target.Row & ":M" & Target.Row).Interior.ColorIndex = 3
            Range("B" & Target.Row & ":M" & Target.Row).Font.ColorIndex = 1
        Case "SYG"
            Range("B" & Target.Row & ":M" & Target.Row).Interior.ColorIndex = 7
            Range("B" & Target.Row & ":M" & Target.Row).Font.ColorIndex = 1
        Case "RESERVE"
            Range("B" & Target.Row & ":M" & Target.Row).Interior.ColorIndex = 43
            Range("B" & Target.Row & ":M" & Target.Row).Font.ColorIndex = 1
        Case "AFTEN"
            Range("B" & Target.Row & ":M" & Target.Row).Interior.ColorIndex = 44
            Range("B" & Target.Row & ":M" & Target.Row).Font.ColorIndex = 1
        Case "DAG"
            Range("B" & Target.Row & ":M" & Target.Row).Interior.ColorIndex = 19
            Range("B" & Target.Row & ":M" & Target.Row).Font.ColorIndex = 1
        Case "NAT"
            Range("B" & Target.Row & ":M" & Target.Row).Interior.ColorIndex = 33
        Case "BARSEL"
            Range("B" & Target.Row & ":M" & Target.Row).Interior.ColorIndex = 24
            Range("B" & Target.Row & ":M" & Target.Row).Font.ColorIndex = 1
        Case "KURSUS"
            Range("B" & Target.Row & ":M" & Target.Row).Interior.ColorIndex = 14
            Range("B" & Target.Row & ":M" & Target.Row).Font.ColorIndex = 2
        Case "FERIE"
            Range("B" & Target.Row & ":M" & Target.Row).Interior.ColorIndex = 6
            Range("B" & Target.Row & ":M" & Target.Row).Font.ColorIndex = 1
        Case "AFSPADSERE"
            Range("B" & Target.Row & ":M" & Target.Row).Interior.ColorIndex = 37
            Range("B" & Target.Row & ":M" & Target.Row).Font.ColorIndex = 1
        Case "OPPASSER"
            Range("B" & Target.Row & ":M" & Target.Row).Interior.ColorIndex = 22
            Range("B" & Target.Row & ":M" & Target.Row).Font.ColorIndex = 1
        Case "PRINT"
        Range("B" & Target.Row & ":M" & Target.Row).Interior.ColorIndex = 23
        Range("B" & Target.Row & ":M" & Target.Row).Font.ColorIndex = 2

        Case Else
            Rows(Target.Row).Interior.ColorIndex = xlNone
            Range("B" & Target.Row & ":M" & Target.Row).Font.ColorIndex = 1
      End Select

End If
End Sub
Avatar billede pejsen Nybegynder
31. oktober 2005 - 00:51 #3
øh.. Lige et øjeblik

Hvis jeg nu har "Titel" i kolonne K. De ligger i en valideringsliste .

RESERVE
ASS.
OPPASSER
VÆRKFØRER
TILLIDSREPRÆSTANT



i Kolonne M har jeg ligeledes i en valideringsliste "Status"

DAG
AFTEN
NAT
FERIE
SYG

Hver "Titel" skal farvelægge (Row "B:M")

Det jeg vil vise i regnarket er: eksempel
En RESERVE skal farvelægges med Colorindex= 43, uanset om vedkommende er på DAG, AFTEN eller NAT
En OPPASSER skal farvelægges med Colorindex= 22, uanset om vedkommende er på DAG, AFTEN eller NAT


Derimod vil en ASS skulle farvelægges ud fra om vedkommende er på:
DAG  ColorIndex  = 19
AFTEN ColorIndex  = 33
NAT  ColorIndex  = 44

Hvordan gør jeg det????
31. oktober 2005 - 08:26 #4
jeg er ikke så skarp her mandag morgen, men hvis du sender mig arket, så kigger jeg på det i løbet af i dag. fvd@SmartOffice.dk
31. oktober 2005 - 12:43 #5
Her er løsningen:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = True
    On Error Resume Next
   
    If Not Intersect(Target, Range("M:M")) Is Nothing Then
        If UCase(Range("K" & CStr(Target.Row)).Value) = UCase("ASS.") Then
            ControledByColumnK Target.Offset(0, -2)
        Else
            ControledByColumnM Target
        End If
    End If
   
    If Not Intersect(Target, Range("K:K")) Is Nothing Then
        If UCase(Range("K" & CStr(Target.Row)).Value) = UCase("ASS.") Then
            ControledByColumnK Target
        Else
            ControledByColumnM Target.Offset(0, 2)
        End If
    End If
    Application.EnableEvents = True
End Sub

Private Sub ControledByColumnK(ByVal rCell As Range)
    ' Farver ASS. farve
    Range("B" & rCell.Row & ":M" & rCell.Row).Interior.ColorIndex = 50 'Ret til rigtigt nr
    Range("B" & rCell.Row & ":M" & rCell.Row).Font.ColorIndex = 1
End Sub

Private Sub ControledByColumnM(ByVal rCell As Range)
    Select Case UCase(rCell.Value)
        Case "FYRET"
            Range("B" & rCell.Row & ":M" & rCell.Row).Interior.ColorIndex = 3
            Range("B" & rCell.Row & ":M" & rCell.Row).Font.ColorIndex = 1
        Case "SYG"
            Range("B" & rCell.Row & ":M" & rCell.Row).Interior.ColorIndex = 7
            Range("B" & rCell.Row & ":M" & rCell.Row).Font.ColorIndex = 1
        Case "AFTEN"
            Range("B" & rCell.Row & ":M" & rCell.Row).Interior.ColorIndex = 44
            Range("B" & rCell.Row & ":M" & rCell.Row).Font.ColorIndex = 1
        Case "DAG"
            Range("B" & rCell.Row & ":M" & rCell.Row).Interior.ColorIndex = 19
            Range("B" & rCell.Row & ":M" & rCell.Row).Font.ColorIndex = 1
        Case "NAT"
            Range("B" & rCell.Row & ":M" & rCell.Row).Interior.ColorIndex = 33
        Case "BARSEL"
            Range("B" & rCell.Row & ":M" & rCell.Row).Interior.ColorIndex = 24
            Range("B" & rCell.Row & ":M" & rCell.Row).Font.ColorIndex = 1
        Case "KURSUS"
            Range("B" & rCell.Row & ":M" & rCell.Row).Interior.ColorIndex = 14
            Range("B" & rCell.Row & ":M" & rCell.Row).Font.ColorIndex = 2
        Case "FERIE"
            Range("B" & rCell.Row & ":M" & rCell.Row).Interior.ColorIndex = 6
            Range("B" & rCell.Row & ":M" & rCell.Row).Font.ColorIndex = 1
        Case "AFSPADSERE"
            Range("B" & rCell.Row & ":M" & rCell.Row).Interior.ColorIndex = 37
            Range("B" & rCell.Row & ":M" & rCell.Row).Font.ColorIndex = 1
       
        Case Else
            Rows(rCell.Row).Interior.ColorIndex = xlNone
            Range("B" & rCell.Row & ":M" & rCell.Row).Font.ColorIndex = 1
    End Select
End Sub
Avatar billede pejsen Nybegynder
31. oktober 2005 - 17:22 #6
Tusinde tak for hjælpen

Hilsen Jan
31. oktober 2005 - 17:27 #7
ingen årsag - blot accepter et svar og luk spørgsmålet igen :-)
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