Страницы: 1
RSS
Создание табличек с постоянным текстом и одной переменной
 
Здравствуйте!
Второй день ломаю голову, но умного в нее ничего не приходит (
Суть проблемы: В приложенном файле на Лист2 нужно создать таблички на некие субподобъекты.
Данные организации и объекта неизменны, нужно взять данные с Лист1, которые идут по порядку и внести их в форму таблички.
(А их больше 1000 и все потом надо  распечатать, заламинировать и расклеить)
Проблема в том, что форма таблички должна быть именно такой с сохранением указанного форматирования, т.е. функция слияния ячеек в одну не подходит и протягивание (копирование форм) понятно тоже не вариант.
Толкните в нужном направлении, буду очень признателен!
 
Здравствуйте. Попробуйте слияние Word и Excel наклейки. Про слияние спросите гугла.
 
Можно сделать пустые таблички на один печатный лист и макросом заносить в них данные. Как только все таблички заполнены - распечатывать.
Не стреляйте в тапера - он играет как может.
 
Ts.Soft,Ваше предложение мне больше нравится. С Вордом как-то громоздко всё. ) gling,  спасибо за вариант!
Я так понял, что макрос заполняет данными таблички, отправляет лист на печать, очищает и снова заполняет. И т.д. в цикле.
А можно ещё улучшить? Нужно чтобы заполнялись по 4 таблички на листе в альбомном формате и печатать макросом не надо. Сами выберем что печатать.
Вот только тут 2 варианта либо создать диалоговую форму где указывать с какой строки по какую печатать, либо создать около 250 страниц заполненных данными.
1 вариант конечно предпочтительнее. Помогите, если есть время и желание.

И еще, если вкладок с данными несколько, нужно ли делать для каждого листа с формой свой модуль с макросом?
Извините, я не очень дружу с макросами (.
Спасибо!
 
Цитата
КИА092 написал: С Вордом как-то громоздко всё
То что Вы хотите организовать макросом, уже заложено в "Слиянии". Нужно только разобраться и научиться пользоваться. С помощью слияния печатаю бейджики для работников, при необходимости можно выбрать нужный или добавить. Наверно не удобно держать два файла Word и Excel, Вам решать.
 
Я то может и разберусь, но мне это надо дать людям, которые находятся за сотни километров и  будут на местах работать с файлом.
А там вообще мрак. Про кнопочку смогу объяснить, про слияние - однозначно нет..
Проблема еще в том что данные готовы не полностью, кусками и вывести за 1 раз в файл с наклейками не получится. Даннные вносятся по мере готовности субподобъектов..
 
Согласен, для себя это одно, для других сложнее. Их "шаловливые" ручки так и норовят чего нибудь натворить.) Так что приходится еще и защиту предусматривать.
 
Да, как минимум защита листа паролем, да и резервный файл постоянно в заначке есть... )
 
КИА092, Вы правильно поняли, что макрос заполняет один лист табличек и отправляет их на печать, но если не печатать макросом, то нужно продолжать листы с табличками дальше, что не есть хорошо. Поэтому конечно будет лучше каким-либо образом указывать что именно распечатывать.
Прежде чем что-либо делать дальше, давайте определимся:
1. Вы пишите "4 таблички на листе в альбомном формате", а в файле-примере их 6.
2. Покажите как выглядят реально листы с исходными данными - есть ли там данные в других столбцах?
3. Хватит и одного макроса для всех листов с данными, но нужно знать их реальную структуру.
на основании п.п. 2-3 можно выбрать один из возможных вариантов выбора объектов для печати.
Не стреляйте в тапера - он играет как может.
 
1. Да, ошибся, должно быть 6!
2. скриншот прикрепил, данных там море...
3. структуру также видно на скриншоте, в тех вкладках где написано "надпись" предполагается создание табличек для печати.
Данные берутся с вкладок названия которых начинаются с КИП везде со столбца С. Количество строк с данными везде разное, максимально 1200.
 
Цитата
КИА092 написал: скриншот прикрепил,
не вижу, да и не нужен он. Нужен файл с реальной структурой или Вы думаете, что я на скриншоте могу макрос проверить?
Цитата
КИА092 написал:
в тех вкладках где написано "надпись" предполагается создание табличек
формат табличек одинаковый или для каждого листа свой? если в зависимости от листа меняются данные которые у Вас вроде забиты постоянно, то не забудьте сообщить об этом
Цитата
КИА092 написал: Количество строк с данными везде разное, максимально 1200.
Макросу без разницы 120, 1 200 или 120 000 - это Ваши проблемы с расходом бумаги на таблички
Не стреляйте в тапера - он играет как может.
 
Прошу прощения, со скрином затупил...
В зависимости от листа данные которые "постоянные" - меняются. Меняется  строка подобъект и объект. Первые 2 строки не меняются никогда.
Формат постоянный. Как есть.
Изменено: КИА092 - 18.06.2016 23:56:07
 
Продолжу свои изыскания...
Создал форму для заполнения табличек которая вызывается по кнопке. Как теперь в полях указать с какой ячейки по какую заполнить форму? Желательно чтобы выводились в полях не номера ячеек, а их содержимое. И кнопка "Заполнить" заполняла бы формы..
 
