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

Вход

Регистрация

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

 

= Мир MS Excel/Вывод сообщения по условию - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Вывод сообщения по условию
QwertyBoss Дата: Вторник, 22.12.2015, 15:22 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
День добрый. На форуме нашёл класный макрос: на ссылку 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]
К сообщению приложен файл: 9608027.xlsm (74.1 Kb)
 
Ответить
СообщениеДень добрый. На форуме нашёл класный макрос: на ссылку 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]

Автор - QwertyBoss
Дата добавления - 22.12.2015 в 15:22
Roman777 Дата: Вторник, 22.12.2015, 15:49 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
QwertyBoss, можно начать с такого:
[vba]
Код
If Target.Value <> 1 Or Intersect(Target, [G2:G100]) Is Nothing Then exit sub
[/vba]
вместо
[vba]
Код
If Intersect(Target, [G2:G100]) Is Nothing Then Exit Sub
[/vba]


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Вторник, 22.12.2015, 16:09
 
Ответить
СообщениеQwertyBoss, можно начать с такого:
[vba]
Код
If Target.Value <> 1 Or Intersect(Target, [G2:G100]) Is Nothing Then exit sub
[/vba]
вместо
[vba]
Код
If Intersect(Target, [G2:G100]) Is Nothing Then Exit Sub
[/vba]

Автор - Roman777
Дата добавления - 22.12.2015 в 15:49
Manyasha Дата: Вторник, 22.12.2015, 16:07 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 902 ±
Замечаний: 0% ±

Excel 2010, 2016
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
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение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
[/vba]

Автор - Manyasha
Дата добавления - 22.12.2015 в 16:07
QwertyBoss Дата: Вторник, 22.12.2015, 16:12 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
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
[/vba]

Автор - QwertyBoss
Дата добавления - 22.12.2015 в 16:12
Roman777 Дата: Вторник, 22.12.2015, 16:14 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
QwertyBoss, ошибочка была, недописал
[vba]
Код
If Target.Value <> 1 Or Intersect(Target, [G2:G100]) Is Nothing Then exit sub
[/vba]


Много чего не знаю!!!!
 
Ответить
СообщениеQwertyBoss, ошибочка была, недописал
[vba]
Код
If Target.Value <> 1 Or Intersect(Target, [G2:G100]) Is Nothing Then exit sub
[/vba]

Автор - Roman777
Дата добавления - 22.12.2015 в 16:14
QwertyBoss Дата: Вторник, 22.12.2015, 16:21 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Manyasha спс. получилось. Вопрос а почему "1" ? Если надо было 100% . Эт из-за процентов (формата?)
 
Ответить
СообщениеManyasha спс. получилось. Вопрос а почему "1" ? Если надо было 100% . Эт из-за процентов (формата?)

Автор - QwertyBoss
Дата добавления - 22.12.2015 в 16:21
Wasilich Дата: Вторник, 22.12.2015, 16:22 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
что бы при 1-99 макрос не срабатывал, а только при "100"
А так разве "низзя"!
[vba]
Код
If Target.Value < 100 Then
else
endif
[/vba]


Сообщение отредактировал Wasilic - Вторник, 22.12.2015, 16:24
 
Ответить
Сообщение
что бы при 1-99 макрос не срабатывал, а только при "100"
А так разве "низзя"!
[vba]
Код
If Target.Value < 100 Then
else
endif
[/vba]

Автор - Wasilich
Дата добавления - 22.12.2015 в 16:22
QwertyBoss Дата: Вторник, 22.12.2015, 16:26 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Wasilic. блин... опять сел в лужу =). Спс. за ликбез.
А можно ли такой фокус провернуть с формами (UserForms - это где кнопка "Маска")? Что бы сообщение выходило "Внеси все данные", если к примеру забыли данные внести?


Сообщение отредактировал QwertyBoss - Вторник, 22.12.2015, 16:33
 
Ответить
СообщениеWasilic. блин... опять сел в лужу =). Спс. за ликбез.
А можно ли такой фокус провернуть с формами (UserForms - это где кнопка "Маска")? Что бы сообщение выходило "Внеси все данные", если к примеру забыли данные внести?

Автор - QwertyBoss
Дата добавления - 22.12.2015 в 16:26
Wasilich Дата: Вторник, 22.12.2015, 16:33 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
А можно ли такой фокус провернуть с формами (UserForms)?
1. 100% можно!
2. А нужно ли именно в форме?
3. Ненавижу работы с формами.
ЗЫ
(UserForms - это где кнопка "Маска")
У меня не работает Ваш файл!


Сообщение отредактировал Wasilic - Вторник, 22.12.2015, 16:38
 
Ответить
Сообщение
А можно ли такой фокус провернуть с формами (UserForms)?
1. 100% можно!
2. А нужно ли именно в форме?
3. Ненавижу работы с формами.
ЗЫ
(UserForms - это где кнопка "Маска")
У меня не работает Ваш файл!

Автор - Wasilich
Дата добавления - 22.12.2015 в 16:33
QwertyBoss Дата: Вторник, 22.12.2015, 17:17 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
странно, заливаю новый... Пароль 123
Цитата
А нужно ли именно в форме?

Там основное колличество ошибок будут работники допускать, поэтому и надо "защиту от дурака"
К сообщению приложен файл: 3852228.xlsm (73.5 Kb)
 
Ответить
Сообщениестранно, заливаю новый... Пароль 123
Цитата
А нужно ли именно в форме?

Там основное колличество ошибок будут работники допускать, поэтому и надо "защиту от дурака"

Автор - QwertyBoss
Дата добавления - 22.12.2015 в 17:17
Wasilich Дата: Вторник, 22.12.2015, 17:37 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
заливаю новый...
Бесполезно! Это видимо виноват 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
[/vba]


Сообщение отредактировал Wasilic - Вторник, 22.12.2015, 18:19
 
Ответить
Сообщение
заливаю новый...
Бесполезно! Это видимо виноват 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
[/vba]

Автор - Wasilich
Дата добавления - 22.12.2015 в 17:37
QwertyBoss Дата: Вторник, 22.12.2015, 19:31 | Сообщение № 12
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спс.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]

Респект Вам hands


Сообщение отредактировал QwertyBoss - Вторник, 22.12.2015, 19:31
 
Ответить
СообщениеСпс.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]

Респект Вам hands

Автор - QwertyBoss
Дата добавления - 22.12.2015 в 19:31
  • Страница 1 из 1
  • 1
Поиск:

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