06. maj 2004 - 02:51Der er
13 kommentarer og 1 løsning
Farve ved ændringer.
Jeg har brug for at få markeret ændringer i en turnusplan jeg ”brygger” på.
Turnusplanen er lavet ud fra to identiske ark. Ark1 og Ark2. Ferie, afspadsering og meget andet, bliver påført Ark1 med forskellige farver med tilhørende tekst, alt efter arten af fravær. Ændringer i vagtskifte bliver påført som ændringer i tekst. N bliver feks. til D.
Det jeg gerne vil, er at markerer celler med en farve når de afviger fra Ark1, og ikke indeholder et af følgende tekst. Fe, Af, Ku, Sy, An ( forkortelser af ferie, afspadsering osv. ).
Jeg forestiller mig at koden kunne ligge i Worksheet_SelectionChange.
Jeg kan se, at det kun kan lade sig gøre, hvis man navngiver cellerne.
Hvis det f.eks. er celle A1 på ark 2, som skal ændre farve, hvis cellen er forskellig fra celle A1 på ark 1, kan du gøre følgende:
Navngiv cellen A1 på ark 1 til f.eks. "CelleA1ark1" Under betinget formatering på ark 2 kan du nu skrive "=$A$1<>CelleA1ark1" under "Formel er:" Derefter kan du vælge hvilket formatering (farve) som cellen skal have, hvis cellerne er forskellige.
Private Sub Worksheet_Change(ByVal Target As Range) If Sheets("Ark1").Range(Target.Address) <> Target.Value Then A = Target.Value If A <> "Fe" Or A <> "Af" Or A <> "Ku" Or A <> "Sy" Or A <> "An" Then Target.Interior.ColorIndex = 6 ' Gul Else Target.Interior.ColorIndex = xlNone ' Ingen farve End If End If End Sub
Cellen skifter farve til gul, uanset hvilke afvigelser det har i forhold til ark2. Altså også når der står Fe, Af, Ku, Sy, An. Det skal den helst ikke.
Cellen skifter heller ikke tilbage til ingen farve, når ændringen fjernes.
Private Sub Worksheet_Change(ByVal Target As Range) If Sheets("Ark1").Range(Target.Address) <> Target.Value Then A = Sheets("Ark1").Range(Target.Address).Value If A <> "Fe" And A <> "Af" And A <> "Ku" And A <> "Sy" And A <> "An" Then Target.Interior.ColorIndex = 6 ' Gul Else Target.Interior.ColorIndex = xlNone ' Ingen farve End If Else Target.Interior.ColorIndex = xlNone ' Ingen farve End If
Private Sub Worksheet_Change(ByVal Target As Range) For Each C In Target If Sheets("Ark1").Range(C.Address) <> C.Value Then A = Sheets("Ark1").Range(C.Address).Value If A <> "Fe" And A <> "Af" And A <> "Ku" And A <> "Sy" And A <> "An" Then Target.Interior.ColorIndex = 6 ' Gul Else Target.Interior.ColorIndex = xlNone ' Ingen farve End If Else Target.Interior.ColorIndex = xlNone ' Ingen farve End If Next End Sub
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.