konto usunięte

Temat: Blokada komrek w zależności od koloru komórki

Witam,
czy istnieje szansa stworzenia makra, które odblokowywałoby komórki z wybranym kolorem tła np. żółtym?
Sławomir Broda

Sławomir Broda VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...

Temat: Blokada komrek w zależności od koloru komórki

Żółta komórka to:
.Font.Color = vbYellow
Usunięcie blokady blokada to:
.Locked = False
Ale żeby to działało to arkusz najpierw musi być zablokowany.
Aby go odblokować to:
ActiveSheet.Unprotect
Ponowna blokada to:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Można dodać też hasełko.
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Blokada komrek w zależności od koloru komórki

Ale jak żółte tło, to chyba raczej nie .Font.Color tylko raczej .Interior.Color?

konto usunięte

Temat: Blokada komrek w zależności od koloru komórki

Dziękuję za odpowiedzi. Mam jeszcze tylko problem jak znaleźć te "żółte" komórki w arkuszu, gdyż kolor komórek wynika z formatowania warunkowego. Próbowałam zrobić to pętlą dla wierszy i kolumn, ale nie chce zadziałać dla większej ilości.
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Blokada komrek w zależności od koloru komórki

Tych komórek szukałabym właśnie pętlą. Jeżeli nie znajduje, to być może problemem jest dopasowanie koloru? Sprawdź jakie parametry ma wybrany kolor. Klasyczny żółty w kodzie RGB to 255,255,0. Wówczas ten fragment kodu można sprowadzić do porównania:
 (...) IF .Interior.Color=RGB(255,255,0) THEN ... (...) 

konto usunięte

Temat: Blokada komrek w zależności od koloru komórki

Dopasowanie koloru jest raczej ok, bo np. dla 8 wierszy i 8 kolumn działa, ale przy większej ilości pojawia się błąd:
"Ustawienie właściwości Locked klasy Range nie jest możliwe."
moja pętla wygląda tak:

For kolumna = 1 To 107
For wiersz = 1 To 23
If Cells(wiersz, kolumna).Interior.Color = vbYellow Then
Cells(wiersz, kolumna).Locked = False
Else
End If
Next wiersz
Next kolumna
Sławomir Broda

Sławomir Broda VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...

Temat: Blokada komrek w zależności od koloru komórki

Dorota Ciupa:
Dziękuję za odpowiedzi. Mam jeszcze tylko problem jak znaleźć te "żółte" komórki w arkuszu, gdyż kolor komórek wynika z formatowania warunkowego. Próbowałam zrobić to pętlą dla wierszy i kolumn, ale nie chce zadziałać dla większej ilości.
Co to znaczy nie chce działać.
Sławomir Broda

Sławomir Broda VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...

Temat: Blokada komrek w zależności od koloru komórki

Marzanna Szulta:
Ale jak żółte tło, to chyba raczej nie .Font.Color tylko raczej .Interior.Color?
Oczywiście. Ślepota na starość bierze.
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Blokada komrek w zależności od koloru komórki

Sławomir Broda:

Oczywiście. Ślepota na starość bierze.

Tu to jeszcze pół biedy. Gorzej jak zdarza się to w kodzie. Ja ostatnio męczyłam się z długim makrem, w którym przestawiłam " i '. Ile się naszukałam, to moje :)
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Blokada komrek w zależności od koloru komórki

Dorota Ciupa:
Dopasowanie koloru jest raczej ok, bo np. dla 8 wierszy i 8 kolumn działa, ale przy większej ilości pojawia się błąd:
"Ustawienie właściwości Locked klasy Range nie jest możliwe."
moja pętla wygląda tak:
A są na pewno zablokowane?

konto usunięte

Temat: Blokada komrek w zależności od koloru komórki

Marzanna Szulta:
Dorota Ciupa:
Dopasowanie koloru jest raczej ok, bo np. dla 8 wierszy i 8 kolumn działa, ale przy większej ilości pojawia się błąd:
"Ustawienie właściwości Locked klasy Range nie jest możliwe."
moja pętla wygląda tak:
A są na pewno zablokowane?

Tak, po kilku próbach stwierdziłam że działa dla dowolnej ilości kolumn i dokładnie 8 wierszy, przy pozostałych wyskakuje w/w błąd.

konto usunięte

Temat: Blokada komrek w zależności od koloru komórki

Problemem było scalenie komórek. Błąd już nie wyskakuje, jednak nie odblokowuje komórek z kolorem nadanym przez formatowanie warunkowe - w zależności od spełniania warunku są żółte lub nie.
Sławomir Broda

Sławomir Broda VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...

Temat: Blokada komrek w zależności od koloru komórki

Marzanna Szulta:
Sławomir Broda:

Oczywiście. Ślepota na starość bierze.

Tu to jeszcze pół biedy. Gorzej jak zdarza się to w kodzie. Ja ostatnio męczyłam się z długim makrem, w którym przestawiłam " i '. Ile się naszukałam, to moje :)
Zdarz się. Wczorajszy dzień upłynął mi nasz szukanie 1 błędu. Wyszło na to, że spację wstawiłem w jednym miejscu niepotrzebnie :(.
Sławomir Broda

Sławomir Broda VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...

Temat: Blokada komrek w zależności od koloru komórki

Dorota Ciupa:
Problemem było scalenie komórek. Błąd już nie wyskakuje, jednak nie odblokowuje komórek z kolorem nadanym przez formatowanie warunkowe - w zależności od spełniania warunku są żółte lub nie.
Formatowanie warunkowe nie zmienia właściwości interior.color.

konto usunięte

Temat: Blokada komrek w zależności od koloru komórki

Sławomir Broda:
Dorota Ciupa:
Problemem było scalenie komórek. Błąd już nie wyskakuje, jednak nie odblokowuje komórek z kolorem nadanym przez formatowanie warunkowe - w zależności od spełniania warunku są żółte lub nie.
Formatowanie warunkowe nie zmienia właściwości interior.color.
A w jaki sposób można odnaleźć kolor nadany przez formatowanie warunkowe?
Sławomir Broda

Sławomir Broda VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...

Temat: Blokada komrek w zależności od koloru komórki

Dorota Ciupa:
Sławomir Broda:
Dorota Ciupa:
Problemem było scalenie komórek. Błąd już nie wyskakuje, jednak nie odblokowuje komórek z kolorem nadanym przez formatowanie warunkowe - w zależności od spełniania warunku są żółte lub nie.
Formatowanie warunkowe nie zmienia właściwości interior.color.
A w jaki sposób można odnaleźć kolor nadany przez formatowanie warunkowe?
Trzeba sprawdzić kodem, czy warunek formatowania jest spełniony.

range.FormatConditions



Wyślij zaproszenie do