Заполнение бланков данными из таблицы excel
возможно. макросов не нужно.
вариант1:
читайте в справке Word "документ слияния" - там написано, как это делается.
Игорь, ты видел бланк?
Мало того, что он в формате Excel, так ещё там без бутылки не разберешься, что куда подставлять.
Даже куда фамилию и должность подставлять - не ясно.
Под такой бланк, нужно писать макрос.
Я даже свою программу заполнения документов тут предлагать не буду - ибо с бланком перемудрили)
каюсь.
бланк не смотрел.
но само понятие "бланк" - подразумевает что это форма, которую необходимо заполнить какими-то стандартными данными.
при всем многообразии индивидуумов, населяющих безграничные просторы России, каждый из них (при желании и по достижению определенного возраста) получил паспорт, который по сути является многостраничным бланком с индивидуальными данными.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете На мой взгляд ни чего не перемудрено. Может я погорячился назвав это бланком. А Фамилия ставится в самую верхнюю левую ячейку на вкладке бланки, если первая то это A4. Хотя бы как заполнить два бланка?
Спасибо за офигенный совет. Я понимаю, что у нас все делается за деньги. Я же не прошу за меня делать задачу, а дать совет как это сделать. Или тогда надо называть платный форум, я лично давал советы совершенно бесплатно.
А вот так он должен быть заполнен. Первый бланк заполнен. Второй это следующая строка Последний раз редактировалось 1k0naMyst; 19.10.2012 в 15:11 . 1k0naMyst, Вас никто не склоняет к варианту 2, этот вариант даже назван вторым (запасным).
более того - Вы совершенно вольны не обращать внимание на мой совет относительно "документа слияния" так же, как и я не обязан открывать и изучать прикрепленные Вами файлы. 41001804815208 - ЮMoney бывш.Яндекс-кошелек благодарности за удачные советы и решения можно отправлять прямо сюда)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
Зачем их там столько? Чтоб все распечатать?
Тогда бесплатный совет - настраиваете один на основе ВПР() по фамилии "в самую верхнюю левую ячейку", затем пишете простой макрос, в цикле меняющий эти фамилии и печатающий бланки.
Ну или настройте два бланка, затем цикл с шагом 2 - сразу берёте 2 фамилии, печатает, следующие 2.
Ну или такой вариант - настроить один бланк, затем цикл с второй фамилии, копирование получившегося бланка как значения ниже с шагом или определяя последнюю заполненную строку и т.д. В конце заносим в бланк первую фамилию
Как известно, табличный редактор Excel используется для работы с табличными данными, а текстовый редактор Word для работы с текстами. И одно и другое приложение широко используются пользователями для подготовки различного рода документов, таких как договоры, сметы, акты выполненных работ, квитанции, путевые листы, доверенности и так далее. Кроме того, зачастую различные реестры и базы данных с информацией по клиентам, продавцам, покупателям, поставщикам и подрядным организациям создаются в приложении Excel, а сами данные из этих реестров используются для составления документов и заполнения шаблонов в текстовом редакторе Word. Далее рассматриваются варианты автоматизации при заполнении документов данными из рабочих книг Excel.
Заполнение бланков Excel данными активного рабочего листа
Большое количество документов создается пользователями в табличном редакторе Excel, это всевозможные приказы, ведомости, графики, журналы, ордера, акты, чеки, счета и счет-фактуры. Все это изобилие документов требует своего заполнения. Какие-то бланки заполняются специальными программами по учету финансово-хозяйственной деятельности, такими как 1С или SAP, какие-то просто распечатываются для дальнейшего заполнения их вручную, а какие-то требуют своего заполняются на компьютере с последующей печатью. Достаточно часто возникает необходимость сформировать сразу несколько документов, в которых используются одни и те же данные, например счет, счет-фактура и акт выполненных работ.
Процесс заполнения бланков документов в Excel можно автоматизировать. Одним из способов автоматизации является использование надстройки для заполнения подготовленных бланков документов.
Надстройка для Excel позволяет выбрать как один, так и несколько бланков документов и быстро заполнить их данными активного рабочего листа, предварительно подготовленными для этого.
Заполнение бланков Excel исходными данными по списку
В случаях, когда в качестве исходных данных используется готовый список значений, можно использовать надстройку, которая заполняет выбранные бланки и шаблоны по каждой строке списка в отдельности. Эта надстройка отличается от описанной выше программы тем, что предыдущая надстройка заполняет бланки документов одним набором исходных значений, а эта программа осуществляет заполнение документов сразу по всему списку данных. Если нужно запустить процесс заполнения не по каждой строке, а по каким-то отдельным, то используются стандартные фильтры Excel.
Надстройка также позволяет выбирать сразу несколько шаблонов для заполнения.
Имеем базу данных (список, таблицу - называйте как хотите) с информацией по платежам на листе Данные:
Задача: быстро распечатывать приходно-кассовый ордер (платежку, счет-фактуру. ) для любой нужной записи выбранной из этого списка. Поехали!
Шаг 1. Создаем бланк
На другом листе книги (назовем этот лист Бланк) создаем пустой бланк. Можно самостоятельно, можно воспользоваться готовыми бланками, взятыми, например, с сайтов журнала "Главный Бухгалтер" или сайта Microsoft. У меня получилось примерно так:
В пустые ячейки (Счет, Сумма, Принято от и т.д.) будут попадать данные из таблицы платежей с другого листа - чуть позже мы этим займемся.
Шаг 2. Подготовка таблицы платежей
Прежде чем брать данные из таблицы для нашего бланка, таблицу необходимо слегка модернизировать. А именно - вставить пустой столбец слева от таблицы. Мы будем использовать для ввода метки (пусть это будет английская буква "икс") напротив той строки, данные из которой мы хотим добавить в бланк:
Шаг 3. Связываем таблицу и бланк
Для связи используем функцию ВПР (VLOOKUP) - подробнее про нее можно почитать здесь. В нашем случае для того, чтобы вставить в ячейку F9 на бланке номер помеченного "x" платежа с листа Данные надо ввести в ячейку F9 такую формулу:
Т.е. в переводе на "русский понятный" функция должна найти в диапазоне A2:G16 на листе Данные строку, начинающуюся с символа "х" и выдать нам содержимое второго столбца этой строки, т.е. номер платежа.
Аналогичным образом заполняются все остальные ячейки на бланке - в формуле меняется только номер столбца.
В итоге должно получиться следующее:
Шаг 4. Чтобы не было двух "х".
Если пользователь введет "х" напротив нескольких строк, то функция ВПР будет брать только первое найденное значение. Чтобы не было такой многозначности, щелкните правой кнопкой мыши по ярлычку листа Данные и выберите Исходный текст (Source Code) . В появившееся окно редактора Visual Basic скопируйте следующий код:
Этот макрос не дает пользователю ввести больше одного "х" в первый столбец.
Заполнение бланков данными из списка (базы данных)
Имеем базу данных (список, таблицу - называйте как хотите) с информацией по платежам на листе Данные :
Задача : быстро распечатывать приходно-кассовый ордер (платежку, счет-фактуру. ) для любой нужной записи выбранной из этого списка (вот пример для четвертой записи):
Шаг 1. Создаем бланк
На другом листе книги (назовем этот лист Бланк ) создаем пустой бланк. Можно самостоятельно, можно воспользоваться готовыми бланками, взятыми, например, с сайтов журнала "Главный Бухгалтер" или сайта Microsoft. У меня получилось примерно так:
В пустые ячейки ( Счет, Сумма, Принято от и т.д.) будут попадать данные из таблицы платежей с другого листа - чуть позже мы этим займемся.
Шаг 2. Подготовка таблицы платежей
Прежде чем брать данные из таблицы для нашего бланка, таблицу необходимо слегка модернизировать. А именно:
Шаг 3. Связываем таблицу и бланк
Для связи используем функцию ВПР (VLOOKUP) - подробнее про нее можно почитать здесь . В нашем случае для того, чтобы вставить в ячейку F9 на бланке номер помеченного "x" платежа с листа Данные надо ввести в ячейку F9 такую формулу:
Т.е. в переводе на "русский понятный" функция должна найти в диапазоне БазаДанных строку, начинающуюся с символа "х" и выдать нам содержимое второго столбца этой строки, т.е. номер платежа.
Аналогичным образом заполняются все остальные ячейки на бланке - в формуле меняется только номер столбца.
Шаг 4. Чтобы не было двух "х".
Если пользователь введет "х" напротив нескольких строк, то функция ВПР будет брать только первое найденное значение. Чтобы не было такой многозначности, щелкните правой кнопкой мыши по ярлычку листа Данные и выберите Исходный текст (Source Code) . В появившееся окно редактора Visual Basic скопируйте следующий код:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Long
Dim str As String
If Target.Count > 1 Then Exit Sub
If Target.Column = 1 Then
str = Target.Value
Application.EnableEvents = False
r = Cells(Rows.Count, 2).End(xlUp).Row
Range("A2:A" & r).ClearContents
Target.Value = str
End If
Application.EnableEvents = True
End Sub
Этот макрос не дает пользователю ввести больше одного "х" в первый столбец.
Читайте также: