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

Вход

Регистрация

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

 

= Мир MS Excel/Ввод данных с определенными условиями - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Ввод данных с определенными условиями (Макросы/Sub)
Ввод данных с определенными условиями
pkojuhoff Дата: Четверг, 14.06.2018, 17:17 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день! Коллеги, создал макрос, если нажимаем кнопку "ДА", то при внесении уникального номера, вся строка окрашивается в зеленый цвет, при нажатии клавиши "НЕТ", строка окрашивается в красный цвет.
Теперь получилась проблема, при внесении повторно уникального номера нет понятия проходил ли он или нет.
Подскажите, как сделать таким образом чтоб при вводе данных, столбец DZ, при повторяющемся значении (только строки залитые зеленым цветом) при нажатии кнопки "ДА", выдавал ошибку что такой уникальный номер уже существует. При нажатии кнопки "НЕТ", все работало как и ранее.
К сообщению приложен файл: 17.05-31.05.xls (60.5 Kb) · __.xls (34.5 Kb)
 
Ответить
СообщениеДобрый день! Коллеги, создал макрос, если нажимаем кнопку "ДА", то при внесении уникального номера, вся строка окрашивается в зеленый цвет, при нажатии клавиши "НЕТ", строка окрашивается в красный цвет.
Теперь получилась проблема, при внесении повторно уникального номера нет понятия проходил ли он или нет.
Подскажите, как сделать таким образом чтоб при вводе данных, столбец DZ, при повторяющемся значении (только строки залитые зеленым цветом) при нажатии кнопки "ДА", выдавал ошибку что такой уникальный номер уже существует. При нажатии кнопки "НЕТ", все работало как и ранее.

Автор - pkojuhoff
Дата добавления - 14.06.2018 в 17:17
boa Дата: Четверг, 14.06.2018, 20:46 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 550
Репутация: 167 ±
Замечаний: 0% ±

365
pkojuhoff, а вы в какой версии Excel работаете?
у вас есть условное форматирование?


 
Ответить
Сообщениеpkojuhoff, а вы в какой версии Excel работаете?
у вас есть условное форматирование?

Автор - boa
Дата добавления - 14.06.2018 в 20:46
pkojuhoff Дата: Пятница, 15.06.2018, 08:43 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
2016, условное форматирование есть, только как его использовать в макросе?
 
Ответить
Сообщение2016, условное форматирование есть, только как его использовать в макросе?

Автор - pkojuhoff
Дата добавления - 15.06.2018 в 08:43
StoTisteg Дата: Пятница, 15.06.2018, 10:27 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
pkojuhoff, в профиле у Вас написано 2007, файлы в формате 2003 :)
как его использовать в макросе?

Запишите его создание макрорекордером, прочистите код от мусора и используйте.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщениеpkojuhoff, в профиле у Вас написано 2007, файлы в формате 2003 :)
как его использовать в макросе?

Запишите его создание макрорекордером, прочистите код от мусора и используйте.

Автор - StoTisteg
Дата добавления - 15.06.2018 в 10:27
pkojuhoff Дата: Пятница, 15.06.2018, 18:30 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
А можно как то попроще? ^_^
 
Ответить
СообщениеА можно как то попроще? ^_^

Автор - pkojuhoff
Дата добавления - 15.06.2018 в 18:30
pkojuhoff Дата: Пятница, 15.06.2018, 18:35 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Нужно чтоб поиск уникального значения был только в ячейках залитых зеленым цветом. в других ячейках чтоб не искал.
 
Ответить
СообщениеНужно чтоб поиск уникального значения был только в ячейках залитых зеленым цветом. в других ячейках чтоб не искал.

Автор - pkojuhoff
Дата добавления - 15.06.2018 в 18:35
StoTisteg Дата: Суббота, 16.06.2018, 15:27 | Сообщение № 7
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
pkojuhoff, сама по себе задача очень проста, если вспомнить способ описать на ВБА диапазон "весь UsedRange за исключением указанных ячеек". Что-то мне подсказывает, что он есть, просто мне на работе не удалось его найти...


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщениеpkojuhoff, сама по себе задача очень проста, если вспомнить способ описать на ВБА диапазон "весь UsedRange за исключением указанных ячеек". Что-то мне подсказывает, что он есть, просто мне на работе не удалось его найти...

