konto usunięte

Temat: kolorowanie tabeli...

Jak to ugryźć?

Mam tabelę 13 kolumn (nazwy regionów i 12 różnych parametrów), w każdej kolumnie 30 wierszy.
Dla każdej z kolumn muszę wykonać następującą pracę:
dla każdego parametru posortować wyniki, komórki pomalować 5 różnymi kolorami (po 6 komórek w różnych kolorach, tak, żeby "temperatura koloru" zwizualizowała, gdzie jest b.dobrze, dobrze i tak dalej, a gdzie sytuacja jest alarmująca - czerwone komórki) i przejść do następnej kolumny powtórzyć zabieg sortowania i formatowania i tak 12 razy...

W efekcie tabela ma być taką kolorową tablicą skalowaną tymi 5 kolorami pokazującą sytuację w poszczególnych regionach w danych parametrach.

Jak to uprościć? Formatowanie warunkowe obsługuje 3 warunki, robienie tego manulanie co miesiąc - no można, ale może da się łatwiej...

Myślałam o czymś co korzysta z funkcji POZYCJA, ale jeszcze nie próbowałam co z tego można byłoby zdziałać.
Ma ktoś pomysł?
Bogusław Wasiak

Bogusław Wasiak Specjalista ds.
Controllingu

Temat: kolorowanie tabeli...

Mam nadzieję, że poniższe makro Ci pomoże. Trzeba je wkleić do arkusza. Jeśli nie o to chodziło pokaż jak wyglądają dane... i jaki ma być efekt końcowy.

Kolory musisz zmienić sama w kodzie pomoże Ci w tym poniższy link
http://dmcritchie.mvps.org/excel/colors.htm

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim Zaznacz As Range

For Each cell In Selection

Select Case cell.Value

Case 0
cell.Interior.ColorIndex = 5

Case Is > 5
cell.Interior.ColorIndex = 6

Case Is > 20
cell.Interior.ColorIndex = 7

Case Else
cell.Interior.ColorIndex = 8

End Select

Next cell
End Sub
Michał Pawłowski

Michał Pawłowski Student, Szkoła
Główna Handlowa w
Warszawie

Temat: kolorowanie tabeli...

Bogusław Wasiak:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Czy procedura obsługi zdarzenia jest tutaj potrzebna? Będzie się uruchamiać za każdym razem, gdy zmieni się zaznaczenie w danym arkuszu. Chyba nie jest to konieczne? Ja bym optował za zwykłą procedurą.

Osobiście jednak uważam, że tworzenie makr nie jest tutaj konieczne. Ja bym poeksperymentował z formatowaniem warunkowym. Będzie to łatwiejsze i z pewnością bardziej wydajne niż jakikolwiek kod VBA. Możesz np. stworzyć sobie tabelę roboczą, która na podstawie wartości w głównej tabeli będzie przyjmować w każdej kolumnie wartości od 1 do 5, tak by obrazować hierarchię między wartościami parametrów w kolumnie. Następnie możesz użyć formatowania warunkowego w opcji z wykorzystaniem formuły do określenia komórek podlegających formatowaniu. Tworzysz pięć reguł formatowania z odpowiednimi formułami i kolorkami i gotowe.

I nie musisz tego robić manualnie co miesiąc. Wystarczy wkleić nowe wartości do tabeli finalnej i tyle.

konto usunięte

Temat: kolorowanie tabeli...

Michał Pawłowski:
Bogusław Wasiak:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Czy procedura obsługi zdarzenia jest tutaj potrzebna? Będzie się uruchamiać za każdym razem, gdy zmieni się zaznaczenie w danym arkuszu. Chyba nie jest to konieczne? Ja bym optował za zwykłą procedurą.

Osobiście jednak uważam, że tworzenie makr nie jest tutaj konieczne. Ja bym poeksperymentował z formatowaniem warunkowym. Będzie to łatwiejsze i z pewnością bardziej wydajne niż jakikolwiek kod VBA. Możesz np. stworzyć sobie tabelę roboczą, która na podstawie wartości w głównej tabeli będzie przyjmować w każdej kolumnie wartości od 1 do 5, tak by obrazować hierarchię między wartościami parametrów w kolumnie. Następnie możesz użyć formatowania warunkowego w opcji z wykorzystaniem formuły do określenia komórek podlegających formatowaniu. Tworzysz pięć reguł formatowania z odpowiednimi formułami i kolorkami i gotowe.

