19. februar 2006 - 16:23Der er
32 kommentarer og 2 løsninger
"Reset" skriftfarve
Nedenstående virker fint med hensyn til at ændre baggrundsfarve:
farve = 4: stk = Range("k12").Value Range("b13:k14").Select Selection.Interior.ColorIndex = 0: Range("k12").Select Dim c As Range For Each c In Range("b13:k14") v = c.Value If v <= stk Then c.Interior.ColorIndex = farve End If Next
Hvordan får jeg skrifttypen til samtidigt at sættes tibage til hvid når værdien i området ("b13:k14")>værdien i ("k12")?
prøv lige : farve = 4: stk = Range("c1").Value 'farve = Range("a1").Value Range("d2:m2").Select Selection.Interior.ColorIndex = 0: Range("c1").Select Dim c As Range
For Each c In Range("d2:m2") v = c.Value If v <= stk Then c.Interior.ColorIndex = farve If v > Range("k12").Value Then c.Font.ColorIndex = 2 End If End If Next
Private Sub Worksheet_Change(ByVal Target As Range) farve = 4: stk = Range("c1").Value 'farve = Range("a1").Value Range("d2:m2").Select Selection.Interior.ColorIndex = 0: Range("c1").Select Dim c As Range
For Each c In Range("d2:m2") v = c.Value If v <= stk Then c.Interior.ColorIndex = farve If v > Range("k12").Value Then c.Font.ColorIndex = 2 Else c.Font.ColorIndex = 1 End If End If Next End Sub
Åbenbart ikke så ligetil: har tidligere fået hjælp af mvhansen til: http://www.eksperten.dk/spm/687996 og det er faktisk ovenstående kode derfra. Jeg er nødt til at fortsætte med koden og ikke bruge betinget formatering. Når jeg tænker lidt over det er det muligt at jeg kolliderer med den betingede formatering jeg i forvejen har i brug.
Jeg har forsøgt med excelent forslag men uden den ønskede løsning.
de skal være hvide (usynlige), men jeg kolliderer med min betingede formatering kan jeg se. Jeg kan godt få skriftfarven til at være hvid uden for det betingede formaterede område.
Mit betingede formaterede område sætter rammer. Der kan sættes flere rammer end der sættes farvede baggrunde i rammmerne, dvs. at har jeg f.eks 10 rammer er de 8 (udfra værdien i k12) måske med farvet baggrund. De sidste 2 rammer med hvid baggrundsfarve har bare stadigvæk en farvet skrift!!!
Jeg vil stadig gerne have makroen til at virke både med reset af baggrundsfarve og skriftfarve.
Lidt underligt at det kører perfekt med reset af baggrundsfarve. Er det ikke denne i koden som "resetter" baggrundsfarven: Selection.Interior.ColorIndex = 0: Range("k12").Select ...man må da kunne få skriftfarven til at lave reset!!!
Når jeg har valgt 10 celler med ramme og 8 celler med grøn og har værdi d2=1, e2=2, f2=3, g2=4, h2=5, i2=6, j2=7, k2=8, l2=9, m2=10 og k12=5 så får jeg følgende : d2=grøn med sort 1 e2=grøn med sort 2 f2=grøn med sort 3 g2=grøn med sort 4 h2=grøn med sort 5 i2=grøn med usynlig 6 j2=grøn med usynlig 7 j2=grøn med usynlig 8 l2=grøn med usynlig 9 m2=hvid med sort 10
og jo man kan godt resette skriftfarven, subben er rettet til det.
Private Sub Worksheet_Change(ByVal Target As Range) farve = 4 stk = Range("c1").Value Range("d2:m2").Select Selection.Interior.ColorIndex = 0 Selection.Font.ColorIndex = 1 Range("c1").Select
Dim c As Range
For Each c In Range("d2:m2") v = c.Value If v <= stk Then c.Interior.ColorIndex = farve If v > Range("k12").Value Then c.Font.ColorIndex = c.Interior.ColorIndex '2 Else c.Font.ColorIndex = 1 End If End If Next End Sub
hej brynil det er jo 2 forskellige betingelse den første skal farve cellens baggrun hvis værdien er < end c1 den anden skal farve teksten hvis værdien er > end k12
Brynils virker med hensyn til at farve skriftfarven jvor baggrundsfarven er hvid. Dette slog ikke igennem ved excelents kode. ...Men brynils kode laver nu skriftfarven hvid på den farvede baggrund
Har afprøvet excelent 19/02-2006 20:42:22. Denne laver sort skriftfarve i hele området ("b13:k14") og altså ikke begrænset af værdien i k14. Baggrundsfarverne er rigtig begrænset af værdien i k12
SÅDAN! Hurra! Flere timers bøvl virker nu med dette: farve = 4: stk = Range("k12").Value Range("b13:k14").Select Selection.Interior.ColorIndex = 0: Range("k12").Select Dim c As Range
For Each c In Range("b13:k14") v = c.Value If v <= stk Then c.Interior.ColorIndex = farve c.Font.ColorIndex = 4
Else c.Font.ColorIndex = 2 End If Next
Var aldrig kommet på dette uden jeres hjælp! Læg lige svar (begge to) Jeg er nok lidt for fedtet med point. Jeg vil gerne oprette spm. igen og give flere point
I så fald er det eneste logiske vel at sætte baggrundsfarven til hvid?
Måske kan du bruge denne:
Range("b13:k14").Select Dim farve As Integer Dim stk As Long farve = 4 stk = Range("k12").Value
Dim c As Range Dim f As Integer
For Each c In Range("b13:k14") v = c.Value If v <= stk Then c.Interior.ColorIndex = farve Else c.Select f = Selection.Interior.ColorIndex If f = -4142 Then f = 2 c.Font.ColorIndex = f End If Next
Jeg synes jeg skylder jer begge to en forklaring hvordan det hele er bygget op: b13:k14 indehoder værdierne 1,2,3,...20 I betinget formatering har jeg betingelsen at celleværdien skal være mindre end værdien i celle j12... der skal så sætes rammer. I makroen har jeg brugt lunddata 19/02-2006 21:57:30. Alt dette får præcist det frem jeg efterlyste og jeg er nu en lykkelig mand. Jeg vil gerne præcisere at jeg ikke selv ville kunne have strikket løsningen sammen uden at I var på banen så I fortjener point og jeg mener stadigvæk at jeg MEGET gerne vil give flere point. ... Jeg kan nu komme vdere med projektet.
husk at dialog er vigtig ved besvarelse af spørgsmål :-)
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.