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

Aktywny zakres komórek


otwartyotwarty rozpoczął: servant postów: 2



napisał: Trebor
postów: 1209


umieszczony:
29 stycznia 2011
10:09

  
Źle postawiłeś warunek. W uproszczeniu może być tak:
If Intersect(Target, Range("A1:F10")) Is Nothing Then Exit Sub


Target to komórki zaznaczone. Warunek sprawdza czy istnieje część wspólna zaznaczenia (Target) i zakresu A1:F10.
Piszesz o komórkach zablokowanych .Locked. Aby sprawdzić czy wszystkie komórki z części wspólnej są zablokowane lub odblokowane musisz użyć pętli.
Jeśli będziesz chciał stworzyć taki warunek spróbuj wykorzystać For each np.
For Each kom In Intersect(Target, Range("A1:F10"))
If kom.Locked = True Then MsgBox "zablokowana"
Next kom

napisał: servant
postów: 8


umieszczony:
29 stycznia 2011
09:29

  
Chciałbym wyświetlić ostrzeżenie, ze arkusz nie jest chroniony, jeśli podczas pracy na niechronionym arkuszu użytkownik aktywuje komórkę zablokowaną. Próbowałem stworzyć makro, ale jakkolwiek działa dla pojedynczej komórki to do zakresu komórek już nie.

To makro działa
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    If ActiveCell.Row = 45 And ActiveCell.Column = 2 Then
    If MsgBox("Uwaga! Arkusz odblokowany." & vbCrLf & "Nie możesz pracować na odblokowanym arkuszu." & vbCrLf & "Zablokować Arkusz?", vbYesNo, "Odblokowany Arkusz!") = vbYes Then
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
' Else
        End If
            End If
  Application.EnableEvents = True
    
End Sub



A to nie chce
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Private Sub Worksheet_Change2()
   Application.EnableEvents = False
   If ActiveCell.Range(Cells(1, 1), Cells(45, 60)) Then
    If MsgBox("Uwaga! Arkusz odblokowany." & vbCrLf & "Nie możesz pracować na odblokowanym arkuszu." & vbCrLf & "Zablokować Arkusz?", vbYesNo, "Odblokowany Arkusz!") = vbYes Then
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
' Else
        End If
            End If
  Application.EnableEvents = True
    
End Sub



Co może być nie tak?


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z