Avatar billede al_pacone Nybegynder
06. maj 2004 - 02:51 Der 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.
Avatar billede janvogt Praktikant
06. maj 2004 - 04:10 #1
Du kan bruge betinget formatering til formålet.
Avatar billede al_pacone Nybegynder
06. maj 2004 - 08:12 #2
God ide med betinget formatering.
Har kigget lidt på det, og kan ikke helt gennemskue det.
Kan du give et eksempel.
Avatar billede janvogt Praktikant
06. maj 2004 - 09:30 #3
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.
Avatar billede al_pacone Nybegynder
06. maj 2004 - 20:39 #4
Nu er det sådan at der er ca. 7000 celler at navngive, og skrive betinget formatering til, så jeg tror ikke det er den optimale løsning.
Avatar billede kabbak Professor
06. maj 2004 - 21:57 #5
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

skal være i modulet på det ark det skal virke på.

Ret Ark1 til det ark den skal tjekke.
Avatar billede kabbak Professor
06. maj 2004 - 22:01 #6
hvis ( Fe, Af, Ku, Sy, An ) står på ark1 skal denne linie ændres.

A = Target.Value
til
A = Sheets("Ark1").Range(Target.Address).value
Avatar billede al_pacone Nybegynder
06. maj 2004 - 22:52 #7
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.
Avatar billede kabbak Professor
06. maj 2004 - 23:35 #8
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

End Sub
Avatar billede al_pacone Nybegynder
07. maj 2004 - 00:04 #9
Hvis jeg ændrer flere celler på en gang, går skidtet i fejl.
Run-time error'13':
Type mismatch
Avatar billede kabbak Professor
07. maj 2004 - 00:27 #10
ja. den kan kun styre en af gangen
Avatar billede al_pacone Nybegynder
07. maj 2004 - 00:29 #11
Kan det laves, så den også fungerer ved ændring af flere celler?.
Avatar billede kabbak Professor
07. maj 2004 - 00:30 #12
nu skulle den virke på flere.

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
Avatar billede al_pacone Nybegynder
07. maj 2004 - 00:43 #13
Alletiders. Så lykkedes det også.
Der er jo simpelthen ingen grænser for, hvad der kan lade sig gører i VBA, med lidt fælles hjælp.

Tak for hjælpen kabbak.
Også en tak til janvogt for indsatsen.
Avatar billede kabbak Professor
07. maj 2004 - 00:44 #14
du får lige et svar. ;-))
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