📄 Печать бланков Word, с заполнением их данными из Excel | ЭТО ПРОСТО ♻️

Поделиться
HTML-код
  • Опубликовано: 1 апр 2016
  • Если вам нужно напечатать например 1000 бланков, отличающихся только набором строчек с данными, то в данном видео я рассказываю простой способ реализации данной задачи посредством всего одной программы - Microsoft Excel и макроса. Весь процесс разбит на 5 простых шагов.
    #бланк #печать #автозаполнение
    Текст макроса:
    "Sub АвтоПечать()
    '
    For i = 1 To 800
    Range("J2").Select
    ActiveCell.FormulaR1C1 = i
    Range("J2").Select
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1,Copies:=1, Collate _ :=True, IgnorePrintAreas:=False
    Next
    '
    End Sub
    Файл пример: yadi.sk/i/nKZltnJzqgxeG
    ===

Комментарии • 89

  • @kentau81
    @kentau81 7 лет назад +1

    Ну наконец то, я нашел что искал. Спасибо!!! Очень понятно и все просто.

    • @GROM_TB
      @GROM_TB  7 лет назад

      Пожалуйста!!! Рад что мой труд не напрасен. Очень приятно получать такие комментарии!

  • @user-pw9xl2sh4o
    @user-pw9xl2sh4o 5 лет назад +1

    Спасибо большое. Очень помогло в обработке научных данных.

    • @GROM_TB
      @GROM_TB  5 лет назад +1

      Спасибо за комментарий! Не думал что мое видео будет полезно и науке)). Но тем приятнее.

  • @Satti_va
    @Satti_va 7 лет назад +1

    супер , я давно искала такую информацию! большое спасибо!!!!!

    • @GROM_TB
      @GROM_TB  7 лет назад

      Спасисбо за Ваш комментарий! Очень рад, что информация оказалась полезной.

  • @user-bp3sv4ni1w
    @user-bp3sv4ni1w 5 лет назад +1

    Спасибо за видео! Очень пригодилось

    • @GROM_TB
      @GROM_TB  5 лет назад

      Спасибо, что не поленились написать комментарий. Рад, что видео помогло!

  • @user-yp1rq4se3t
    @user-yp1rq4se3t 7 лет назад +1

    КрасавЧЕГ, спасибо огромное!

    • @GROM_TB
      @GROM_TB  7 лет назад

      Спасибо за комментарий! Очень приятный отзыв, рад что видео оказалось Вам полезно...

  • @diolem
    @diolem 2 года назад +1

    Спасибо большое за помощь!

    • @GROM_TB
      @GROM_TB  2 года назад

      Большое пожалуйста! Подписывайтесь на канал, ставьте лайки, жмите Спасибо либо делайте донаты на канале, всё приветствуется ;-)

  • @user-ex9vq6vt6s
    @user-ex9vq6vt6s 3 года назад +1

    Супер классно все сделал!!!!

    • @GROM_TB
      @GROM_TB  3 года назад +1

      Спасибо за высокую оценку! Очень приятно, очень...

  • @timofeysub283
    @timofeysub283 4 года назад +1

    спасибо!!!

    • @GROM_TB
      @GROM_TB  4 года назад

      Велкам, бро)

  • @Tsynade1
    @Tsynade1 6 лет назад +2

    уже полтора года пытаюсь сделать то что Вы здесь показываете, и обидно в двойне так как объяснено в видео очень поверхностно, но информация для размышления дана и за это огромное спасибо !

    • @GROM_TB
      @GROM_TB  6 лет назад +1

      Спасибо за комментарий! Поверхностно? Я же приложил пример ... Если у вас есть какие то конкретные вопросы - задавайте, я открыт для общения.

    • @MDunaev
      @MDunaev Год назад

      Возможно, Вам покажется удобнее механизм слияния в Ворде. Там тоже достаточно тесная связь с Экселем, хотя можно обойтись и без него.

  • @mandarina2016
    @mandarina2016 7 лет назад +3

    Очень полезно и просто объяснено на конкретном примере. Только зря Вы насекомых показываете в начале видео, и звук как-то скачет. Ну это так, на будущее, для совершенствования... Главное ведь суть, а суть ясна. Спасибо большое!

    • @GROM_TB
      @GROM_TB  7 лет назад

      Спасибо за Ваш коммантарий! Все замечания принимаю, насекомых в новых видео давно убрал. Спасибо, буду стараться в будущем писать качественнее.

    • @user-ni6co9cg5m
      @user-ni6co9cg5m 4 года назад +1

      скорее всего автор - шмель) микрофон поставил на запись, а сам летает по комнате, то ближе, то дальше =)

  • @Klickklock
    @Klickklock 4 года назад +1

    Подскажите пожалуйста, уже неделю голову ломаю. Я не знаю как правильно называть некоторые названия так что могу ошибаться. Есть скачанный с государственного сайта бланк( документ) пфд. Я могу его открыть и заполнить в обычном ридере. Но я хочу загнать этот пдф документ в эксель и что бы он заполнялся данными из таблицы эксель. Это вообще реально? Или же есть альтернативный вариант? За любой совет спасибо.

    • @GROM_TB
      @GROM_TB  4 года назад +1

      Приветствую! Нет ничего невозможного. При чем самый простой вариант лежит на поверхности - вы можете заранее напечатать 100 пустых бланков, а затем создать файл заполняющий нужные графы по схеме из данного видео. Или превратить PDF файл в картинку (например сделав скриншот) или воспользовавшись каким-то конвертером, и опять же - применить описанную в видео схему...

  • @user-wl8ot6cd6d
    @user-wl8ot6cd6d 2 года назад +1

    Можно доработать макрос? Как добавить в макрос что бы не печатал 800 листов, а что бы выбирал максимальное число в списке. Как написать это в макросе?

    • @GROM_TB
      @GROM_TB  2 года назад

      Попробовать переделать можно, но при "переделке" Вы, насколько я понимаю, столкнётесь с множественностью возможных путей решения и рядом проблем, с каждым из этих путей. Ознакомьтесь, например, с этим обсуждением похожего на Ваш вопрос: planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=4115
      Именно поэтому, для упрощения, в примере я и использовал четко определенное значение циклов печати.

  • @aibabrat
    @aibabrat 5 лет назад +1

    Уррраааа Эврика 3 😍😍😍я нашёл. Мне очень полезная информация.
    Автор вам большое спасибо за информацию.

    • @GROM_TB
      @GROM_TB  5 лет назад

      Рад, что смог Вам помочь. На самом деле действительно полезное видео, я когда на работе впервые это реализовал для печати этих самых 800 бланков доверенностей - все дико пищали от восторга ... Есть конечно моменты, на которых можно по неопытности запнуться, но если всё делать аккуратно и с включенной головой, то точно всё получится! Удач

    • @aibabrat
      @aibabrat 5 лет назад +1

      @@GROM_TB добрый день!
      Уважаемый автор вы можете мне скинуть этого файла Excel формат. Моё почту Aibek.1993kg@gmail.com. потому что я не смог написать макрос от и до. По этому прошу вас отправить мне электронной почте.

    • @GROM_TB
      @GROM_TB  5 лет назад

      @@aibabrat Легко. Качай - yadi.sk/i/nKZltnJzqgxeG , а вот почту свою лучше так не "светить", спамеры не дремлют. Они собирают по всему интернету "засвеченные" почты и потом добавив их в спам-базу, используют при рассылках спама. Побробнее об этом я рассказывал тут - ruclips.net/video/RA0DnI7ZX1A/видео.html

    • @aibabrat
      @aibabrat Год назад

      Добрый день, через 4 год я уже стал эксперт по экзель. Теперь VBA пищу смело. Спасибо вам ещё раз.

  • @entelechya
    @entelechya 5 лет назад +2

    а как сделать прозрачный шаблон который наложен на эксель? Имею ввиду из ворда сделать прозрачный. спасибо.

    • @GROM_TB
      @GROM_TB  5 лет назад

      Выделяете область в Word, копируете её в буфер обмена (Ctrl-C), далее делаем в Excel - Специальная вставка - объект Word. Вуаля...

    • @user-zg3xr8ts9g
      @user-zg3xr8ts9g 4 года назад

      автор, ты либо дурак, либо прикидываешься таким. вставка word-объекта не дает прозрачный фон, а вот вставка рисунка.png с прозрачным фоном прозрачность сохраняет. зачем людей в заблуждение вводишь?

    • @GROM_TB
      @GROM_TB  4 года назад +1

      Попробуйте, Вы удивитесь. А так - просто я эксперт в ИТ...

    • @user-zg3xr8ts9g
      @user-zg3xr8ts9g 4 года назад

      ага, эксперт)... во всех технологиях от 4й промышленной революции) скромно так о себе великом

    • @GROM_TB
      @GROM_TB  4 года назад +2

      @@user-zg3xr8ts9g Не, я только в ИТ, и около того. Во всех наверное это вы, раз я для вас дурак)

  • @skymetrdon8839
    @skymetrdon8839 7 лет назад +1

    Как изменить макрос, что бы печать заданный (изменяемый) диапазон? Например: с 1 по 18 затем с 18 по 36 и тд

    • @GROM_TB
      @GROM_TB  7 лет назад

      Это же Excel! Сохраните файл с новым названием, удалите в нем строки с 19 по 35-ую и печтатайте всё!
      Ну или если Вам постоянно нужно печатать два диапазона, то скопируйте цикл, и в первом счётчик с 1 до 18, а во втором счётчик с 36 по 800 (или сколько там у вас будет всего страниц?). Имхо сильно усложнять это не стоит. Но можно конечно и счётчик вынести на Лист, и править дипапазоны печати не входя в макрос...

  • @Desyachev
    @Desyachev 3 года назад +1

    Спасибо огромное! Очень помогло. Один вопрос, может вы знаете как запустить этот макрос с другого листа посредством кнопки. Перелазил везде где можно и ничего не получается.

    • @GROM_TB
      @GROM_TB  3 года назад

      Макрос применим на любом листе, при его создании указывается комбинация клавиш для его запуска (хотя она и не всегда работает). Но если в макросе указать например переход на конкретный лист, то это может помешать его использованию на другом листе...

    • @Desyachev
      @Desyachev 3 года назад +1

      @@GROM_TB Пришлось оставить на той же странице, но, в принципе, проблема, которая этот вопрос породила решилась. При этом немного (методом тыка) модифицировал код, чтобы он печатал столько бланков сколько заполнено строк.
      Еще раз спасибо.

    • @GROM_TB
      @GROM_TB  3 года назад

      @@Desyachev Рад быть полезным. Буду рад подписке ;-)

  • @Gargaev_TMG
    @Gargaev_TMG 7 лет назад +1

    Привет.
    Что то не получилось....НЕ закрывает...
    ==============
    Sub Автопечать()
    '
    ' Автопечать Макрос
    '
    ' Сочетание клавиш: Ctrl+q
    '
    For i = 1 To 3
    Range("J50").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("J50").Select
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True, IgnorePrintAreas:=False

    ' Dim li As Long
    ' With Sheets("Макет")
    ' For li =2 To Cell(Rows.Count, 1) .Row
    ' .Range(M2).Value=Cells(li,1)
    ' .Calcutate
    End Sub
    ==============

    • @GROM_TB
      @GROM_TB  7 лет назад +1

      Приветствую Олег! Не совсем понял что именно по вашему должно Закрывать? Бланк вставленный в Excel из Word находится на определенной вкладке, а макрос обновляет значение в специальной ячейке, с порядковым номером (то самое значение For i = 1 To 999), а автоматом обновляются и все формулы на странице + сразу же производится печать посредством ActiveWindow.SelectedSheets.PrintOut . На другой вкладке этого же файла находятся данные для подстановки, в первой колонке которой все строки пронумерованы всквозную по возрастанию от 1 до 999. Число строк с данными должно соответствовать значению в "счётчике" в макросе (For i = 1 To 999).
      Т.е. вы запускаете макрос, и смотрите на значение в спец.ячейке, оно автоматом должно приводится к "999" или к "3" если макрос у вас сейчас в том виде, что Вы процитировали. Ничего закрываться не должно. Диалоговое окно печати тоже не отображается, производится просто фоновая печать текущего листа... Для теста руками вбейте в спец.ячейку руками 0 и запустите макрос, в спец ячейке должно отобразиться 3. Если же физическая печать не началась, то проверьте выбранный по умолчанию принтер и его очеред печати.
      Постарался рассказать очень просто и подробно. Если что-то не донёс смело спрашивайте еще, очень рад что Вы задали этот вопрос, ведь раз не сразу вышло у Вас, возможно не сразу получится и у еще кого то.... А так мы предвосхитим эту ситуцию.

    • @Gargaev_TMG
      @Gargaev_TMG 7 лет назад +1

      Это я не верно задал вопрос. Сорри.
      У меня все получилось до макроса. сделал все поля. В ручную меня счетчик подставляются данные.
      Проблема с макросом.
      Текст макроса привел выше.
      Когда запускается макрос отладчик пишет ошибку.
      Вот ссылка на фото ошибкт
      joxi.ru/BA0aRlgSJza6wr

    • @GROM_TB
      @GROM_TB  7 лет назад

      Ошибка компиляции. Компилятор говорит, что вы где то потеряли команду Next. На самом деле возможно возникла проблема с форматированием текста... Например команда Next которая стояла в отдельной строке, присоединилась к предыдущей строке, и компилятор её "не видит", так как она перестала быть отдельной командой. В общем надо проверить текст.

    • @Gargaev_TMG
      @Gargaev_TMG 7 лет назад

      Текст я и привел ранее.
      можете подсказать, где ошибка.
      Могу файл переслать.

    • @GROM_TB
      @GROM_TB  7 лет назад

      Цитирую текст макроса, приведенный в описании к этому видео, в нем команда Next (кстати которая является концом цикла For) - на её исконном месте, в отдельной строке:
      Sub АвтоПечать()
      '
      For i = 1 To 800
      Range("J2").Select
      ActiveCell.FormulaR1C1 = i
      Range("J2").Select
      ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1,Copies:=1, Collate _ :=True, IgnorePrintAreas:=False
      Next
      '
      End Sub

  • @clavatishoa3830
    @clavatishoa3830 Год назад

    Мне подходит такой метод. Но у меня форма меняется, как это осуществить? Допустим у меня 5 таких форм протокола, потом 5 других форм, 1 такая, 3 других (в зависимости от списка, который я составлю (содержание)

    • @GROM_TB
      @GROM_TB  Год назад

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

    • @clavatishoa3830
      @clavatishoa3830 Год назад

      @@GROM_TB Благодарю за ответ. Дублировал данный вопрос на форум. Ищу направление куда копать. Хочу, чтобы Ексель печатал по составленному содержанию, при этом нумеровал их и менял данные. К сожалению гугл по запросу "Печать по содержанию" ответ не дает, буду искать!

    • @GROM_TB
      @GROM_TB  Год назад

      Приведите пример ваших данных, и объясните, каким образом определяется нужный набор печатных форм. Может что ещё подскажу...

    • @clavatishoa3830
      @clavatishoa3830 Год назад

      @@GROM_TB Я работаю в электролаборатории. Например, такая ситуация, заказчик приносит диэлектрические перчатки, галоши и указатель напряжения. Все вышеперечисленное являются средствами защиты (от поражения эл. током) и их необходимо испытать повышенным напряжением, по окончанию испытания выдать протокол.
      На каждое средство защиты, будь то перчатки или галоши, выдается протокол испытания, который имеет свою индивидуальную форму (в общих чертах одинаковые, но они все-таки отличаются). Т. е. на перчатки одна форма протокола, на галоши другая.
      С какой проблемой наша лаборатория столкнулась - с человеческим фактором. Вечная проблема, где-то страницы пронумерованы неверно, где-то шапку забыли поменять, где-то дата, где-то заказчика не написали и прочее.
      И представим такую ситуацию, нам заказчик приносит 20 пар перчаток, 15 галош, 4 диэлектрические отвертки, 5 изолирующих штанг. Я беру форму протокола, например, начинаю с перчаток, и копирую такой протокол 20 раз, потом протокол галош 15 раз и т. д. Протокол занимает 1 страницу. Поэтому весь отчет займет около 44 страниц (не считая титульный лист и содержание). И во всех 44 страницах, включая титульный лист и содержание, я вручную перебиваю (копирую-вставляю) данные (далее привожу пример моих данных, которые я собираюсь сделать как вы - таблицей): заказчик, дата испытания (сегодня, но бывает и задним числом, как уж зарегистрируем), название инструмента и его заводской №, дата следующего испытания (у перчаток раз в полгода, у галош раз в год) - формула должна будет считать = дата сегодня + полгода (год), номер страницы (форма - x из y, например 7 из 48), номер протокола (467 - 1, 467 это номер отчета, 1 номер протокола, соответственно 20 пара перчаток будет 467 - 20), адрес заказчика и так далее.
      Я хотел-бы, чтобы на отдельном листе выпадающим списком выбирал, на что мне нужен протокол, например диэлектрические перчатки и протягиваю до 20 строчки. На другой странице, в зависимости от того, что я выбрал, перчатки или боты, будут генерироваться необходимые мне данные, а некоторые, конечно, придется вручную писать, например заводской номер. Далее, данные должны в зависимости от содержания, которое я составил, отправляться в нужную форму протокола (чтобы данные перчаток шли в протокол перчаток).
      По итогу я должен запустить макрос и чтобы все 44 страницы распечатались в порядке, согласно содержанию. При этом у каждого протокола должна быть соответствующая нумерация, на последней должно быть "44 из 44".
      Мне приглянулся Ваш метод. Осталось придумать, как сделать, чтобы Ексель распечатал согласно содержанию, нужное мне количество тех или иных "бланков". При этом чтобы он нумеровал их и менял данные в соответствии с номером строки в таблице, в общем и целом, как у Вас в видео. Решение где-то близко. Я не против и заплатить, но у нас в любой момент может поменяться форма протокола, я не смогу каждый раз платить за актуализацию. Мозгов своих хватит рано или поздно это сделать, потому что наши коллеги уже сделали такое, просто никак не поделятся. Да даже если поделятся, протоколы они то одинаковые у всех лабораторий, но тем не менее, каждая лаборатория вносит свои особенности, свой так сказать подчерк, хотя бы форма шапки уже будет другая, поэтому поменять на свою форму будет проблематично и в дальнейшем будешь зависеть от нее, если что не так пойдет, ты не сможешь решить возникшую проблему.

    • @clavatishoa3830
      @clavatishoa3830 Год назад

      @@GROM_TB А так, все тоже самое, что у Вас. Данные очень простые, некоторые будут формулой вычисляться, где-то будут сыллки, что-то будет вручную вбиваться, где-то будут выпадающие списки, но в сумме все тоже самое. Проблема только в том, как это все распечатать с нумерацией страниц в соответствии с содержанием. На перчатки протокол будет один и тот же, будут меняться только данные. Но нам не всегда приносят одни перчатки, иногда приносят и сверх этого, очень много инструмента. Поэтому придется менять форму протокола. Но в итоге нумерация страниц должна быть соответственно правильной. Отчет будет единый.

  • @user-wq8ed9yc7p
    @user-wq8ed9yc7p 3 года назад

    а мне через пять лет понадобился это функция

    • @GROM_TB
      @GROM_TB  3 года назад +1

      ...а видео как назло потеряется и придётся всё заполнять вручную =)

  • @ulugbekmirzaaliev6332
    @ulugbekmirzaaliev6332 Год назад

    запустил макрос не подставляет данные на автомате а печатает один и тотже , что не так?

    • @GROM_TB
      @GROM_TB  Год назад

      Для счётчика используется значение в ячейке J2. При запуске скрипта число в этой ячейке увеличивается?

    • @ulugbekmirzaaliev6332
      @ulugbekmirzaaliev6332 Год назад +1

      @@GROM_TB да увеличивается, но печатает одно и тоже

    • @GROM_TB
      @GROM_TB  Год назад +1

      Ок, счётчик работоспособен. Далее происходит что, форма заполняется значениями со второго листа, из строки с номером счётчика. У вас там корректные данные? Если например там все строки одинаковые, то форма будет заполняться одинаковыми значениями и будет "печататься одно и то же".

  • @user-ie3zj8rw5r
    @user-ie3zj8rw5r 5 лет назад

    Это стандартная функция. Макрос не нужен. Серия однотипных документов методом слияния
    ruclips.net/video/HzyDVDdb_CI/видео.html

    • @GROM_TB
      @GROM_TB  5 лет назад +2

      Спасибо за комментарий. Но имхо это большой вопрос, какой метод проще! Пусть зрители сами выбирают...

  • @MrPups1313
    @MrPups1313 5 лет назад

    это всё умеет делать ворд (базовая функция), во вкладке "рассылки". зачем изобретать велосипед?

    • @GROM_TB
      @GROM_TB  5 лет назад

      Выгрузка данных из любой БД - будет представлять из себя по любому Excel'евский файл. Так что одним Вордом, для обработки тут по определению не получится.

    • @elenaaliseychik8026
      @elenaaliseychik8026 2 года назад

      спасибо огромное, хоть один грамотный человек! Автор говорит не понятно, звук ужасный, шаги пропускает. Благодаря вашему комментарию все получилось

  • @user-bs1yf5jd4r
    @user-bs1yf5jd4r 7 лет назад +9

    тема хорошая, но пояснения хуже некуда. сложно понять автора

    • @GROM_TB
      @GROM_TB  7 лет назад +2

      Спасибо за комментарий. Конечно же у всех пользователей разная подготовка, и соответственно некоторым понять тему будет сложнее. Я готов ответить на Ваши конкретны вопросы, если Вы напишете списком то, что не поняли.

    • @ppr8117
      @ppr8117 6 лет назад +2

      Согласен, очень сильно плавает звук, приходится самому додумывать...
      Автор, макрос пишется не в текстовом редакторе, а в редакторе Visual Baic (8:10 сек.)
      АВТОР! В 21-ом веке такое качество звука не допустимо!

    • @GROM_TB
      @GROM_TB  5 лет назад

      @@ppr8117 Микрофон моего старого ноутбука пишет звук с какими-то "гашениями". Это какая то аппаратная проблема...

    • @ppr8117
      @ppr8117 5 лет назад +1

      Гаджеты, обзоры, металлопоиск, может попробовать отключить звук и оставить только включённым микрофон?! Всё это можно сделать в установках звука... Удачи в будущем!!!

    • @GROM_TB
      @GROM_TB  5 лет назад

      @@ppr8117 Того ноута (а значит и проблемы) уже нет. Я поменял его на ruclips.net/video/6ZfhpVNysUA/видео.html Спасибо, и вам всех благ!

  • @saschokkrf3375
    @saschokkrf3375 3 года назад

    Объясняет одно показывает другое...не все шаги понятны

    • @GROM_TB
      @GROM_TB  3 года назад

      Ровным счётом, что показываю, то и комментирую. Да, тема не из самых простых... Задавайте вопросы, что именно не понятно.

  • @user-em2kv5lc7e
    @user-em2kv5lc7e 5 лет назад

    применяйте терминологию. не шаблон, а форма

    • @GROM_TB
      @GROM_TB  5 лет назад +1

      В терминах "офиса" это может называться так, в терминах 1С - по-другому. Но всё равно, спасибо за комментарий!

    • @MrPups1313
      @MrPups1313 5 лет назад

      когда коту делать нечего он ... так и так правильно в Excel и Word оно называется ИМЕННО "ШАБЛОН", а не "форма". прежде чем исправлять, загляни в начале в программу, чтобы потом не выглядеть нелепо

    • @user-em2kv5lc7e
      @user-em2kv5lc7e Год назад

      @@MrPups1313 приходит ТЗ, " а что это? не это не так называется. Тут вообще результат распечатка.

  • @BlackBeltGorlovka
    @BlackBeltGorlovka 6 месяцев назад +1

    Выкинь свой микрофон к едреней фене

    • @GROM_TB
      @GROM_TB  6 месяцев назад +1

      Это немного проблематично,, и может быть сопряжено с непростой разборкой, так как он встроен в ноутбук)))