Автор - StoTisteg
Дата добавления - 16.06.2018 в 15:27
pkojuhoff Дата: Вторник, 19.06.2018, 12:19 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Так вот в том то и дело, не могу вспомните, как ограничить поиск ячейки в массиве.
 
Ответить
СообщениеТак вот в том то и дело, не могу вспомните, как ограничить поиск ячейки в массиве.

Автор - pkojuhoff
Дата добавления - 19.06.2018 в 12:19
pkojuhoff Дата: Вторник, 19.06.2018, 16:02 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Нет идей ни у кого?
 
Ответить
СообщениеНет идей ни у кого?

Автор - pkojuhoff
Дата добавления - 19.06.2018 в 16:02
Pelena Дата: Вторник, 19.06.2018, 16:56 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 19177
Репутация: 4417 ±
Замечаний: ±

Excel 365 & Mac Excel
создал макрос, если нажимаем кнопку "ДА"

Можете подробнее объяснить, где что нажимаем? У Вас макрос в пустом файле, где что вводить?


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
создал макрос, если нажимаем кнопку "ДА"

Можете подробнее объяснить, где что нажимаем? У Вас макрос в пустом файле, где что вводить?

Автор - Pelena
Дата добавления - 19.06.2018 в 16:56
boa Дата: Среда, 20.06.2018, 15:55 | Сообщение № 11
Группа: Друзья
Ранг: Ветеран
Сообщений: 550
Репутация: 167 ±
Замечаний: 0% ±

365
[url=http://forum.msexcel.ru/index.php/topic,11887.msg58986.html#msg58986]Здесь[/url] тема уже решена, наверное, Автор не отписался.
pkojuhoff, я же просил вас самостоятельно указывать дубли темы




Сообщение отредактировал boa - Среда, 20.06.2018, 16:02
 
Ответить
Сообщение[url=http://forum.msexcel.ru/index.php/topic,11887.msg58986.html#msg58986]Здесь[/url] тема уже решена, наверное, Автор не отписался.
pkojuhoff, я же просил вас самостоятельно указывать дубли темы

Автор - boa
Дата добавления - 20.06.2018 в 15:55
pkojuhoff Дата: Среда, 20.06.2018, 17:38 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день!
Приходит файл изначально все строки в белой заливки ( в данном случае файл 17.05-31.05 он во вложении) . Это наряды переданные нам за неделю.
Монтажники мне несут наряды в печатной форме отработанные и не отработанные. Вот у каждого наряда есть уникальный номер. Я создал макрос который окрашивает отработанные наряды зеленым цветом, не отработанные красным.
Сначала я проверяю отработанные наряды и в MSGBOX вношу уникальный номер и строка окрашивается в зеленый цвет.
Потом проверяю не отработанные и строка окрашивается в красный цвет.
Но бывают хитрые монтажники они два раза один и тот же наряд подают на оплату мне, и я им дважды плачу за один и тот же наряд.
Вот мне надо те наряды которые уже я вносил (то есть они зеленые уже стали), чтоб выдавало ошибку, что такой наряд уже проходил.

Можно сделать так чтоб при окраске в зелёный цвет, проверка уникального номера была по реестру. Если в реестре есть такой номер, то выдаёт ошибку, что наряд проходил. При окраске в красный, чтоб такая проверка не проходила. Так как наряд может быть выполнен в другой день и чтоб он окрасился в зелёный и записался в реестр. Можно так закрутить?

Дубли на форумах
https://forum.msexcel.ru/index.php/topic,11887.0.html
https://www.planetaexcel.ru/forum....%23ODBC
 
Ответить
СообщениеДобрый день!
Приходит файл изначально все строки в белой заливки ( в данном случае файл 17.05-31.05 он во вложении) . Это наряды переданные нам за неделю.
Монтажники мне несут наряды в печатной форме отработанные и не отработанные. Вот у каждого наряда есть уникальный номер. Я создал макрос который окрашивает отработанные наряды зеленым цветом, не отработанные красным.
Сначала я проверяю отработанные наряды и в MSGBOX вношу уникальный номер и строка окрашивается в зеленый цвет.
Потом проверяю не отработанные и строка окрашивается в красный цвет.
Но бывают хитрые монтажники они два раза один и тот же наряд подают на оплату мне, и я им дважды плачу за один и тот же наряд.
Вот мне надо те наряды которые уже я вносил (то есть они зеленые уже стали), чтоб выдавало ошибку, что такой наряд уже проходил.

Можно сделать так чтоб при окраске в зелёный цвет, проверка уникального номера была по реестру. Если в реестре есть такой номер, то выдаёт ошибку, что наряд проходил. При окраске в красный, чтоб такая проверка не проходила. Так как наряд может быть выполнен в другой день и чтоб он окрасился в зелёный и записался в реестр. Можно так закрутить?

Дубли на форумах
https://forum.msexcel.ru/index.php/topic,11887.0.html
https://www.planetaexcel.ru/forum....%23ODBC

Автор - pkojuhoff
Дата добавления - 20.06.2018 в 17:38
pkojuhoff Дата: Среда, 20.06.2018, 18:02 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Разобрался, на листе "реестр" запретил ввод повторных данных.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("A")) Is Nothing And Target.Count = 1 Then
Dim iCl As Range
On Error Resume Next
Application.EnableEvents = False
Set iCl = Columns("A").Find(Target.Value)
If Not iCl Is Nothing And iCl.Address <> Target.Address Then
MsgBox "Äàííûå ïî íàðÿäó: '" & Target.Value & "' â Îò÷¸òå óæå èìåþòñÿ!", vbCritical
Target.Value = Empty
End If
End If
Application.EnableEvents = True
End Sub

Всем спасибо!
 
Ответить
СообщениеРазобрался, на листе "реестр" запретил ввод повторных данных.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("A")) Is Nothing And Target.Count = 1 Then
Dim iCl As Range
On Error Resume Next
Application.EnableEvents = False
Set iCl = Columns("A").Find(Target.Value)
If Not iCl Is Nothing And iCl.Address <> Target.Address Then
MsgBox "Äàííûå ïî íàðÿäó: '" & Target.Value & "' â Îò÷¸òå óæå èìåþòñÿ!", vbCritical
Target.Value = Empty
End If
End If
Application.EnableEvents = True
End Sub

