Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Заполнение одного ListBox на основании информации из другого ListBox по мере набирания текста
 
Добрый день, я опять за помощью.
Нашел на форуме файл, где ListBox2 формируется с диапазона, а ListBox1 формируется с ListBox2, но там только по 1 колонке, попытался сделать ListBox'ы с несколькими колонками - что то по мере набора формируется, но всегда последняя запись ListBox2 добавляется (независимо от названия что набирается) и теперь не вставляется на лист при клике по ListBox1....
объединение диапазонов разного размера в один
 
Снова здравствуйте.
Никак не осилю массивы и поэтому прошу помощи/направления на путь истинный.
Есть несколько диапазонов ("вертикальных") через определенное количество пустых ячеек, т.е. расстояние между диапазонами разное и "ширина" диапазона разная.
Нужно эти диапазоны собрать в один максимальной "ширины", а потом преобразовать к виду плоской таблицы.
Чтоб найти начало каждого диапазона я применил макрос поиска начала и конца диапазона, хотел сохранить его в массив и потом брать из массива начало и конец диапазона копировать. Самая крайняя правая граница находится, но не помещается в массив из-за ReDim Preserve видимо...
Подогнать данные для печати
 
Добрый вечер, есть блочные данные в колонках А и D. они имеют разное количество строк. Необходимо "вместить" по 3-4 блока в зависимости от количества строк в каждом, на лист. При установленных параметрах страницы, шрифте и высоте строк на страницу помещается 60 строк. 4 блока с данными (вниз) занимают примерно 50-58 строк, остальные строки я добавляю макросом (проверяю на кратность 60), но в итоге нужно все равно подправлять, а поправишь один, поползут все остальные :).
Как я вижу решение задачки: считать максимальное количество строк по каждому блоку и если это количество строк превышает 60 то оставлять 3 блока, если меньше то добавлять до необходимого. Может посоветуете кардинально другое решение, буду рад!

И еще, внутри цикла я увеличиваю размер цикла, т.е. ищу опять последнюю ячейку, так как в ходе добавления строк потом не обрабатывается весь необходимый диапазон, наверняка знаю что это не есть хорошо - научите как надо) идти снизу вверх -так опять смещение...
На листе "надо" урезал количество строк - не проходил файл по размеру. Надо чтоб печатный лист начинался с начала блока и блок не разрывался при печати.
Изменено: Дмитрий Тарковский - 25.04.2017 19:54:10
Создание временной таблицы при SQL запросе
 
Добрый день, в макросе использую выгрузку на дополнительный лист и потом уже этот лист использую как таблицу для последующих выборок SQL запросом.
Пытался сначала создать пустую таблицу (CREATE TABLE) с необходимым количеством колонок и заполнить, пытался применять команды INSERT INTO и тд.

Помогите с синтаксисом создания именно временной таблицы, в которой будет содержаться информация, которая сейчас выгружается в результате нажатия кнопки на листе "таблица" файла-примера.
Сводная таблица для текста
 
Добрый день! Тема не новая, и решения нашел, но для меня они не совсем подходят.
Решение от многоуважаемого Юрий М: http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=19250 сделано посредством коллекций, для меня это еще не ведомая тропа, нужно изучать, а я в своих наработках пользуюсь SQL запросами, и вот мі и подошли ко второму решению.
Решение от doober: http://www.programmersforum.ru/showthread.php?t=118554 сделано с помощью подключения Jet по сути это Сводная таблица посредством SQL, я переделал под ACE (в приложенном файле) но я считаю что сделал я это через костыль и есть ограничение которое мне мешает двигаться дальше - это 65к строк в старой версии Excel.

