|
1 / 1 / 0
Регистрация: 16.03.2013
Сообщений: 65
|
|
Удаление выбранных значений ячеек16.03.2013, 20:23. Показов 3888. Ответов 34
Метки нет (Все метки)
Здравствуйте. Помогите написать код для кнопки "Ввести данные" на листе "Праздники". Суть в том, что пользователь должен ввести несколько дат в специальной таблице на листе "Праздники", затем он нажимает кнопку "Ввести данные" и при ее нажатии должны удаляться соответствующие ячейки из листов "Сентябрь" и "Октябрь". Например, пользователь выбирает на листе "Праздники" 8 марта 2013 и 23 февраля 2013, если такие значения есть либо на листе "Сентябрь", либо на листе "Октябрь", то они удаляются.
0
|
|
| 16.03.2013, 20:23 | |
|
Ответы с готовыми решениями:
34
Перемещение выбранных ячеек на другой лист и после удаление строки Поиск и удаление значений ячеек заданного цвета Удаление строк по сложному условию с посимвольным сравнением значений ячеек |
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
| 17.03.2013, 22:55 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 13
|
|
| 17.03.2013, 23:11 | |
|
я, честно говоря, не разобрался. выбираю на листе "Праздники" даты, а на листах "сентябрь" и "октябрь" они не удаляются.
0
|
|
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
||||||||||||||||||||
| 18.03.2013, 01:41 | ||||||||||||||||||||
|
Я не игрался с кнопочками, бантичками. Откройте модуль SearchDelete. Установите всередине курсор. Идите пошагово через F8. Поймете. Сейчас сделаю с Range, и удалять будет не значения в ячейках, а ряды. Пока разбирайтесь. Be continued...
Добавлено через 6 минут Начинается... Поэтому никогда не рискую делать оф. переводы с любого иностранного кроме на родной. Вот здесь
Все тоже самое, но только собираем что на удаление в один диапазон (mRng) и удаляем махом (но отдельно по каждому листу). Добавились переменные. В области обявления замените на:
Добавлено через 25 минут А здесь вытягиваем наименование месяца из ячейки, сравниваем с названием листа, собираем в mRng (к примеру), и одним махом все удаляем. Названия листов, которые месяцами, в один массив. Придумайте на этих пустых листах данные, и тестируйте. Ну а с кнопочками-бантичками-цветочками. Это проверки. Можно организовать сразу после занесения. Или прописать привязку проверки к одному из наших творчеств. Я эти К-Б-Ц не люблю и стараюсь использовать как можно меньше. Да, и то что ниже, это не последнее слово. Можно натворить еще кучу всего. Как понял с Ваших сообщений, про словари даже не заикаюсь, а то здесь Скрипт мне голову оторвет. "На форуме бывать разные ....." Скрипт! Я с уважением и улыбкой!
Добавлено через 1 час 34 минуты Что-то долго разбираетесь...
0
|
||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 13
|
||
| 18.03.2013, 19:23 | ||
|
0
|
||
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
| 18.03.2013, 19:45 | |
|
После чего ругается? Что выделено желтым? У меня все нормально. Пока посмотрите, а я сейчас собиру в книгу. И определили процедуру к кнопке? Хорошо, сам сделаю.
Добавлено через 15 минут Я уже догадываюсь, но мне все-таки нужно Ваше уточнение, где. Когда он ругается, происходит остановка выполнения и место остановки выделяется "подсветкой". Вот скопируйте это место и выставте на форум.
0
|
|
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
| 18.03.2013, 20:06 | |
|
Так. Я привинтил Ваш ел-т управления к процедуре. В самой Вашей книге ничего в процедурах не менял. При нажатии на кнопочку будет вызвана к выполнению процедура SeachAndDelete из МОДУЛЯ SearchDelete. Что б Вы это увидели, я установил точку остановки Stop (см. скриншот). От нее можете идти пошагово (F8), или нажмите Run. Точку останова удалите - это было только для Вас. В моем модуле есть еще функция Private Function fun_SheetExists(sname) As Boolean, ее не удаляйте ни за что, она выполняет по ходу проверку наличия в Вашей книге наличие конкретных листов из масиива arrSht. Пробуйте. Проблемы сообщите. Не переживайте, заставим работать!
0
|
|
|
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 13
|
||||||
| 19.03.2013, 00:00 | ||||||
|
А у Вас код работает? Теперь он выдает ошибку Run-time error '1004' application-defined or object-defined error.
Как я понял, ошибка в этой строке:
0
|
||||||
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|||||||
| 19.03.2013, 00:26 | |||||||
|
Если б у меня не работал - я б Вам не кидал. Вы тестируете в книге V2....?
"Run-time error '1004'... " это означает, как правило, что ошибка генерируется не в VBA, а в приложении, в данном случае, в Excel и только передается в VBA. Завтра, если будет время, прогоню на работе в 2010. Если не задергают. Только теперь сделайте мне такую вещь. Удалите первый Stop (тот, на скриншоте), и поставьте перед этим выражением Msgbox (все это временно). Вот так:
!!! Имеется в виду вставить только!!! эту фразу
0
|
|||||||
|
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 13
|
|
| 19.03.2013, 01:46 | |
|
0
|
|
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
| 19.03.2013, 02:02 | |
|
65536 - У Вас что, весь лист данными заполнен (это если 2003)? Это число - последняя заполненная строка + 1? И кстати, я Вам перекинул в 2003. А ну сохраните в 2010 и опять получите сообщение (перекиньте мне).
Тьфу ты. Вроде догадываюсь в чем дело. Но все-таки сделайте эту проверку в 2010. Все, завтра по любому выйдем из этого. Сейчас мне еще свое надо доделать. Кидайте результаты. Если он не хочет Down, мы пойдем Up!
0
|
|
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
| 19.03.2013, 16:21 | |
|
Все. Теперь должно работать полностью. Что б застраховаться, решил не использовать в Вашем случае инструменты End(xlDown) и End(xlUp). Пусть лучьше проверяет больший диапазон. Кстати, заметил на листе "Сентябрь". При использовании UsedRange, r = 2391, хоть значений нет. Причин может быть несколько, но быстрее всего Вы, думаю, вручную до этой границы изменили форматирование ячеек.
Пробуйте. Удачи.
1
|
|
|
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 13
|
|||
| 19.03.2013, 19:27 | |||
|
В последнем документе, который Вы скинули он поочередно выдает окошко: Январь ----1, Март ----1 и так далее. Добавлено через 4 минуты удаляет все даты, кроме первой. и не удаляет ту, которая выбирается на листе "Праздники".
0
|
|||
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
| 19.03.2013, 19:56 | |
|
Как работает код.
1. Вы на листе праздники нажимаете кнопку. 2. Кнопка вызывает процедуру. Которая: а)создает массив с названиями месяцев (считается, что в книге рабочие листы названы по месяцам); б) проверяет наличие листа с очередным названием месяца; в) если в cуществующий лист, например, "Январь", попали данные за ЛЮБОЙ ДРУГОЙ МЕСЯЦ - все эти "неправильные" данные удаляются!, и остаются только данные, соответствующие своей датой (по месяцу) названию листа. Другими словами, если у Вас в лист "Январь" занесены данные по любым другим месяцам - все до единого эти неправильные записи будут УДАЛЕНЫ и останутся тольке те которые в дате имеют Январь. Создайте себе нормальные демо данные и сами увидите. Что касается удаления данных на листе"А" согласно критерия, указанного на листе"Б" - то это совсем другая песня и задача так не ставилась. Это удаление можно спокойно выполнить любой стандартной функцией, например Find, или применить подкоректированную мою процедуру, и такая мелочь Вам самому под силу. Пожалуйста, не разочаровывайте меня. Речь идет о Курском гос. университете. Не знаю его уровень, но точно знаю, что это не шарашкина комерческая однодневка.
1
|
|
|
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 13
|
|
| 19.03.2013, 22:55 | |
|
0
|
|
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
| 19.03.2013, 23:34 | |
|
Там ничего сложного. Если можно, пару советов. Что б потом не искать ошибки, лучьше делать перехват при вводе. Как? Зависит от многих факторов, но ничего сложного. Потом, Ваши кнопки. Ну зачем???? Их на листе отыскать еще нужно время потратить. Легче их вынести на панель инструментов. Но я бы их вобще загнал в контекстное меню (под правую кнопку). Тоже ничего сложного. Как это сделать - в любом учебнике по VBA расписано как для детского сада.
Удачи.
1
|
|
| 19.03.2013, 23:34 | |
|
Как подсчитать количество значений, выбранных фильтром? Макрос для внесения данных из combobox на разные листы в таблицы в зависимости от выбранных значений
Удаление из базы данных выбранных строк? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|