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

Вход

Регистрация

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

 

= Мир MS Excel/исключить ранее выбранные элементы из списка с мультивыбором - Мир MS Excel

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

Excel 2007
Добрый день! Нашел на одном сайте очень полезный макрос для возможности множественного выбора из списка в одной ячейке. Привязал к этим значениям свою формулу суммы. Все посчиталось, как надо. Затем заметил, что один из элементов попал в список случайно и решил его оттуда убрать, чтоб формула пересчиталась. Не тут-то было - выскакивает ошибка о невозможности правки. Макрос не позволяет или список? Как это исправить - сделать возможной правку списка?
К сообщению приложен файл: fruits.xlsm (14.4 Kb)
 
Ответить
СообщениеДобрый день! Нашел на одном сайте очень полезный макрос для возможности множественного выбора из списка в одной ячейке. Привязал к этим значениям свою формулу суммы. Все посчиталось, как надо. Затем заметил, что один из элементов попал в список случайно и решил его оттуда убрать, чтоб формула пересчиталась. Не тут-то было - выскакивает ошибка о невозможности правки. Макрос не позволяет или список? Как это исправить - сделать возможной правку списка?

Автор - Мурад
Дата добавления - 29.12.2015 в 12:34
Michael_S Дата: Вторник, 29.12.2015, 12:53 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
В вашем файле - только через очистку В11 и ввода данных по-новой.
 
Ответить
СообщениеВ вашем файле - только через очистку В11 и ввода данных по-новой.

Автор - Michael_S
Дата добавления - 29.12.2015 в 12:53
Karataev Дата: Вторник, 29.12.2015, 13:22 | Сообщение № 3
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Макрос не позволяет или список?

Список не позволяет. Почему-то макросу можно записывать данные в ячейку с проверкой данных, а пользователю нет. По идее и макрос не должен записывать в ячейку данные, которых нет в списке. Какая-то дыра в Excelе.

Сообщение отключается так: вкладка Данные - Проверка данных - вкладка Сообщение об ошибке - снимите флажок Выводить сообщение об ошибке. Но в Вашем случае это не поможет, т.к. при изменении будет запускаться макрос, который испортит данные.


Сообщение отредактировал Karataev - Вторник, 29.12.2015, 13:33
 
Ответить
Сообщение
Макрос не позволяет или список?

Список не позволяет. Почему-то макросу можно записывать данные в ячейку с проверкой данных, а пользователю нет. По идее и макрос не должен записывать в ячейку данные, которых нет в списке. Какая-то дыра в Excelе.

Сообщение отключается так: вкладка Данные - Проверка данных - вкладка Сообщение об ошибке - снимите флажок Выводить сообщение об ошибке. Но в Вашем случае это не поможет, т.к. при изменении будет запускаться макрос, который испортит данные.

Автор - Karataev
Дата добавления - 29.12.2015 в 13:22
_Boroda_ Дата: Вторник, 29.12.2015, 13:31 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Karataev, Олег, пользователь тоже без проблем может вставлять неверные данные в список - скопируйте их (неверные данные) откуда-нибудь и вставьте в ячейку со списком значением. Проверка данных сохранится, а значение там будет неверное.


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

Автор - _Boroda_
Дата добавления - 29.12.2015 в 13:31
Karataev Дата: Вторник, 29.12.2015, 13:57 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Мурад, попробуйте такое решение (посмотрите прикрепленный файл). Перед тестированием отключите вывод сообщений об ошибках: вкладка Данные - Проверка данных - вкладка Сообщение об ошибке - снимите флажок Выводить сообщение об ошибке.
В этом коде я добавил такой фрагмент (остальное все осталось Ваше, я только внешний вид изменил и местами переставил):
[vba]
Код
    If InStr(Target.Value, ", ") > 0 Then
        Exit Sub
    End If
[/vba]
Макрос будет правильно работать, когда Вы хотите удалить ненужный пункт, если в B11 три и более пункта. Если только два пункта, то будет неправильный результат. Но если у Вас только 2 пункта, то можно, наверное и заново выбрать.
К сообщению приложен файл: fruits_v2.xlsm (15.3 Kb)


Сообщение отредактировал Karataev - Вторник, 29.12.2015, 14:00
 
Ответить
СообщениеМурад, попробуйте такое решение (посмотрите прикрепленный файл). Перед тестированием отключите вывод сообщений об ошибках: вкладка Данные - Проверка данных - вкладка Сообщение об ошибке - снимите флажок Выводить сообщение об ошибке.
В этом коде я добавил такой фрагмент (остальное все осталось Ваше, я только внешний вид изменил и местами переставил):
[vba]
Код
    If InStr(Target.Value, ", ") > 0 Then
        Exit Sub
    End If
[/vba]
Макрос будет правильно работать, когда Вы хотите удалить ненужный пункт, если в B11 три и более пункта. Если только два пункта, то будет неправильный результат. Но если у Вас только 2 пункта, то можно, наверное и заново выбрать.

Автор - Karataev
Дата добавления - 29.12.2015 в 13:57
Мурад Дата: Вторник, 29.12.2015, 14:06 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Karataev, благодарю! Согласен, для 2 значений проще выбрать заново. Только надо будет написать предупреждающую надпись большими буквами для тех сотрудников, кто будет заполнять похожий реестр :)
 
Ответить
СообщениеKarataev, благодарю! Согласен, для 2 значений проще выбрать заново. Только надо будет написать предупреждающую надпись большими буквами для тех сотрудников, кто будет заполнять похожий реестр :)