Итак к задаче:
Надо "раскрутить" графики по людям, по графику и фактически как ходили, учитывая больничные, отпускные и тд.
Прошу совета, может надо таблицы графики и фактически разделить по разным листам, может надо вынести в отдельную книгу.
В итоге хотелось бы сделать накопление данных без ограничения по строкам, возможность переводить людей на другой график с любого числа, а не формировать с начала месяца.
По накоплению без ограничения строк и выборки посредством SQL (очень понравилось решение с TRANSFORM PIVOT) на 64 битной платформе хотелось бы файлик, а с остальным буду рад советам.
Вторым постом прикреплю файлы - пример в котором не работает макрос и два примера с которых брал пример)
Изменено: Дмитрий Тарковский - 13.02.2017 16:26:23
Добавление после итогов нужного кол-ва пустых строк для печати
 
Доброго времени суток. Благодаря форуму многому научился, но когда сталкиваюсь с чем то незнакомым, в основном, рано или поздно, получается добиться результата, но все как-то через ж... :)  так и в этот раз. Много искал примеров, в основном было копирование на другие листы (но так же как и гуру форума я не понимаю что делать с сотней листов в одном файле).

Суть в том что бы после итогов добавлять пустые строки чтоб перенести данные в другую область печати, т.е. чтобы каждое подразделение было на отдельном листе. Каждое подразделение имеет "свое" количество строк, соответственно нужно добавлять разное количество строк чтобы выходить на одинаковую высоту листа. Сразу уточню, что высота строки будет одинаковая, без переносов, т.е. кто не влез я не виноват ).
Потом перед данными будет вставляться шапка и строка с названиями колонок таблицы (надеюсь это уже я осилю сам).
Столбики А и В мне нужны чтобы формулой высчитать нужное кол-во строк. В конечном варианте будут удалены, можно их в расчет не брать.

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

Как я это вижу:
1. Доработать тот макрос что выполняет вторую половину задачи
2. Сделать еще один лист с формами для печати и в них вставлять каждое подразделение (мб через словарь или коллекцию) перебирать лист с данными и вставлять в ячейку (из заданного массива) на втором листе, увеличивая счетчик массива с ячейками для вставки.
3.Вообще не вставлять строки, а поиграться с заданием области печати, но тогда не пойму как с шапками быть)
Вариантов наверное много, верю что я даже не догадываюсь как еще можно это сделать поэтому полагаюсь на Вас.
Изменено: Дмитрий Тарковский - 01.02.2016 14:09:55
Сводная с помощью SQL, запрос из MySQL в Excel
 
Доброго времени суток! По работе нужно анализировать списание материалов, т.е. сравнивать с плановым, в принципе все получилось кроме сводной таблицы. Раньше делал через сводную на VBA для этих целей был лишний лист и работало подольше. Чтобы обойтись без этих маневров решил подтянуть SQL :) Установил OpenServer и путем долгих проб и ошибок (и рысканья по интернету) нашел решение.
Код
SELECT GR_PR, KOD_PR, NAIM, LPAD(GRKD_PR,7,0), PRIZN, GR_B, KOD_B, NAIMB,
SUM(IF(TIP='norm',KOL_B,0)) AS Plan_kol,
SUM(IF(TIP='norm',SUM_B,0)) AS Plan_Sum,
SUM(IF(TIP='fact',KOL_B,0)) AS Fact_kol,
SUM(IF(TIP='fact',SUM_B,0)) AS Fact_Sum
FROM INTERtoPS GROUP BY GR_PR, KOD_PR, GRKD_PR, NAIM, PRIZN, GR_B, KOD_B ORDER BY GR_PR, KOD_PR, PRIZN, GR_B, KOD_B;

Решение полностью рабочее но приходится экспортировать лист в csv потом затягивать в таблицу БД потом выполнять запрос и обратно в Excel. Согласен получается не быстрей чем если бы на отдельном листе через VBA пропустил через сводную, но я борюсь с лишними листами, добиваюсь быстроты работы (в оригинале строк может быть свыше 10 тыс) ну и стремлюсь к лаконичности )

