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

Вход

Регистрация

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

 

= Мир MS Excel/Вызов userform при очистке значений в определённых ячейках - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вызов userform при очистке значений в определённых ячейках (Макросы/Sub)
Вызов userform при очистке значений в определённых ячейках
Xpert Дата: Понедельник, 27.11.2017, 11:38 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день!
Прошу помочь разобраться с хитросплетениями VBA, поскольку нахожусь только в начале пути изучения языка.
Суть: есть документ, при открытии которого, в случае отсутствия значений в определённых ячейках(G1 и J2 или K2), выскакивают userform1 или usrform2, через комбо- и текстбоксы которых пользователь заполняет те самые ячейки в которых не было значений.
Как сделать так, чтобы в случае случайного(или намеренного) удаления значений из ячеек (G1 и J2 или K2) в ходе обработки документа, появлялись userform1 или usrform2, и не убирались до тех пор, пока не будут заполнены?
И попутно: как ограничить ввод текста в Текстбокс 1 исключительно буквенными либо буквенно-цифровыми значениями? Таким образом, чтобы при вводе одних лишь цифр в поле "наименование заказчика", появлялся месседжбокс с уведомлением о недопустимости ввода только лишь цифр?
Нечто подобное я нашёл на просторах Сети и применил для текстбокса2, но и там как-то криво работает.

Заране благодарю, файл-пример прилагаю.
К сообщению приложен файл: PRIMER.xls(72Kb)


Сообщение отредактировал Xpert - Понедельник, 27.11.2017, 12:03
 
Ответить
СообщениеДобрый день!
Прошу помочь разобраться с хитросплетениями VBA, поскольку нахожусь только в начале пути изучения языка.
Суть: есть документ, при открытии которого, в случае отсутствия значений в определённых ячейках(G1 и J2 или K2), выскакивают userform1 или usrform2, через комбо- и текстбоксы которых пользователь заполняет те самые ячейки в которых не было значений.
Как сделать так, чтобы в случае случайного(или намеренного) удаления значений из ячеек (G1 и J2 или K2) в ходе обработки документа, появлялись userform1 или usrform2, и не убирались до тех пор, пока не будут заполнены?
И попутно: как ограничить ввод текста в Текстбокс 1 исключительно буквенными либо буквенно-цифровыми значениями? Таким образом, чтобы при вводе одних лишь цифр в поле "наименование заказчика", появлялся месседжбокс с уведомлением о недопустимости ввода только лишь цифр?
Нечто подобное я нашёл на просторах Сети и применил для текстбокса2, но и там как-то криво работает.

Заране благодарю, файл-пример прилагаю.

Автор - Xpert
Дата добавления - 27.11.2017 в 11:38
sboy Дата: Понедельник, 27.11.2017, 12:09 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1166
Репутация: 294 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
по первому вопросу можно так (в модуле листа)
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
a = Target.Address(0, 0)
    Select Case a
    Case Is = "G1"
        If Target = "" Then UserForm1.Show
    Case Is = "J2", "K2"
        If Target = "" Then UserForm2.Show
    Case Else
        Exit Sub
    End Select
End Sub
[/vba]
по второму надо создать отдельную тему
К сообщению приложен файл: PRIMER-2-.xls(77Kb)
 
Ответить
СообщениеДобрый день.
по первому вопросу можно так (в модуле листа)
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
a = Target.Address(0, 0)
    Select Case a
    Case Is = "G1"
        If Target = "" Then UserForm1.Show
    Case Is = "J2", "K2"
        If Target = "" Then UserForm2.Show
    Case Else
        Exit Sub
    End Select
End Sub
[/vba]
по второму надо создать отдельную тему

Автор - sboy
Дата добавления - 27.11.2017 в 12:09
_Boroda_ Дата: Понедельник, 27.11.2017, 12:24 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11852
Репутация: 4911 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
У меня примерно также
В модуле листа
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("G1") = "" Or Range("J2") = "" Or Range("K2") = "" Then
        formy
    End If
End Sub
[/vba]
В обычном модуле
[vba]
Код
Sub formy()
    With Sheets("ЛИСТ1")
        On Error Resume Next
        If .Range("G1") = "" Then
            UserForm1.Show
        Else
            UserForm1.Hide
        End If
        If .Range("J2") = "" Or .Range("K2") = "" Then
            UserForm2.Show
        Else
            UserForm2.Hide
        End If
    End With
End Sub
[/vba]
И там еще в модулях форм тоже что-то поправил, не помню уже

А второй вопрос да, в отдельной теме нужно задавать
К сообщению приложен файл: PRIMER-15-1.xls(86Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеУ меня примерно также
В модуле листа
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("G1") = "" Or Range("J2") = "" Or Range("K2") = "" Then
        formy
    End If
End Sub
[/vba]
В обычном модуле
[vba]
Код
Sub formy()
    With Sheets("ЛИСТ1")
        On Error Resume Next
        If .Range("G1") = "" Then
            UserForm1.Show
        Else
            UserForm1.Hide
        End If
        If .Range("J2") = "" Or .Range("K2") = "" Then
            UserForm2.Show
        Else
            UserForm2.Hide
        End If
    End With
End Sub
[/vba]
И там еще в модулях форм тоже что-то поправил, не помню уже

А второй вопрос да, в отдельной теме нужно задавать

Автор - _Boroda_
Дата добавления - 27.11.2017 в 12:24
Xpert Дата: Понедельник, 27.11.2017, 12:38 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Спасибо, господа!


Сообщение отредактировал Xpert - Понедельник, 27.11.2017, 12:42
 
Ответить
СообщениеСпасибо, господа!

Автор - Xpert
Дата добавления - 27.11.2017 в 12:38
_Boroda_ Дата: Понедельник, 27.11.2017, 12:47 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11852
Репутация: 4911 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так?
Пока делал, Вы уже свой пост поправили. Ну ладно, пусть будет
К сообщению приложен файл: PRIMER-15-2.xls(83Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак?
Пока делал, Вы уже свой пост поправили. Ну ладно, пусть будет

Автор - _Boroda_
Дата добавления - 27.11.2017 в 12:47
Xpert Дата: Понедельник, 27.11.2017, 14:15 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, спасибо!
Вроде работает.
И теперь, бонусом, при вводе курса можно отделять дробную часть запятой, и данные вводятся в ячейку в числовом формате!

А, нет. С запятой не отображает дробную часть.Ну да ладно.


Сообщение отредактировал Xpert - Понедельник, 27.11.2017, 14:19
 
Ответить
Сообщение_Boroda_, спасибо!
Вроде работает.
И теперь, бонусом, при вводе курса можно отделять дробную часть запятой, и данные вводятся в ячейку в числовом формате!

А, нет. С запятой не отображает дробную часть.Ну да ладно.

Автор - Xpert
Дата добавления - 27.11.2017 в 14:15
_Boroda_ Дата: Понедельник, 27.11.2017, 14:55 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11852
Репутация: 4911 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Ловите
К сообщению приложен файл: PRIMER-15-3.xls(82Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЛовите

Автор - _Boroda_
Дата добавления - 27.11.2017 в 14:55
Xpert Дата: Понедельник, 27.11.2017, 15:39 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, спасибо! hands
Класс.
 
Ответить
Сообщение_Boroda_, спасибо! hands
Класс.

Автор - Xpert
Дата добавления - 27.11.2017 в 15:39
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вызов userform при очистке значений в определённых ячейках (Макросы/Sub)
Страница 1 из 11
Поиск:

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