Автор - Мурад
Дата добавления - 29.12.2015 в 14:06
Karataev Дата: Вторник, 29.12.2015, 14:29 | Сообщение № 7
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Есть такая мысль - чтобы сотруднику было удобно удалять ненужные, можно сделать второй макрос. Сотрудник будет кликать 2 раза по B11, если захочет удалить какой-нибудь пункт, будет появляться форма, на которой будет ListBox. В этом ListBoxе сотрудник выделит те пункты, которые нужно удалить, и данные из ListBox будут вставлены в B11. Во время вставки можно отключить события, чтобы не запускался первый макрос.


Сообщение отредактировал Karataev - Вторник, 29.12.2015, 14:33
 
Ответить
СообщениеЕсть такая мысль - чтобы сотруднику было удобно удалять ненужные, можно сделать второй макрос. Сотрудник будет кликать 2 раза по B11, если захочет удалить какой-нибудь пункт, будет появляться форма, на которой будет ListBox. В этом ListBoxе сотрудник выделит те пункты, которые нужно удалить, и данные из ListBox будут вставлены в B11. Во время вставки можно отключить события, чтобы не запускался первый макрос.

Автор - Karataev
Дата добавления - 29.12.2015 в 14:29
Мурад Дата: Вторник, 29.12.2015, 15:29 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Karataev, в таком случае, условие минимума двух и более значений в ячейке B11 отменяется.. Это идеальный вариант решения задачи
 
Ответить
СообщениеKarataev, в таком случае, условие минимума двух и более значений в ячейке B11 отменяется.. Это идеальный вариант решения задачи

Автор - Мурад
Дата добавления - 29.12.2015 в 15:29
Karataev Дата: Вторник, 29.12.2015, 16:33 | Сообщение № 9
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Для этой версии макроса не нужно снимать защиту в проверке данных.


Сообщение отредактировал Karataev - Вторник, 29.12.2015, 17:43
 
Ответить
СообщениеДля этой версии макроса не нужно снимать защиту в проверке данных.

Автор - Karataev
Дата добавления - 29.12.2015 в 16:33
Мурад Дата: Вторник, 29.12.2015, 17:05 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Karataev, этот вариант еще лучше! Единственное, надо ставить запрет на ручную правку ячейки B11. Иначе, если случайно залезть внутрь этой ячейки, то все - попал :) Даже отмена Escape для выхода из ячейки приводит к удваиванию содержимого ячейки. Попробую это исправить
 
Ответить
СообщениеKarataev, этот вариант еще лучше! Единственное, надо ставить запрет на ручную правку ячейки B11. Иначе, если случайно залезть внутрь этой ячейки, то все - попал :) Даже отмена Escape для выхода из ячейки приводит к удваиванию содержимого ячейки. Попробую это исправить

Автор - Мурад
Дата добавления - 29.12.2015 в 17:05
Karataev Дата: Вторник, 29.12.2015, 17:42 | Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Да эта проблема началась, потому что я изменил первоначальную логику кода. В этой версии сделал так, как было.
К сообщению приложен файл: 2265695.xlsm (18.7 Kb)
 
Ответить
СообщениеДа эта проблема началась, потому что я изменил первоначальную логику кода. В этой версии сделал так, как было.

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

2003
Не самый удобный вариант для пользователя.
Во избежание ошибок, я бы сделал так. Да и в случае выбора не того что надо, просто снять галку и снова ткнуть в кнопку.

PS: и вообще, вес товара, что всегда будет постоянный? Может правильней будет ставить нужный вес на против товара и потом считывать?
К сообщению приложен файл: MURAD.xls (35.0 Kb)


Сообщение отредактировал Wasilic - Вторник, 29.12.2015, 19:45
 
Ответить
СообщениеНе самый удобный вариант для пользователя.
Во избежание ошибок, я бы сделал так. Да и в случае выбора не того что надо, просто снять галку и снова ткнуть в кнопку.

PS: и вообще, вес товара, что всегда будет постоянный? Может правильней будет ставить нужный вес на против товара и потом считывать?

Автор - Wasilich
Дата добавления - 29.12.2015 в 19:40
Мурад Дата: Среда, 30.12.2015, 09:43 | Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Wasilic, спасибо! я привел упрощенный вариант своей задачи. на работе при ведении огромных реестров (товаров, договоров и т.д.) возникает необходимость указывать несколько признаков в одной ячейке для одной записи (строки). Заранее неизвестно, сколько признаков будет у новой записи. Но не будем ведь мы создавать с запасом 10 и более дополнительных столбцов или строк для возможности указания всех допустимых признаков записи? это растянет таблицу по горизонтали или вертикали
 
Ответить
СообщениеWasilic, спасибо! я привел упрощенный вариант своей задачи. на работе при ведении огромных реестров (товаров, договоров и т.д.) возникает необходимость указывать несколько признаков в одной ячейке для одной записи (строки). Заранее неизвестно, сколько признаков будет у новой записи. Но не будем ведь мы создавать с запасом 10 и более дополнительных столбцов или строк для возможности указания всех допустимых признаков записи? это растянет таблицу по горизонтали или вертикали

Автор - Мурад
Дата добавления - 30.12.2015 в 09:43
Мурад Дата: Среда, 30.12.2015, 09:52 | Сообщение № 14
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Karataev, запрет на правку ячейки установлен, есть возможность удобной правки неверно введенных значений hands
Добавлю сюда макрос добавления новых значений в список и можно будет с этим работать по самому широкому кругу задач
 
Ответить
СообщениеKarataev, запрет на правку ячейки установлен, есть возможность удобной правки неверно введенных значений hands
Добавлю сюда макрос добавления новых значений в список и можно будет с этим работать по самому широкому кругу задач

Автор - Мурад
Дата добавления - 30.12.2015 в 09:52
Мир MS Excel » Вопросы и решения » Вопросы по VBA » исключить ранее выбранные элементы из списка с мультивыбором (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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