В итоге просьба: подскажите пожалуйста как написать данный запрос в Excel или как с помощью SQL добиться нужного результата другим способом? в прилагаемом файле лист "дано" "надо".
Еще есть лист "PS" он дублирует лист "надо" но уже с итогом, на очереди там макрос GetpoTipy (используются словари) но он работает только с "семизначными" (раньше он работал по ключу где всегда было 7 знаков), а сейчас я решил сделать по коду там разное количество цифр, а как я год назад его "лепил" уже не могу вспомнить так как тоже откуда то стырил), если будет возможность помогите и с этим, чтоб в запросе не использовать LPAD и не добивать сначала нолями, а то Excel ругается.
Заранее благодарен.
СуммЕсли по двум столбцам, но макросом
 
Добрый день.
Есть позиции и материалы по группам на определенную сумму. Сделал макросом конкатенацию 2 столбцов, другим макросом выбрал только уникальные значения, третьим делаю СуммЕсли но в поле "критерий" не могу подставить поочередно значения из массива уникальных позиций.
Пример прилагаю, в Модуле1 находятся мои попытки) чувствую что разгадка близка но увы, так что прошу помощи.
Если можно сделать 1 макросом не выгружая промежуточные данные на лист а только результаты буду благодарен!
Сократить размер массива до уникальных значений, Выбор из определенного массива уникальные значения и присвоение им других значений
 
Добрый вечер форумчане!
Пытаюсь организовать анализ на работе для экономии времени, и много уже сделал, хотя самую главную загвоздку помогли сделать на этом форуме  :)  . Итак я продвинулся и дошел до того, что в выгружаемых данных (около 6 000 строк) иногда появляются позиции, которых нет на моем листе цен, соответственно формула выдает #Н/Д.
все #Н/Д я сгреб в массив sum /Sub ЗаполнитьФорму()/ (их в примере получилось 6), но материалы для которых формулы ищут цену повторяются. В итоге уникальных материалов только 3 и когда добавляю их на лист "цены" приходится пропускать (кнопка на Userform1). Проблема в том, что в рабочем файле таких повторов может быть очень много даже если новых позиций будет до десяти.
В принципе я реализовал что хочу (прилагаю файл), но получается что надо пропускать много.

Прошу помочь чтоб массив sum сократить до трех, уникальных материалов..
Изменено: Дмитрий Тарковский - 06.02.2013 23:37:16
копирование диапазонов перебирая нужные значения, создание таблицы из двух с пересекающимися данными
 
Добрый вечер знатоки, прошу помочь с VBA так как "понимаю а сказать не могу"  
Предыстория
На работе каждый день выгружается отчет о списании материалов (раньше проверял вручную - вообще абзац), я макрорекодером записал и чуток подправил преобразование данных (факт), сделал итоги, так чтоб каждая позиция занимала 35 строк и копирую на другой лист, где сделал 100+ сводных табличек, куда вбиваю код напротив соответствующей позиции и сводная формирует норму, рядом формулы согласно "раскрученой" норме считают что по чем). По началу меня очень порадовала проделанная работа, так как по времени я выигрывал несколько часов, но чем дальше в лес как говорится.

Пишу в данной теме т.к. перерыл много форумов и примеров - этот похоже наиболее подходящий.
Есть 3 тыс+ строк (200+ позиций по n строк) фактических данных в день, хочется, используя уникальный ключ, сформировать такое же количество позиций но по норме. Столбцы будут совпадать, просто слеплю обе таблицы в одну и добавлю колонку норма/факт. Тогда с помощью одной сводной смогу анализировать данные, при чем более качественно.

В примере зеленым выделил фактические данные, а синим нормативные. На листе "1" с помощью сводной выбрал уникальные значения (наверняка макросом можно и так уникальные выбрать) из фактических данных, взял первое значение и скопировал на лист "надо", потом по значению колонки POZ нашел на листе data соответствующую позицию (диапазон) и вставил справа, продублировал первый ключ (в примере серым шрифтом) на высоту диапазона. Потом скопировал второй ключ и так дальше.
Страницы: 1
Наверх