powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как запретить изменять значение в конкретной ячейке с помощью Worksheet_Change
6 сообщений из 6, страница 1 из 1
Как запретить изменять значение в конкретной ячейке с помощью Worksheet_Change
    #38931639
S0ME0NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может как-то по другому или так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    On Error GoTo err1
    
    clm = Target.Column
    trw = Target.Row
    tvl = Target.Value
    If IsEmpty(tvl) Or IsNull(tvl) Then
        GoTo err1
    End If
    
    Dim user1 As String:    user1 = Environ("USERNAME")

    If clm >= 1 And clm <= 10 Then
        If user1 = "Иванов" Then
            
       ' ЧТО ЗДЕСЬ СДЕЛАТЬ ЧТОБЫ НИКТО КРОМЕ ИВАНОВА НЕ МОГ ИЗМЕНЯТЬ УЖЕ ИМЕЮЩИЕСЯ ЗНАЧЕНИЯ
            
        End If
    End If

err1:
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub
...
Рейтинг: 0 / 0
Как запретить изменять значение в конкретной ячейке с помощью Worksheet_Change
    #38932185
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так в конкретной ячейке или в первых 10 столбцах?
...
Рейтинг: 0 / 0
Как запретить изменять значение в конкретной ячейке с помощью Worksheet_Change
    #38932807
S0ME0NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КазанскийТак в конкретной ячейке или в первых 10 столбцах?Спасибо что отозвались.
Хочется знать и так и так.
Событие Worksheet_Change() видимо не подходит так как значение Target.Value уже изменено.

Короче проблему решил через разрешение диапазонов. Но макросом то же интересно.
...
Рейтинг: 0 / 0
Как запретить изменять значение в конкретной ячейке с помощью Worksheet_Change
    #38933040
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub Worksheet_Change(ByVal Target As Range)
Const ELIGIBLE_USER = "Иванов"
  If Not Intersect(Target, Range("A:J")) Is Nothing Then
    If StrComp(Environ("USERNAME"), ELIGIBLE_USER, vbTextCompare) Then
      Application.EnableEvents = False
      Application.Undo
      Application.EnableEvents = True
      MsgBox "Изменения отменены - только " & ELIGIBLE_USER & " имеет право" & vbLf & _
        "менять ячейки в столбцах 1-10", vbExclamation
    End If
  End If
End Sub
...
Рейтинг: 0 / 0
Как запретить изменять значение в конкретной ячейке с помощью Worksheet_Change
    #38933234
S0ME0NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КазанскийБлагодарю Вас.
...
Рейтинг: 0 / 0
Как запретить изменять значение в конкретной ячейке с помощью Worksheet_Change
    #38933273
Угу.

cmd
set USERNAME="Иванов"
"%ProgramFiles%\Microsoft Office\OfficeXX\Excel"

Ой! Что это?!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как запретить изменять значение в конкретной ячейке с помощью Worksheet_Change
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]