По прежнему считаю неправильным подход, когда Вы формируете все таблички на листе excel. Даже если просто посчитать взяв Ваше максимальное значение 1200 строк с данными. На печатном листе 6 табличек, следовательно понадобится 200 формировать 200 листов для печати. Учитывая, что каждый печатный лист занимает 18 строк получим 3600 строк из которых 3582 просто лишние. А у Вас ещё для каждого листа "КИП*******" свой лист "надпись****".... Зачем перегружать файл лишней информацией? Он так очень быстро превратится в неподъёмного монстра.
Предлагаю такой вариант:
1. В таблице один лист "Бланк" с шестью табличками вместо всех листов "надпись***". На этом листе в табличках изначально заполнены только поля "Организация" и "Филиал".
2. Создаётся один дополнительный лист "Объекты" в формате: столбец А - Объект, В - Подобъект, С - имя соответствующего листа "КИП*****", D - номер первой строки с данными. От столбца D можно отказаться если сделать на всех листах начальную строку одинаковой, например 7 для всех листов "КИП****" (где меньше, например "КИП КС" можно вставить пустые строки и скрыть их).
3. На каждом листе листе "КИП****" кнопка "Печать табличек" при нажатии на которую срабатывает один и тот же макрос.
Действие макроса:
1. По имени активного листа "КИП****" (где была нажата кнопка) находятся значения "Объект" и "Подобъект" с листа "Объекты" и номер первой строки с данными для соответствующего листа..
2. Выводится запрос первой строки листа "КИП***" с которой должна начинаться печать табличек. Если значение пусто или меньше реальной первой строки, то автоматически устанавливается в минимальное значение для листа.
3. Выводится запрос последней строки листа "КИП***" на которой должна закончится печать табличек. Если значение пусто или больше реальной  последней строки, то автоматически устанавливается в максимальное значение.
4. По циклу выбираются ячейки из выбранного диапазона и заполняются таблички листа "Бланк", заполненный лист отправляется на печать.
По поводу запросов - можно обойтись простыми InputBox'ами. Можно сделать UserFofm где при активации будут указываться данные Объект-подобъект и изначально заполнятся номера первой и последней строки листа и их значения. Так же можно  предоставить возможность ввода значений вроде "4419+94" из списка с поиском по первым набираемым символам с автоматическим заполнением полей с номером строки.
Не стреляйте в тапера - он играет как может.
 
Цитата
Ts.Soft написал:
1. В таблице один лист "Бланк" с шестью табличками вместо всех листов "надпись***". На этом листе в табличках изначально заполнены только поля "Организация" и "Филиал".
Сделал.
Цитата
Ts.Soft написал:
2. Создаётся один дополнительный лист "Объекты" в формате: столбец А - Объект, В - Подобъект, С - имя соответствующего листа "КИП*****", D - номер первой строки с данными. От столбца D можно отказаться если сделать на всех листах начальную строку одинаковой, например 7 для всех листов "КИП****" (где меньше, например "КИП КС" можно вставить пустые строки и скрыть их).
Сделал. Столбец D пропустил.
Цитата
Ts.Soft написал:
3. На каждом листе листе "КИП****" кнопка "Печать табличек" при нажатии на которую срабатывает один и тот же макрос.
Кнопки разместил,привязал к форме
Цитата
Ts.Soft написал:
Можно сделать UserFofm где при активации будут указываться данные Объект-подобъект
Вот тут можно сделать в виде выпадающего списка!
Цитата
Ts.Soft написал:
Так же можно  предоставить возможность ввода значений вроде "4419+94" из списка с поиском по первым набираемым символам с автоматическим заполнением полей с номером строки.
Согласен, так будет удобно...
 
Цитата
КИА092 написал: Вот тут можно сделать в виде выпадающего списка!
Зачем? Кнопка нажимается на активном листе, запускается макрос, где первая строка:
Код
NameList=ActiveSheet.Name
потом проверка на случай "ручного" запуска макроса на "неправильном" листе
Код
If Mid(NameList,1,3) <> "КИП" then Exit Sub
затем цикл по столбцу C листа "Объекты" с поиском совпадения с NameList и присвоение двум переменным значений из А и В. Если совпадения с NameList не найдено - выход из процедуры, можно с предупреждением почему.
И т.к. Вы пока
Цитата
КИА092 написал: не очень дружу с макросами (.
то советую не заморачивыаться сразу с UserForm и её объектами, а сделайте два InputBox с проверкой значений как я писал выше.
Далее код на основе моего из поста #3. Только там насколько я помню таблички в книжном формате одна под одной, а для альбомного с расположением табличек 3х2 нужно подумать вариант с правильной адресацией ячеек.
А вот когда отладите такой простой вариант можно будет заняться UserForm, тоже сначала от простой с двумя полями для ввода, до более интеллектуальной, которая будет проверять все вводимые значения на лету. Так же заранее подумайте о том, если диапазон для печати будет задаваться не номерами строк, а значениями из столбца С, то как должен вести себя макрос, если значения не сортированы, если в поле начала диапазона занесено значение из строки номер которой больше номера строки конечного значения.
Не стреляйте в тапера - он играет как может.
 
Я понял... что я СОВСЕМ не дружу с VB. Ибо я даже не знаю куда вставить  InputBox...
Спасибо, и извините за отнятое время... пойду изучать основы
 
КИА092, ну просто не знаю что с вами делать... Пока Вы изучаете основы, решил набросать Вам самый простой вариант и даже написал коменты для облегчения изучения основ.

P.S. При случае угостите пивом :) хотя насколько я сталкивался с киповцами, они употребляют только спирт для протирки контактов  :D  :D :D
Не стреляйте в тапера - он играет как может.
 
Вы меня обидели сравнением с КИПовцами... Я - ЭХЗшник )))
Никто не знает, что там происходит с трубой при ЭлектроХимической Защите от коррозии, но все понимают... ЭТО надо!!! ))
КИПовцы просто дети по сравнению с нами... ))

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