День добрый. На форуме нашёл класный макрос: на ссылку c незаполненой ячейкой. Вставил к своим, подкорректировал под себя. Всё работает, но хотелось бы что бы сообщение "Поставь дату окончания " появлялось только после того, когда в G2:G100 будет проставлено "100%". Т.е. по мере занесения в ячейки процентов выполнения - сообщение не появляется, а при занесении 100% - появляется с угрожающей надписью... Спс. заранее
[vba]
Код
If Intersect(Target, [G2:G100]) Is Nothing Then Exit Sub If Not IsEmpty(Target) Then If IsEmpty(Target.Offset(, 1)) Then Target.Offset(, 1).Select Set Rng = ActiveCell MsgBox "Поставь дату окончания " & Target.Offset(, 1).Address & " !!!" End If End If
[/vba]
День добрый. На форуме нашёл класный макрос: на ссылку c незаполненой ячейкой. Вставил к своим, подкорректировал под себя. Всё работает, но хотелось бы что бы сообщение "Поставь дату окончания " появлялось только после того, когда в G2:G100 будет проставлено "100%". Т.е. по мере занесения в ячейки процентов выполнения - сообщение не появляется, а при занесении 100% - появляется с угрожающей надписью... Спс. заранее
[vba]
Код
If Intersect(Target, [G2:G100]) Is Nothing Then Exit Sub If Not IsEmpty(Target) Then If IsEmpty(Target.Offset(, 1)) Then Target.Offset(, 1).Select Set Rng = ActiveCell MsgBox "Поставь дату окончания " & Target.Offset(, 1).Address & " !!!" End If End If
If Target.Value = 1 Then If IsEmpty(Target.Offset(, 1)) Then Target.Offset(, 1).Select Set Rng = ActiveCell MsgBox "Поставь дату окончания " & Target.Offset(, 1).Address & " !!!" End If End If
[/vba]
QwertyBoss, наверное так [vba]
Код
If Target.Value = 1 Then If IsEmpty(Target.Offset(, 1)) Then Target.Offset(, 1).Select Set Rng = ActiveCell MsgBox "Поставь дату окончания " & Target.Offset(, 1).Address & " !!!" End If End If
Roman777, не выходит... пробую разные условия (=, <>, 1, 100) всё равно сообщение выходит не на цифре "100". Диапазон как указать что бы при 1-99 макрос не срабатывал, а только при "100" [vba]
Код
If Target.Value <> 1 Or Intersect(Target, [G2:G100]) Is Nothing Then
[/vba]
Roman777, не выходит... пробую разные условия (=, <>, 1, 100) всё равно сообщение выходит не на цифре "100". Диапазон как указать что бы при 1-99 макрос не срабатывал, а только при "100" [vba]
Код
If Target.Value <> 1 Or Intersect(Target, [G2:G100]) Is Nothing Then
Wasilic. блин... опять сел в лужу =). Спс. за ликбез. А можно ли такой фокус провернуть с формами (UserForms - это где кнопка "Маска")? Что бы сообщение выходило "Внеси все данные", если к примеру забыли данные внести?
Wasilic. блин... опять сел в лужу =). Спс. за ликбез. А можно ли такой фокус провернуть с формами (UserForms - это где кнопка "Маска")? Что бы сообщение выходило "Внеси все данные", если к примеру забыли данные внести?QwertyBoss
Сообщение отредактировал QwertyBoss - Вторник, 22.12.2015, 16:33
Бесполезно! Это видимо виноват 3-й пункт правил. У меня 2003-й. Вот, если правильно догадался на счет 100%-ов. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Not Application.Intersect(Range("G2:G100"), Target) Is Nothing Then Else Exit Sub Dim a Application.EnableEvents = 0 a = Target.Value Application.Undo If Target > a Then MsgBox "ТЫ ЧЁ ТВОРИШЬ, КТО РАЗРЕШИЛ МЕНЯТЬ?" Else Target = a End If If Target = 1 And Target.Offset(, 1) = 0 Then Target.Offset(, 1).Select MsgBox "Поставь дату окончания в " & Target.Offset(, 1).Address & " !!!" End If Application.EnableEvents = -1 End Sub
[/vba] Проверка заполнения полей. Ориентировался по коду. [vba]
Код
If TextBox1.Value = "" Or ComboBox2.Value = "" Or TextBox3.Value = "" Or TextBox5.Value = "" Or txt_Дата4.Value = "" Then MsgBox "НЕ ВСЕ ПОЛЯ ЗАПОЛНЕНЫ!" Exit Sub End If
Бесполезно! Это видимо виноват 3-й пункт правил. У меня 2003-й. Вот, если правильно догадался на счет 100%-ов. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Not Application.Intersect(Range("G2:G100"), Target) Is Nothing Then Else Exit Sub Dim a Application.EnableEvents = 0 a = Target.Value Application.Undo If Target > a Then MsgBox "ТЫ ЧЁ ТВОРИШЬ, КТО РАЗРЕШИЛ МЕНЯТЬ?" Else Target = a End If If Target = 1 And Target.Offset(, 1) = 0 Then Target.Offset(, 1).Select MsgBox "Поставь дату окончания в " & Target.Offset(, 1).Address & " !!!" End If Application.EnableEvents = -1 End Sub
[/vba] Проверка заполнения полей. Ориентировался по коду. [vba]
Код
If TextBox1.Value = "" Or ComboBox2.Value = "" Or TextBox3.Value = "" Or TextBox5.Value = "" Or txt_Дата4.Value = "" Then MsgBox "НЕ ВСЕ ПОЛЯ ЗАПОЛНЕНЫ!" Exit Sub End If
Спс.Wasilic. Получилось на все 100%. =). Нмного подкорректировал... [vba]
Код
If TextBox1.Value = "" Or ComboBox2.Value = "" Or TextBox3.Value = "" Or TextBox5.Value = "" Or txt_Дата4.Value = "" Then MsgBox "НЕ ВСЕ ПОЛЯ ЗАПОЛНЕНЫ!" UserForm1.Show End If
[/vba]
Респект Вам
Спс.Wasilic. Получилось на все 100%. =). Нмного подкорректировал... [vba]
Код
If TextBox1.Value = "" Or ComboBox2.Value = "" Or TextBox3.Value = "" Or TextBox5.Value = "" Or txt_Дата4.Value = "" Then MsgBox "НЕ ВСЕ ПОЛЯ ЗАПОЛНЕНЫ!" UserForm1.Show End If