Всем спасибо!

Автор - pkojuhoff
Дата добавления - 20.06.2018 в 18:02
Manyasha Дата: Среда, 20.06.2018, 18:08 | Сообщение № 14
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
pkojuhoff, Оформите код тегами (кнопка #)
И перед копирование кода, меняйте раскладку на русскую, чтобы не было проблем с кодировкой.


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеpkojuhoff, Оформите код тегами (кнопка #)
И перед копирование кода, меняйте раскладку на русскую, чтобы не было проблем с кодировкой.

Автор - Manyasha
Дата добавления - 20.06.2018 в 18:08
pkojuhoff Дата: Среда, 20.06.2018, 18:19 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007

#Private Sub Worksheet_Change(ByVal Target As Range)
#If Not Intersect(Target, Columns("DZ")) Is Nothing And Target.Count = 1 Then
# Dim iCl As Range
# On Error Resume Next
# Application.EnableEvents = False
# Set iCl = Columns("DZ").Find(Target.Value)
# If Not iCl Is Nothing And iCl.Address <> Target.Address Then
# MsgBox "Данные по наряду: '" & Target.Value & "' в Отчёте уже имеются!", vbCritical
# Target.Value = Empty
# End If
# End If
# Application.EnableEvents = True
# End Sub
 
Ответить
Сообщение
#Private Sub Worksheet_Change(ByVal Target As Range)
#If Not Intersect(Target, Columns("DZ")) Is Nothing And Target.Count = 1 Then
# Dim iCl As Range
# On Error Resume Next
# Application.EnableEvents = False
# Set iCl = Columns("DZ").Find(Target.Value)
# If Not iCl Is Nothing And iCl.Address <> Target.Address Then
# MsgBox "Данные по наряду: '" & Target.Value & "' в Отчёте уже имеются!", vbCritical
# Target.Value = Empty
# End If
# End If
# Application.EnableEvents = True
# End Sub

Автор - pkojuhoff
Дата добавления - 20.06.2018 в 18:19
Manyasha Дата: Среда, 20.06.2018, 18:30 | Сообщение № 16
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
pkojuhoff, нужно не решетки ставить на каждую строчку, а выделить код в режиме правки поста и нажать на кнопку #.
Пояснялка тут


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеpkojuhoff, нужно не решетки ставить на каждую строчку, а выделить код в режиме правки поста и нажать на кнопку #.
Пояснялка тут

Автор - Manyasha
Дата добавления - 20.06.2018 в 18:30
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Ввод данных с определенными условиями (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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