powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / MSGBOX при обновлении значения ячейки Excel
15 сообщений из 15, страница 1 из 1
MSGBOX при обновлении значения ячейки Excel
    #37753190
muzikizum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Возникла задача - выводить сообщение при вводе в заданный диапазон Excel "запрещенных" символов. Список этих символов должен редактироваться вручную (например, $,%,*). Подскажите, пожалуйста, как это можно сделать в VBA?
...
Рейтинг: 0 / 0
MSGBOX при обновлении значения ячейки Excel
    #37753213
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что не получается? Выводить сообщение или редактируемый список?
...
Рейтинг: 0 / 0
MSGBOX при обновлении значения ячейки Excel
    #37753239
muzikizum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вывести сообщение без всяких условий - не проблема :) Не знаю, как связать это событие с редактированием ячейки, тем более с введением в нее символов из заданного списка...
...
Рейтинг: 0 / 0
MSGBOX при обновлении значения ячейки Excel
    #37753653
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
Private Sub Worksheet_Change(ByVal Target As Range)

If InStr(1, Target.Value, "$") Then MsgBox "Ниииизя!"

End Sub
...
Рейтинг: 0 / 0
MSGBOX при обновлении значения ячейки Excel
    #37753659
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если символов несколько, то можно так:
Код: vbnet
1.
2.
denied = "\$\%\^\&\*"
If Target.Value Like "*[" + denied + "]*" Then MsgBox "Ниииизя!"
...
Рейтинг: 0 / 0
MSGBOX при обновлении значения ячейки Excel
    #37753791
muzikizum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, спасибо! Только возникает runtime error при удалении значений диапазона. И как задать определенный диапазон, а не весь лист?
...
Рейтинг: 0 / 0
MSGBOX при обновлении значения ячейки Excel
    #37753905
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muzikizumТолько возникает runtime error при удалении значений диапазонане только при удалении, а при попытке отредактировать НЕ одну ячейку. Так что сначала определитесь, что нужно делать в таких случаях.
...
Рейтинг: 0 / 0
MSGBOX при обновлении значения ячейки Excel
    #37753907
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muzikizumИ как задать определенный диапазон, а не весь лист?ответ на этот вопрос будет зависеть от ответа на первый
...
Рейтинг: 0 / 0
MSGBOX при обновлении значения ячейки Excel
    #37754251
muzikizum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, при попытке отредактировать не одну, а несколько ячеек (удалить, вставить) - должно выполняться это действие.
...
Рейтинг: 0 / 0
MSGBOX при обновлении значения ячейки Excel
    #37754499
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Denied As String, CheckingRange As Range, j As Range
Denied = "\$\%\^\&\*"
Set CheckingRange = Range("B2:C10")

Set Target = Application.Intersect(Target, CheckingRange)
If Not Target Is Nothing Then
    For Each j In Target.Cells
      If j.Value Like "*[" + Denied + "]*" Then
        MsgBox "Ниииизя!"
        Exit For
      End If
    Next
End If

End Sub
...
Рейтинг: 0 / 0
MSGBOX при обновлении значения ячейки Excel
    #37754606
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правда, есть тут некий глюк, ибо это глюк (вряд ли фича) экселя.
При удалении, скажем, строки 5, 6-я строка становится 5-й. При этом Target ссылается на эту самую 5-ю строку, соответственно, по ней идет проверка (хотя она при этом действии не изменялась).

По идее при таком событии Target должен бы принимать значение Nothing, но это не так.
Идей, как обойти это у меня нет.
...
Рейтинг: 0 / 0
MSGBOX при обновлении значения ячейки Excel
    #37755002
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если использовать Данные - Проверка данных

там выбрать "другой" и подставить код предложенный Shocker.Pro
...
Рейтинг: 0 / 0
MSGBOX при обновлении значения ячейки Excel
    #37757821
muzikizum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot, Господь с вами. "Проверка данных" VBA не понимает.
Shocker.Pro, спасибо!
...
Рейтинг: 0 / 0
MSGBOX при обновлении значения ячейки Excel
    #37757830
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muzikizumHandKot, Господь с вами. "Проверка данных" VBA не понимает.а что, нельзя туда добавить UDF?
...
Рейтинг: 0 / 0
MSGBOX при обновлении значения ячейки Excel
    #37758140
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Shocker.Pro
> При удалении, скажем, строки 5, 6-я строка становится 5-й. При этом Target ссылается на эту самую 5-ю строку, соответственно, по ней идет проверка (хотя она при этом действии не изменялась).


ПолуоффПосле удаления строки (в пределах UsedRange или выше оного) тыцни Ctrl+Z и посмотри сколько раз вызовется Worksheet_Change и что будет в качестве Target
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / MSGBOX при обновлении значения ячейки Excel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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