14. februar 2006 - 16:04Der er
22 kommentarer og 1 løsning
Farve baggrund med makro
Kan ikke lige finde svar i tidligere indlæg under Excel.
Celle d2 = 1 Celle e2 = 2 Celle f2 = 3 osv.
Jeg bruger betinget formatering til at lave ramme om cellerne (d2:m2) når en bestemt betingelse er opfyldt. Nogle af disse rammer skal have baggrundsfarve såfremt cellens værdi er mindre end værdien i celle c1. Altså farve d2, såfremt d2<=c1. ... farve e2, såfremt e2<=c1 Hvordan klarer jeg den med baggrundsfarven?
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
I din betingede formatering er betingelse 1 saa sat til: cellevaerdi er -- mindre end eller lig med -- =$C$1 Naar den er sat gaar du ned og trykker format-knappen (ved ikke om det er det den hedder paa dansk, men lige til hoejre for hvor cellen med "AaBbCc..." vises). Naar du trykker paa denne knap kommer den normale formatteringsboks op hvor du kan vaelge baggrundsfarve (tredje tab, yderst til hoejre).
Tror ikke jeg har udtrykt mig klart! Nedenstående værdier er på forhånd givet: Celle d2=1 celle e2=2 celle f2=3 osv
Det jeg ønsker er en makro som automatisk farver felterne afhængig af om felterne er mindre end eller lig med celle c1.
Værdien i celle c1 genereres tilfældigt med slump inden for et vist interval. Men altså det er en makro jeg er ude efter til at farve i området(d2:m2)!!!
Men det kan du da stadig bruge betinget formatering til. Naar indholdet af c1 aendre skulle den betingede formattering stadig aendre sig efterfoelgende.
Jeg mener ikke at kunne bruge den betingede formatering til begge dele, idet jeg har brugt den betingede formatering til at hente værdien i en anden celle (i dette tilfælde celle b1) end den jeg gerne vil bruge i makroen.
Jeg sætter rammer i nogle celler i den betingede formatering. I makroen bliver kun en del af rammerne udfyldt med baggrundsfarve,idet betingelsen kommer fra celle c1
Ovenstående løser ikke mit spm. Jeg forstår godt den betingede formatering. Men jeg får jo ikke udfyldt et vilkårligt antal rammer. Antal rammer er givet ud fra b1 Antal farvede celler er givet ud fra c1
hvis b1 = 8 får jeg 8 rammer som jeg fint kan finde ud af med betinget formatering. hvis c1 = 3 skal der farves 3 af rammerne
Opgaven med baggrundsfarvning må kunne løses med en makro hvilket egentlig også var overskriften til mit spm.
Idet du allerede har anvendt betinget formatering på disse celler, skal du blot tilføje en betingelse mere i hver celle d2 til m2 :
klik marker celle d2, vælg Betinget formatering i menuen Formater Klik på Tilføj >> I ruden 'Betingelse 2' vælger du 'Celleværdi er' I næste rude vælger du <= eller den betingelse du vil anvende på aktuel celle, I ruden til højre skriver du =$c$2 Klik på 'Formater....' vælg den farve du ønsker som baggrund og klik OK eller hvad du nu vil gøre ed cellen.
rettelse : så dee :-) det ser ud til du har ret, vba er sagen her
er ikke nogen vba haj, så lad os håbe en expert komer forbi men følgende makro farver celle D2 grøn, hvis værdi i celle D2 <= C1 resten overlader jeg til experterne :-)
Sub Makro2() ' Makro2 Makro ' Genvejstast:Ctrl+n If Range("d2").Value <= Range("c1").Value Then Range("D2").Select Selection.Interior.ColorIndex = 4 End If End Sub
well har en forhåbentlig brugbar løsning her, men kønt er det ikke :-)
Højreklik på fanen til arket hvor du har ovenståede visning,- vælg 'Vis programkode' indsæt følgende kode når du ændrer i celle c1, opdaters farvelægning.
Private Sub Worksheet_Change(ByVal Target As Range) farve = 4: stk = Range("c1").Value Range("d2:m2").Select Selection.Interior.ColorIndex = 0 If Range("d2").Value <= stk Then Range("D2").Select Selection.Interior.ColorIndex = farve Range("c1").Select If Range("e2").Value <= stk Then Range("e2").Select Selection.Interior.ColorIndex = farve Range("c1").Select If Range("f2").Value <= stk Then Range("f2").Select Selection.Interior.ColorIndex = farve Range("c1").Select If Range("g2").Value <= stk Then Range("g2").Select Selection.Interior.ColorIndex = farve Range("c1").Select If Range("h2").Value <= stk Then Range("h2").Select Selection.Interior.ColorIndex = farve Range("c1").Select If Range("i2").Value <= stk Then Range("i2").Select Selection.Interior.ColorIndex = farve Range("c1").Select If Range("j2").Value <= stk Then Range("j2").Select Selection.Interior.ColorIndex = farve Range("c1").Select If Range("k2").Value <= stk Then Range("k2").Select Selection.Interior.ColorIndex = farve Range("c1").Select If Range("l2").Value <= stk Then Range("l2").Select Selection.Interior.ColorIndex = farve Range("c1").Select If Range("m2").Value <= stk Then Range("m2").Select Selection.Interior.ColorIndex = farve Range("c1").Select End If: End If: End If: End If: End If: End If: End If: End If: End If: End If
Lidt kortere : Private Sub Worksheet_Change(ByVal Target As Range) farve = 4: stk = Range("c1").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 End If Next End Sub
Start med at gøre det aktuelle ark aktivt, ved at klikke på det's fane kopier subben herover fra kl. 20:46:20 (CTRL+c) Højreklik så på aktuel ark-fane, og vælg 'Vis programkode' Indsæt den kopierede sub (CTRL+v)
når du så ændrer værdien i celle c1, farvelægges de af cellerne i området d2:m2 som er mindre eller lig med værdien i celle c1
jeg har valgt farvekode 4 (grøn) du kan selv ændre dette tal så farven passer til dit behov 'farve = ? < dit farvevalg' 0= ingen farve, prøv dig frem jeg kan også ændre koden, så du kan vælge farve via en celle i regnearket.
Det skal ikke være nogen hemmelighed, at jeg fint kan bruge svarene til at udarbejde opgaver til brøkberegning, idet rammerne lavet i betinget formatering anskueliggør nævneren i brøk og din løsning bruges til at farve tælleren. Jeg kan så ved hjælp af slump danne mange forskellige opgaver. TUSIND TAK! for hjælpen.
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.