03. juli 2008 - 14:06Der er
14 kommentarer og 1 løsning
Ekstra Betinget formatering i Excel vha. VBA
Jeg har et område (A1:M39)i mit regneark, hvor jeg har brug for 6 forskellige "betingede formateringer". Under "Formater" i værktøjslinjen er der kun mulighed for at oprette tre forskellige. Er der mulighed for at bruge VBA og hvordan er koden? Ferie = "Grøn" Syg = "Rød" Arbejde = "Gul" Flex-fri = "Blå" Transport = "Orange" Diverse = "Lilla"
Nå men her er lidt inspiration - farver sættes i eet skud: Her er de 3 første farver anvendt.............
Sub farveLæg() For Each celle In ActiveSheet.Range("A1:M39").Cells If celle.Text = "Ferie" Then celle.Interior.ColorIndex = 4 'Grøn Else If celle.Text = "Syg" Then celle.Interior.ColorIndex = 3 'Rød Else If celle.Text = "Arbejde" Then celle.Interior.ColorIndex = 6 'Gul End If End If End If Next End Sub
Af en eller anden grund så kan jeg ikke få det til at virke. Jeg har en forventning om, at når jeg har skrevet "Syg" i en celle og skifter til anden celle så bliver baggrundsfarven 'Rød' med det samme. Det var nok det du spurgte ind til med dit spørgsmål. Hvad skal jeg ændre i koden for at få den ønskede effekt.
Rem Koden indlægges under relevante Ark Rem =================================== Private Sub Worksheet_Change(ByVal Target As Range) Dim tekst, farveNr If Not Intersect(Target, Range("A1:M39")) Is Nothing Then tekst = Target.Text farveNr = findFarve(LCase(tekst)) If farveNr <> -1 Then Target.Interior.ColorIndex = farveNr End If End If End Sub Private Function findFarve(tekst) findFarve = -1
If tekst = "ferie" Then findFarve = 4 'Grøn Else If tekst = "syg" Then findFarve = 3 'Rød Else If tekst = "arbejde" Then findFarve = 6 'Gul End If End If End If End Function
Når teksten fjernes vil jeg gerne have at baggrundsfarven 'forsvinder'. Jeg har forsøgt med If tekst = " " Then findFarve = 2 'Hvid ... men det virker ikke ...
Selv tak - har dog følende bemærkninger: 1) Når du stiller spørgsmål skal du ikke kommenterer indlæg med et SVAR - men derimod med KOMMENTAR. SVAR afgives af de deltagere, der mener at deres indlæg er en mulig løsning. Hvis et SVAR opfylder det ønskede - så skal du ACCEPTERE vedkommendes svar. Hvis vedkommende ikke har lagt et SVAR, men kun en KOMMENTAR - beder du vedkommende om et SVAR.
I dette spørgsmål har du "givet dig selv point" - det var nok ikke meningen - så hvis du vil give mig point - så skal du oprette et nyt spørgsmål under samme kategori og kald det: Point til Supertekst - og inde i selve spørgsmålet henviser du til dette spørgsmål via dets nummer: 837100 - så ved alle hvad det drejer sig om. Når et spørgsmål først er accepteret kan andre ikke afgive svar hertil.
Du er ikke den første der har været i denne situation - så fat mod.... :-)
Rem Koden indlægges under relevante Ark Rem =================================== Private Sub Worksheet_Change(ByVal Target As Range) Dim tekst, farveNr If Not Intersect(Target, Range("A1:M39")) Is Nothing Then tekst = Target.Text
Rem Test om celle-indhold er slettet '<---tilføjelser If tekst = "" Then '<--- Target.Interior.ColorIndex = xlNone '<--- Else '<--- farveNr = findFarve(LCase(tekst)) If farveNr <> -1 Then Target.Interior.ColorIndex = farveNr End If End If '<--- End If End Sub Private Function findFarve(tekst) findFarve = -1
If tekst = "ferie" Then findFarve = 4 'Grøn Else If tekst = "syg" Then findFarve = 3 'Rød Else If tekst = "arbejde" Then findFarve = 6 'Gul End If End If End If End Function
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.