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

Вход

Регистрация

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

 

= Мир MS Excel/При изменении текста в ячейке вывести окно (да/нет) - Мир MS Excel

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

Excel 2013
Всем доброго времени суток!
Пользовался поиском, не нашел похожей темы(
Помогите, пожалуйста!
Есть файл (прикрепил)
Необходимо, чтобы при изменении текста в любой (не пустой, то есть если там уже есть какой-либо текст) ячейке А4-А5000 выходило окно с запросом "Изменить название товара?" и кнопочки да / нет
Ну, соответственно, при нажатии на ДА ячейка меняла свое содержимое, и при нажатии НЕТ название оставалось прежним

Заранее спасибо!
К сообщению приложен файл: 6672975.xlsx(9Kb)
 
Ответить
СообщениеВсем доброго времени суток!
Пользовался поиском, не нашел похожей темы(
Помогите, пожалуйста!
Есть файл (прикрепил)
Необходимо, чтобы при изменении текста в любой (не пустой, то есть если там уже есть какой-либо текст) ячейке А4-А5000 выходило окно с запросом "Изменить название товара?" и кнопочки да / нет
Ну, соответственно, при нажатии на ДА ячейка меняла свое содержимое, и при нажатии НЕТ название оставалось прежним

Заранее спасибо!

Автор - Kir_ivanov
Дата добавления - 03.09.2016 в 18:14
_Boroda_ Дата: Суббота, 03.09.2016, 19:00 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 9375
Репутация: 3948 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Макрос в модуль листа
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A4:A5000")) Is Nothing Then
        Application.ScreenUpdating = 0
        Application.EnableEvents = 0
        Application.Undo
        z0_(1, 1) = Target
        Application.Undo
        If z0_ <> "" Then
            If MsgBox("Изменить название товара?" & vbLf & "Было '" & z0_(1, 1) & "'.", vbYesNo) <> 6 Then
                Application.Undo
            End If
        End If
        Application.EnableEvents = 1
    End If
End Sub
[/vba]
Добавлено
Для множественных изменений нужно дописать цикл проверки на пусто
К сообщению приложен файл: 6672975_2.xlsm(16Kb)


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


Сообщение отредактировал _Boroda_ - Суббота, 03.09.2016, 19:06
 
Ответить
СообщениеТак нужно?
Макрос в модуль листа
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A4:A5000")) Is Nothing Then
        Application.ScreenUpdating = 0
        Application.EnableEvents = 0
        Application.Undo
        z0_(1, 1) = Target
        Application.Undo
        If z0_ <> "" Then
            If MsgBox("Изменить название товара?" & vbLf & "Было '" & z0_(1, 1) & "'.", vbYesNo) <> 6 Then
                Application.Undo
            End If
        End If
        Application.EnableEvents = 1
    End If
End Sub
[/vba]
Добавлено
Для множественных изменений нужно дописать цикл проверки на пусто

Автор - _Boroda_
Дата добавления - 03.09.2016 в 19:00
wild_pig Дата: Суббота, 03.09.2016, 19:01 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 458
Репутация: 85 ±
Замечаний: 0% ±

2003, 2013
Пробуем.
К сообщению приложен файл: tovarchik.xlsm(13Kb)
 
Ответить
СообщениеПробуем.

Автор - wild_pig
Дата добавления - 03.09.2016 в 19:01
Kir_ivanov Дата: Воскресенье, 04.09.2016, 11:44 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Так нужно?
Макрос в модуль листа


Спасибо!
только один нюанс - при изменении ячейки пишет "Run-time error '13'"
 
Ответить
Сообщение
Так нужно?
Макрос в модуль листа


Спасибо!
только один нюанс - при изменении ячейки пишет "Run-time error '13'"

Автор - Kir_ivanov
Дата добавления - 04.09.2016 в 11:44
Kir_ivanov Дата: Воскресенье, 04.09.2016, 11:45 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Пробуем.
К сообщению приложен файл: tovarchik.xlsm(13Kb)


Спасибо! Только вопрос выходит даже тогда, когда вводишь название в пустую ячейку, хотелось бы чтобы окно выходило только при изменении заполненной ячейки
 
Ответить
Сообщение
Пробуем.
К сообщению приложен файл: tovarchik.xlsm(13Kb)


Спасибо! Только вопрос выходит даже тогда, когда вводишь название в пустую ячейку, хотелось бы чтобы окно выходило только при изменении заполненной ячейки

Автор - Kir_ivanov
Дата добавления - 04.09.2016 в 11:45
_Boroda_ Дата: Воскресенье, 04.09.2016, 12:18 | Сообщение № 6
Группа: Модераторы
Ранг: Экселист
Сообщений: 9375
Репутация: 3948 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
при изменении ячейки пишет "Run-time error '13'"

Да, согласен, недоработочка. Вернее, первоначальный вариант был правильный, а потом хотел как лучше, а получилось как всегда
Посмотрите так - убрал (1, 1)
К сообщению приложен файл: 6672975_3.xlsm(16Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
при изменении ячейки пишет "Run-time error '13'"

Да, согласен, недоработочка. Вернее, первоначальный вариант был правильный, а потом хотел как лучше, а получилось как всегда
Посмотрите так - убрал (1, 1)

Автор - _Boroda_
Дата добавления - 04.09.2016 в 12:18
Kir_ivanov Дата: Воскресенье, 11.09.2016, 13:04 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Да, согласен, недоработочка. Вернее, первоначальный вариант был правильный, а потом хотел как лучше, а получилось как всегда
Посмотрите так - убрал (1, 1)

Спасибо за ответ! Все работает, единственное, это то что фокус возвращается всегда обратно на ту же ячейку, по которой выводился вопрос(
 
Ответить
Сообщение
Да, согласен, недоработочка. Вернее, первоначальный вариант был правильный, а потом хотел как лучше, а получилось как всегда
Посмотрите так - убрал (1, 1)

Спасибо за ответ! Все работает, единственное, это то что фокус возвращается всегда обратно на ту же ячейку, по которой выводился вопрос(

Автор - Kir_ivanov
Дата добавления - 11.09.2016 в 13:04
Roman777 Дата: Понедельник, 12.09.2016, 13:14 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Kir_ivanov, так у Вас фокус вернётся к последней выделенной ячейке
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A4:A5000")) Is Nothing Then
        Set r = Selection
        Application.ScreenUpdating = 0
        Application.EnableEvents = 0
        Application.Undo
        z0_ = Target
        Application.Undo
        If z0_ <> "" Then
            If MsgBox("Изменить название товара?" & vbLf & "Было '" & z0_ & "'.", vbYesNo) <> 6 Then
                Application.Undo
            End If
        End If
        r.Select
        Application.EnableEvents = 1
    End If
End Sub
[/vba]


Много чего не знаю!!!!
 
Ответить
СообщениеKir_ivanov, так у Вас фокус вернётся к последней выделенной ячейке
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A4:A5000")) Is Nothing Then
        Set r = Selection
        Application.ScreenUpdating = 0
        Application.EnableEvents = 0
        Application.Undo
        z0_ = Target
        Application.Undo
        If z0_ <> "" Then
            If MsgBox("Изменить название товара?" & vbLf & "Было '" & z0_ & "'.", vbYesNo) <> 6 Then
                Application.Undo
            End If
        End If
        r.Select
        Application.EnableEvents = 1
    End If
End Sub
[/vba]

Автор - Roman777
Дата добавления - 12.09.2016 в 13:14
Kir_ivanov Дата: Суббота, 17.09.2016, 13:35 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
так у Вас фокус вернётся к последней выделенной ячейке

Спасибо! Все работает
 
Ответить
Сообщение
так у Вас фокус вернётся к последней выделенной ячейке

Спасибо! Все работает

Автор - Kir_ivanov
Дата добавления - 17.09.2016 в 13:35
Мир MS Excel » Вопросы и решения » Вопросы по VBA » При изменении текста в ячейке вывести окно (да/нет) (Макросы/Sub)
Страница 1 из 11
Поиск:

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