I nie musisz tego robić manualnie co miesiąc. Wystarczy wkleić nowe wartości do tabeli finalnej i tyle.

Nie wiem jak Office2010, ale 2003 obsługuje tylko 3 warunki w formatowaniu warunkowym. Zresztą autorka tematu napisała, że brakuje jej warunków w formatowaniu warunkowym.
Michał Pawłowski

Michał Pawłowski Student, Szkoła
Główna Handlowa w
Warszawie

Temat: kolorowanie tabeli...

Radosław Dominiak:
Nie wiem jak Office2010, ale 2003 obsługuje tylko 3 warunki w formatowaniu warunkowym. Zresztą autorka tematu napisała, że brakuje jej warunków w formatowaniu warunkowym.

Zrozumiałem, że autorce chodzi o 3-kolorową skalę w formatowaniu warunkowym... W takim razie pozostaje zainwestowanie w nowszego Excela, który obsługuje nieograniczoną liczbę reguł formatowania warunkowego, albo odpowiedni kod VBA. Można wykorzystać ten, który zaproponował Bogusław, aczkolwiek tak jak pisałem wcześniej, nie robiłbym z tego procedury obsługi zdarzenia, ale zwykłą procedurę.

konto usunięte

Temat: kolorowanie tabeli...

Zainwestowanie w nowszego Excela to raczej decyzja firmy, a nie pracownika ;)

Za to zgadzam się co do nie uruchamiania makra przy "Selection Change" - podejrzewam, że całość zrobiła by się bardzo ślamazarna, bo ogólnie formatowanie w VBA działa raczej powoli. Zwykły przycisk przy tabelce będzie wygodniejszy.

Temat: kolorowanie tabeli...

Przerobiłem trochę makro Bogusława, uwzględniając uwagę Michała, jak również dorzucam od siebie propozycje, aby ustawiać kolorki i warunki dla nich w osobnym arkuszu, dajmy na to "Ustawienia".

tutaj kod:


Sub KolorujTabele()
Dim zakres As Range
Set zakres = Worksheets("tabela").Range(Worksheets("Ustawienia").Range("E2").Formula)
Application.ScreenUpdating = False
Dim r As Range
For Each r In zakres
With Worksheets("Ustawienia")
Select Case r.Value
Case .Range("B2").Value To .Range("C2").Value
r.Interior.ColorIndex = .Range("A2").Interior.ColorIndex
Case .Range("B3").Value To .Range("C3").Value
r.Interior.ColorIndex = .Range("A3").Interior.ColorIndex
Case .Range("B4").Value To .Range("C4").Value
r.Interior.ColorIndex = .Range("A4").Interior.ColorIndex
Case .Range("B5").Value To .Range("C5").Value
r.Interior.ColorIndex = .Range("A5").Interior.ColorIndex
Case .Range("B6").Value To .Range("C6").Value
r.Interior.ColorIndex = .Range("A6").Interior.ColorIndex
Case Else
r.Interior.ColorIndex = 48
End Select
End With
Next r
Application.ScreenUpdating = True
End Sub


A tutaj plik:

https://rapidshare.com/files/45935533/Kolorowanie_Tabel...

konto usunięte

Temat: kolorowanie tabeli...

A czy mogę prosić o udostępnienie przykładu w jakimś bardziej dostepnym miejscu :)

Ja jestem VB ignorantką :|

Na razie próbuję - zobaczymy co z tego wyjdzie...Iwona Pyza edytował(a) ten post dnia 07.06.11 o godzinie 00:05

Temat: kolorowanie tabeli...

Iwona Pyza:
A czy mogę prosić o udostępnienie przykładu w jakimś bardziej dostepnym miejscu :)

Ale przeciez normalnie mozna sciagnac? Klikasz "I want to wait" a po chwili "Download Now" i leci?

Żeby nie było, wrzuciłem jeszcze tu:

http://wrzucacz.pl/file/4381307431156/Kolorowanie-Tabe...Maciej Kraszewski edytował(a) ten post dnia 07.06.11 o godzinie 09:21

konto usunięte

Temat: kolorowanie tabeli...

Działa cudownie!
Właśnie taki miał być efekt - bardzo dziękuję za pomoc :)

Następna dyskusja:

Grupowanie danych w tabeli ...




Wyślij zaproszenie do