PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerExcelExcelFärgsätta närliggande celler baserat på värdeFärgsätta närliggande celler baserat på värde
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2022-12-15 07:40
 

Hej!

Sökte lite i forumet men hittade inget om detta.

Sitter i ettt excelflak där jag har rutor som är 8 celler i höjd och 4 celler i bredd.
Jag vill färgsätta dessa celler baserat på ett av värdena.

Om vi tar ruta ett så ligger den P4:S11, värdet jag vill färgsätta baserat på ligger i Q7.
Jag har fem olika färger som ska användas.
Funkar detta att göra med villkorsstyrd formattering eller blir det för avancerat och det är VBA som gäller för mig nu?
Gissar att jag skulle behöva skapa fem separata regler, hittills har jag lyckats få till noll regler som funkar.

Rutorna följer med en rads mellanrum nedåt eller tre kolumners mellanrum åt höger. Men det kanske inte spelar någon roll för reglerna?

Tack på förhand!

Nytt inlägg
 2022-12-15 15:03
 

 Markera P4:S11. 

sen går du till

start->Vilkorsstyrd formatering->ny regel

Sen tar du raden längst ner (Bestäm ... genom att använda en formel)

Där skriver du in ett lämpligt villkor. T.ex 

=($Q$7=1)

Klicka på knappen [formatera] och ange en lämplig fyllningsfärg

[Ok], [Ok]

 

Sen går du till

start->Vilkorsstyrd formatering->hantera regler

där kan du markera din första regel och trycka på knappen [Duplicera regeln] 4 gånger

Sen dubbelklickar du på regel 2-5 och ändrar villkor respektive färg så att det blir någonting i stil med:

 

Om du vill ha > eller <  istället för = så måste du lägga reglerna i rätt ordning och eventuellt kryssa i "avbryt om sant".

 

Vill du flytta reglerna till ett annat område kan du kopiera/klistra in eller använda "formatpenseln". Om du markerar det nya området och går in på "hantera regler" så ser du att "gäller för" har ändrats automatiskt. Men formlerna pekar fortfarande på Q7. Men det ändrar du med 5 klick.

 

Ähh, testa och lek tills det blir som du vill. 

 

Nytt inlägg
 2022-12-16 07:20
 

 Det där fungerade ju fint, tack!
Problemet är ju bara att jag kan komma att behöva applicera regeln på upp emot 100 olika rutor.
Går det på något sätt att skriva formeln så att den flyttas när jag flyttar formatteringen?

Jag testade Q7= istället $Q$7= men då färgsattes endast cellen längst upp i vänstra hörnet av varje ruta. Även om själva användningsområdet för formatteringen flyttas med så vill den inte.

Nytt inlägg
 2022-12-16 16:52
 

Då måste du skriva en regel för varje cell (32 st) i området. Jag orkade två rader med två färger innan jag fick nog... 

Dvs "gäller för" måste avse en cell i taget x 32 x 5 färger =160 regler....

Då kommer "Q7" att vara relativ till varje cell i området och du kan kopiera hela området någon annanstans.

Men, det här kommer att vara superkänsligt och det är är extremt svårt att mata in det rätt.

 

Nytt inlägg
 2022-12-16 17:20
 
 Ändrad av anonymous  på 2022-12-16 18:22:33

 Eftersom det var så svårt att mata in reglerna manuellt så får du ett makro som loopar igenom cellerna i markeringen ooch petar in de 5 reglerna i varje cell (anpassa färger och regler).

Varje cell inehåller bara sina egna regler och man slipper sammanslagningarna som blir är man matar in manuellt

 

Sen kan du kopiera området med reglerna eller använda formatpenseln för att kopiera

 

 

OBS!  markera området P4 till S11 innan du kör makrot.

Sub tjoho()

Dim rEnCell As Range

' markera P4 till S11.


' Radera gamla regler i området

Selection.FormatConditions.Delete


' loopa igenom de 32 cellerna och lägg till 5 regler i varje cell


For Each rEnCell In Selection.Cells

    With rEnCell

        .FormatConditions.Add Type:=xlExpression, Formula1:="=(Q7=1)"

        .FormatConditions(.FormatConditions.Count).Interior.Color = vbRed

 

        .FormatConditions.Add Type:=xlExpression, Formula1:="=(Q7=2)"

        .FormatConditions(.FormatConditions.Count).Interior.Color = vbGreen


        .FormatConditions.Add Type:=xlExpression, Formula1:="=(Q7=3)"

        .FormatConditions(.FormatConditions.Count).Interior.Color = vbMagenta

 

        .FormatConditions.Add Type:=xlExpression, Formula1:="=(Q7=4)"

        .FormatConditions(.FormatConditions.Count).Interior.Color = vbYellow


        .FormatConditions.Add Type:=xlExpression, Formula1:="=(Q7=5)"

       .FormatConditions(.FormatConditions.Count).Interior.Color = vbCyan

     End With

Next

End Sub

 

 

 

https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/color-constants

https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/rgb-function

 

Nytt inlägg
 2022-12-19 08:43
 

Vilken vardagshjälte du är!
Ska testa om jag får till detta, skulle vara en dröm!

Nytt inlägg
 2022-12-20 07:02
 
 Ändrad av Brodersteffo  på 2022-12-20 08:20:21

Får upp ett fel när jag försöker köra makrot.
Excel ger körfel nr 5, ogiltigt proceduranrop eller argument.

Vad misslyckas jag med? Är ingen stjärna på VBA.

Den kör fram till " Selection.FormatConditions.Delete "

Nytt inlägg
 2022-12-20 07:57
 

 Vet ej. Har du verkligen markerat området innan du kör? Det är ett fulmakro som bygger på att du markerat området.

Annars kan du kommentera bort den raden (sätt en apostrof i början av raden). Men då bör du radera gamla regler manuellt.

För övrigt kan du använda [F8] för att stega igenom ett makro när du testar det

 

 

Nytt inlägg
 2022-12-20 08:58
 

Testat att stega igenom med F8 nu.
Det är på när jag kommer till
.FormatConditions(.FormatConditions.Count).Interior.Color = vbRed
som den inte vill längre, testat att köra färger som RGB men samma strul då med.

Nytt inlägg
 2022-12-20 09:03
 
 Ändrad av Brodersteffo  på 2022-12-20 10:13:12
Testat att stega igenom med F8 nu.
Det är på när jag kommer till
.FormatConditions(.FormatConditions.Count).Interior.Color = vbRed
som den inte vill längre, testat att köra färger som RGB men samma strul då med.

Edit:
Nu ska vi se, tror felet berodde på att jag inte hade enstaka värden i rutorna.
När jag ändrar till 1, 2, 3, 4, 5 så fungerar det.
Kan jag ändra så att jag kan skriva typ "1 rum" osv i rutorna och köra makrot efter det, eller måste den hitta ett värde och inte en text?

Funkar som en dröm nu hur som helst. Bara jag som trodde att jag kunde ändra till vilken text/värde som helst för "=(Q7=1)".

Jättestort tack för hjälpen!
Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelFärgsätta närliggande celler baserat på värdeFärgsätta närliggande celler baserat på värde

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter