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

Вход

Регистрация

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

 

= Мир MS Excel/Как сделать, чтобы макрос выполнялся 1 раз - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Как сделать, чтобы макрос выполнялся 1 раз
ArkaIIIa Дата: Пятница, 06.09.2013, 16:24 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Согласно правилам форума, 1 проблема = 1 топик, по этому заранее извиняюсь, что захламляю форум пустячными вопросами)
В приложении - файлик с макросом. Суть работы в том, что он находит текст "с учетом" - появялется всплывающее сообщение.
Но если эта ячейка остается заполнена текстом, содержащим "с учетом", и начать вводить текст в другие ячейки... то сообщение каждый раз снова и снова появляется. Как завершить работу макроса после первого выполнения?
К сообщению приложен файл: 9600646.xlsm (15.0 Kb)


Сообщение отредактировал ArkaIIIa - Пятница, 06.09.2013, 16:40
 
Ответить
СообщениеСогласно правилам форума, 1 проблема = 1 топик, по этому заранее извиняюсь, что захламляю форум пустячными вопросами)
В приложении - файлик с макросом. Суть работы в том, что он находит текст "с учетом" - появялется всплывающее сообщение.
Но если эта ячейка остается заполнена текстом, содержащим "с учетом", и начать вводить текст в другие ячейки... то сообщение каждый раз снова и снова появляется. Как завершить работу макроса после первого выполнения?

Автор - ArkaIIIa
Дата добавления - 06.09.2013 в 16:24
Hugo Дата: Пятница, 06.09.2013, 17:49 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3703
Репутация: 792 ±
Замечаний: 0% ±

365
Как вариант:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = [a1] Then Exit Sub
     If InStr(1, Cells(1, 1), "с учетом") <> 0 Then
     MsgBox "Внимание, необходимо заполнить Комментарий к решению"
     Cells(1, 1).Value = "с учётом"
     End If
End Sub
[/vba]
хотя зачем это - непонятно...


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеКак вариант:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = [a1] Then Exit Sub
     If InStr(1, Cells(1, 1), "с учетом") <> 0 Then
     MsgBox "Внимание, необходимо заполнить Комментарий к решению"
     Cells(1, 1).Value = "с учётом"
     End If
End Sub
[/vba]
хотя зачем это - непонятно...

Автор - Hugo
Дата добавления - 06.09.2013 в 17:49
ArkaIIIa Дата: Понедельник, 09.09.2013, 09:34 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Hugo
Вообще не работает в таком исполнении. Т.е. месаджбокс не появляется.
 
Ответить
СообщениеHugo
Вообще не работает в таком исполнении. Т.е. месаджбокс не появляется.

Автор - ArkaIIIa
Дата добавления - 09.09.2013 в 09:34
SkyPro Дата: Понедельник, 09.09.2013, 10:07 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     If Cells(1, 1).Value <> "с учетом" Then
     MsgBox "Внимание, необходимо заполнить Комментарий к решению"
     End If
End Sub
[/vba]
Так?


skypro1111@gmail.com
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     If Cells(1, 1).Value <> "с учетом" Then
     MsgBox "Внимание, необходимо заполнить Комментарий к решению"
     End If
End Sub
[/vba]
Так?

Автор - SkyPro
Дата добавления - 09.09.2013 в 10:07
ArkaIIIa Дата: Понедельник, 09.09.2013, 10:17 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
SkyPro, так ошибку выдает. Косяк в макросе.
 
Ответить
СообщениеSkyPro, так ошибку выдает. Косяк в макросе.

Автор - ArkaIIIa
Дата добавления - 09.09.2013 в 10:17
VictorM Дата: Понедельник, 09.09.2013, 10:42 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 161
Репутация: 27 ±
Замечаний: 0% ±

Никаких косяков.
макрос SkyPro работает как описано у Вас.
проверил.
 
Ответить
СообщениеНикаких косяков.
макрос SkyPro работает как описано у Вас.
проверил.

Автор - VictorM
Дата добавления - 09.09.2013 в 10:42
RAN Дата: Понедельник, 09.09.2013, 10:52 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Косяк не в макросе, а в постановке задачи.
Что надо - неясно. Отсюда и решения.

Макрос сейчас привязан к А1. А надо куда?


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Понедельник, 09.09.2013, 10:54
 
Ответить
СообщениеКосяк не в макросе, а в постановке задачи.
Что надо - неясно. Отсюда и решения.

Макрос сейчас привязан к А1. А надо куда?

Автор - RAN
Дата добавления - 09.09.2013 в 10:52
ArkaIIIa Дата: Понедельник, 09.09.2013, 10:57 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
RAN, Hugo,Задача следующая. Есть таблица. Одна из ячеек принимает значение "текст_с учетом", либо "текст_без учета".
Нужно, чтобы в случае, когда ячейка принимает вид "текст_с учетом", появлялся меседжбокс с определенным текстом, но в случае с исходным примером, если продолжить заполнять другие ячейки листа, меседжбокс будет появляться снова и снова. Нужно реализовать выполнение макроса так, чтобы меседжбокс появлялся только 1 раз.
 
Ответить
СообщениеRAN, Hugo,Задача следующая. Есть таблица. Одна из ячеек принимает значение "текст_с учетом", либо "текст_без учета".
Нужно, чтобы в случае, когда ячейка принимает вид "текст_с учетом", появлялся меседжбокс с определенным текстом, но в случае с исходным примером, если продолжить заполнять другие ячейки листа, меседжбокс будет появляться снова и снова. Нужно реализовать выполнение макроса так, чтобы меседжбокс появлялся только 1 раз.

Автор - ArkaIIIa
Дата добавления - 09.09.2013 в 10:57
RAN Дата: Понедельник, 09.09.2013, 10:59 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     If Target <> [a1] Then Exit Sub
     If Cells(1, 1).Value = "с учетом" Then
      MsgBox "Внимание, необходимо заполнить Комментарий к решению"
      End If
End Sub
[/vba]

Не проверил, поправил знак.
Или
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     If Target <> [a1] Then Exit Sub
     If InStr(1, Cells(1, 1), "с учетом") <> 0 Then
     MsgBox "Внимание, необходимо заполнить Комментарий к решению"
     End If
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Понедельник, 09.09.2013, 11:04
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     If Target <> [a1] Then Exit Sub
     If Cells(1, 1).Value = "с учетом" Then
      MsgBox "Внимание, необходимо заполнить Комментарий к решению"
      End If
End Sub
[/vba]

Не проверил, поправил знак.
Или
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     If Target <> [a1] Then Exit Sub
     If InStr(1, Cells(1, 1), "с учетом") <> 0 Then
     MsgBox "Внимание, необходимо заполнить Комментарий к решению"
     End If
End Sub
[/vba]

Автор - RAN
Дата добавления - 09.09.2013 в 10:59
ArkaIIIa Дата: Понедельник, 09.09.2013, 11:02 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
RAN
Вроде все работает. Большое спасибо!
 
Ответить
СообщениеRAN
Вроде все работает. Большое спасибо!

Автор - ArkaIIIa
Дата добавления - 09.09.2013 в 11:02
  • Страница 1 из 1
  • 1
Поиск:

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