vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest piątek, 17 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

blokowanie komórek


otwartyotwarty rozpoczął: du_gy postów: 2



napisał: admin
postów: 613


umieszczony:
13 stycznia 2008
11:53

edytowany:
13 stycznia 2008
12:01

  
Mam dwa wyjścia:
1. Zrezygnować z chronienia tych komórek, których kolory chcesz zmieniać.
Robi się w to w formatowaniu komórek - zakładka "Ochrona".

2. W kodzie VBA odblokować arkusz, zmienić kolory i zablokować go ponownie.

Private Sub combobox1_Change()
ActiveSheet.Unprotect Password:=haslo
    Range("B6:c6").Interior.ColorIndex = 0
    Range("H6").Interior.ColorIndex = 0
    Range("I6:M6").Interior.ColorIndex = 0
    
    If combobox1.Value = "czerwony" Then
        Range("B6:C6").Interior.ColorIndex = 3
        Range("H6").Interior.ColorIndex = 3
        Range("I6:M6").Interior.ColorIndex = 3
    End If
    
    If combobox1.Value = "zolty" Then
        Range("I6:M6").Interior.ColorIndex = 34
    End If
    
    If combobox1.Value = "niebieski" Then
        Range("I6:M6").Interior.ColorIndex = 37
    End If

ActiveSheet.Protect Password:=haslo
End Sub

napisał: du_gy
postów: 22


umieszczony:
13 stycznia 2008
09:18

  
Witam
Na wstepie opisze co i jak robie:
w arkuszu jest kilka ComboBox'ow w zależnosci od tego jaka maja wartość (co wybiore z ich listy) niektóre komórki arkusza zmieniaja kolor. Realizuje to za pomoca kodu:
Private Sub combobox1_Change()
    Range("B6:c6").Interior.ColorIndex = 0
    Range("H6").Interior.ColorIndex = 0
    Range("I6:M6").Interior.ColorIndex = 0
    
    If combobox1.Value = "czerwony" Then
        Range("B6:C6").Interior.ColorIndex = 3
        Range("H6").Interior.ColorIndex = 3
        Range("I6:M6").Interior.ColorIndex = 3
    End If
    
    If combobox1.Value = "zolty" Then
        Range("I6:M6").Interior.ColorIndex = 34
    End If
    
    If combobox1.Value = "niebieski" Then
        Range("I6:M6").Interior.ColorIndex = 37
    End If


End Sub


Wszystko pieknie działa. Jednak inne komórki w tym samym arkuszu zawieraja formuły lub tekst i wymagaja zablokowania. Realizuje to: Formatuj komórki -> Ochrona -> Zablokuj i dalej z menu Narzedzia ->Ochrona ->Chroń arkusz. Oczywiscie komórki w ktorych kolor zmienia sie w zależnosci od wartości ComboBox'a nie maja zaznaczonej opcji zablokuj.
Po właczeniu ochrony tak skomponowanego arkusza przy probie zmiany koloru przez zmiane wartosci combobox'a (nie zablokowanej) komórki dostaje komunikat o błedzie: 1004 Ustwienie właściwości ColorIndex dla klasy Interior nie jest możliwe.
Macie może jakieś sugestie jak rozwiazac ten problem?

Dzieki


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z