![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 09.08.2011
Сообщений: 14
|
![]()
Решил написать макрос, позволяющий автоматизировать процесс заполнения транспортной накладной.
Функционал: 1, При запуске: Открывается форма, на ней есть поля, которые нужно заполнить и по нажатии кнопки записать - записывает в определенное место. 2. Поиск в предыдущих заявках: По мере ввода в комбобокс (больше 2 символов) начинает искать (например получателя) в диапазоне ячеек (который определяется динамически) искомое значение. При выборе - получает номер выбранной строки и подтягивает значения (например ФИО и телефон) из определенных столбцов этой же строки. При помощи гугла все это почти сделал, но начало все глючить... Пишет only comments may apper... А т.к. я в программировании не очень силен, прошу помочь! Ошибка скорее всего в отсутствии End Sub или что то вроде того ![]() Этот макрос очень универсален, и, я думаю, очень многим сможет упростить жизнь! Отвечу на любые вопросы. Последний раз редактировалось Alx.ekb; 09.08.2011 в 10:08. |
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 09.08.2011
Сообщений: 14
|
![]()
Файл сейчас добавлю
![]() |
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 09.08.2011
Сообщений: 14
|
![]()
пример вот
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Для начала так должно быть,а дальше ничего не понял.что надо сделать
Код:
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#5 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
Позволю несколько замечаний:
1.Если в ComboBox1 удалить символ - приведенный выше код не изменить содержимое .List. Предлагаю при любом изменении ComboBox1 набирать полный .List и отфильтровывать нужные значения. 2.Если ComboBox1 пуст - не фильтровать .List 3.Поиск обычно ведут по совпадению первых букв (это довольно спорное утверждение, но на его основании я первую * из Like убрал) Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#6 |
Новичок
Джуниор
Регистрация: 09.08.2011
Сообщений: 14
|
![]()
Класс! Работает как надо!
Дальше хочу, чтобы после выбора строки в комбобоксе можно было узнатьномер выбранной строки в листе "Listings" - и далее по ней заполнять поля в форме. Каким образом узнать номер выбранной в комбобоксе строки? Я искал, но пришел к выводу, что нет функции, которая может напрямую из комбобокса выдернуть номер выбранной ячейки, т.к. при заполнении комбобокса из диапазона - данные по строкам хранятся в другом формате... Вот на этом я и встал. И еще загвоздка в компиляции проекта: Compile Error: only comments may appear after End Sub, End Function or End Prophety. Я уже голову сломал, в чем загвоздка... |
![]() |
![]() |
![]() |
#7 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
у .List есть ListIndex - номер выбраной записи из списка.
только что он Вам даст? номер в списке не сооответсвтвует номеру сроки с диапазона данных, откуда были взяты значения. во-первых, потому что диапазон начинается с 3-й строки во-вторых, список отфильрован, часть значений из него выброшена
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 09.08.2011
Сообщений: 14
|
![]()
Да, примерно об этом я и говорил, что нет прямого способа узнать выбранную ячейку.
Получается: надо придумывать что-то другое. поиск значения в определенном столбце листа "Listings", равного записи в комбобоксе и только так получим номер строки... Проще говоря искать значение комбобокса на листе поочередным перебором всех строк столбца на листе, цикл номер "икс" - даст нам номер ячейки ![]() Адрес ячейки получится: А"ИКС" Есть менее извращенный способ? Всем спасибо за ответы! Пошел дальше гуглить ![]() А может быть есть желающие заработать и дописать это чудо? Пишите в ЛС ![]() |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
![]()
Можно без перебора, есть метод Range.Find - запишите рекордером команду Ctrl+F.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
![]() |
![]() |
![]() |
#10 |
Новичок
Джуниор
Регистрация: 09.08.2011
Сообщений: 14
|
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
функция в новой форме | hippo | Помощь студентам | 7 | 04.07.2011 03:07 |
Формирование накладной в QReport | brutafor777 | БД в Delphi | 2 | 13.06.2011 22:25 |
Поиск записи.Отображение данных в новой форме | zaraz | Microsoft Office Excel | 4 | 16.06.2010 08:44 |
Решение транспортной задачи. | 4sense | Помощь студентам | 2 | 06.12.2009 16:04 |
Решение транспортной задачи в VBA | _леся_ | Помощь студентам | 0 | 02.05.2009 12:20 |