Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Блокировка вносимых данных - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Блокировка вносимых данных
astashov_michail@tutby Дата: Среда, 17.08.2022, 16:58 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 94
Репутация: 0 ±
Замечаний: 100% ±

2016
Всем здравствуйте. Первым делом поискал похожие темы на форуме. нашёл подходящую, ну почти : Дата: Вторник, 23.11.2021, 12:12 Блокировка ячеек по условиям (Формулы/Formulas), только мне необходимо сначала внести значения, а уж потом заблокировать ячейки.
по умолчанию ячейка пуста, после внесения данных необходимо чтоб ячейка блокировалась (нельзя было изменить данные, в т.ч. нажать Delete)
К сообщению приложен файл: 6749762.xlsx (14.8 Kb)


astashovM..
 
Ответить
СообщениеВсем здравствуйте. Первым делом поискал похожие темы на форуме. нашёл подходящую, ну почти : Дата: Вторник, 23.11.2021, 12:12 Блокировка ячеек по условиям (Формулы/Formulas), только мне необходимо сначала внести значения, а уж потом заблокировать ячейки.
по умолчанию ячейка пуста, после внесения данных необходимо чтоб ячейка блокировалась (нельзя было изменить данные, в т.ч. нажать Delete)

Автор - astashov_michail@tutby
Дата добавления - 17.08.2022 в 16:58
_Boroda_ Дата: Среда, 17.08.2022, 17:20 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
В модуль листа положите
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Cells(1, "AA") = 1 Then Exit Sub
    Set d_ = Intersect(Target, Range("A1,A3,A6"))
    If Not d_ Is Nothing Then
        For Each dd_ In d_
            If dd_ <> "" Then
                dd_.Offset(, 1).Select
                Exit Sub
            End If
        Next dd_
    End If
End Sub
[/vba]
Если в АА1 написать 1, то код пропустит выделение нужных ячеек


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВ модуль листа положите
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Cells(1, "AA") = 1 Then Exit Sub
    Set d_ = Intersect(Target, Range("A1,A3,A6"))
    If Not d_ Is Nothing Then
        For Each dd_ In d_
            If dd_ <> "" Then
                dd_.Offset(, 1).Select
                Exit Sub
            End If
        Next dd_
    End If
End Sub
[/vba]
Если в АА1 написать 1, то код пропустит выделение нужных ячеек

Автор - _Boroda_
Дата добавления - 17.08.2022 в 17:20
astashov_michail@tutby Дата: Среда, 17.08.2022, 19:21 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 94
Репутация: 0 ±
Замечаний: 100% ±

2016
_Boroda_, Спасибо огромное, все работает


astashovM..
 
Ответить
Сообщение_Boroda_, Спасибо огромное, все работает

Автор - astashov_michail@tutby
Дата добавления - 17.08.2022 в 19:21
astashov_michail@tutby Дата: Пятница, 19.08.2022, 10:52 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 94
Репутация: 0 ±
Замечаний: 100% ±

2016
_Boroda_, Здравствуйте. как оказалось , что при Ctrl+Z откатывает назад и свободно можно изменять данные . А это не есть ХОРОШО. :(. можно ли заблокировать «откат на шаг назад»


astashovM..
 
Ответить
Сообщение_Boroda_, Здравствуйте. как оказалось , что при Ctrl+Z откатывает назад и свободно можно изменять данные . А это не есть ХОРОШО. :(. можно ли заблокировать «откат на шаг назад»

Автор - astashov_michail@tutby
Дата добавления - 19.08.2022 в 10:52
_Boroda_ Дата: Пятница, 19.08.2022, 11:27 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Тоже в модуль листа положите
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Set d_ = Intersect(Target, Range("A1,A3,A6"))
    If Not d_ Is Nothing Then
        Application.EnableEvents = 0
        For Each dd_ In d_
            If dd_ <> "" Then
                dd_.Value = dd_.Value
            End If
        Next dd_
        Application.EnableEvents = 1
    End If
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТоже в модуль листа положите
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Set d_ = Intersect(Target, Range("A1,A3,A6"))
    If Not d_ Is Nothing Then
        Application.EnableEvents = 0
        For Each dd_ In d_
            If dd_ <> "" Then
                dd_.Value = dd_.Value
            End If
        Next dd_
        Application.EnableEvents = 1
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 19.08.2022 в 11:27
astashov_michail@tutby Дата: Пятница, 19.08.2022, 11:58 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 94
Репутация: 0 ±
Замечаний: 100% ±

2016
_Boroda_, Огромное спасибо!!!


astashovM..
 
Ответить
Сообщение_Boroda_, Огромное спасибо!!!

Автор - astashov_michail@tutby
Дата добавления - 19.08.2022 в 11:58
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!