Макрос в excel спецификация

Как часто в горестной разлуке,
В моей блуждающей судьбе,
Комплект КД, я думал о тебе!

Итак, в предыдущей статье я остановился на автоматизации отдельного документа и пообещал рассказать о том, как удалось организовать работу с комплектом разнородных документов при помощи вспомогательной базы Excel и как оказалось возможным делать комплекты документов вообще не открывая Word.

Под комплектом я здесь понимаю набор файлов форматов Word, Visio и AutoCAD, относящихся к одному общему проекту или изделию. То есть те файлы, которые представляют документы с одинаковыми, взаимно синхронизируемыми текстовыми полями. Далее, я буду называть этот комплект — автоматизированным комплектом документов или АКД.

Давайте посмотрим, как выглядит АКД в проводнике Windows.

Автоматизированный комплект документов стать

Автоматизированный комплект документов стать

Обратите внимание на файл variables.xls. Именно здесь располагаются все переменные, которые мы хотим централизованно распределять по нашему комплекту. В этом файле, при работе макросов VBA Word, Visio, AutoCad — автоматически создаются страницы, соответствующие этим файлам и содержащим все специфические переменные этих файлов.

Есть два нюанса. Первый — страница «All». Она понадобилась для того, чтобы сохранять переменные, которые одинаковы для ВСЕХ без исключения документов АКД. Например, для переменной vObj — Объект проектирования = Зал славы. :)) Второй нюанс — для документов Visio вкладка создается для каждой страницы документа, так как обычно достаточно удобно держать все схемы проекта в одном файле. В принципе, никто не мешает разнести эти схемы и по разным файлам, но в Excel попадут все равно названия страниц этих документов. Ну и дополнительно, чисто для эстетики, цвета вкладок-листов Excel соответствуют типам файлов. Например, синие — это Word.

Так как в предыдущей статье я уже рассказал о принципе формирования и обработки полей-переменных, то сейчас расскажу только о дополнительных вещах, относящихся к работе с файлом переменных. На следующем рисунке показана связь переменных, которые мы создаем с файлом variables.xls. Имя файла может быть любым и оно задается в основном окне макроса — в нижнем белом поле.

Связь переменных с файлом Excel

Связь переменных с файлом Excel

Методом проб и ошибок я пришел к такой организации работы со своим «детищем»:

  1. Создается новый файл. Как правило, уже на основе имеющегося шаблона.

  2. В окне макроса нажимается кнопка «Сохранить». При этом в фале переменных автоматически создается новая вкладка для этого файла и на нее заносятся имеющиеся в документе переменные. Если эти переменные уже есть на вкладке «All» — то они не вносятся на персональную вкладку документа.

  3. После сохранения, все «персональные» переменные документа отображаются и редактируются на вкладке окна макроса «Локальные». Общие переменные АКД — отображаются на вкладке «Общие». (Кстати, там они не редактируются, а только отображаются, во избежание ошибочных изменений, которые затронут весь комплект)

  4. Если я хочу сделать какие-то из переменных документа — общими, то я просто потом перехожу в файл Excel и перетаскиваю их строки с листа документа на лист «All». А если я хочу переопределить общую переменную персонально для конкретного файла, например, если везде разработчик один и тот же, но в единственном документе он другой то я копирую строку с листа «All» на персональную вкладку этого самого «особенного» документа.

  5. Такое повторяется для каждого документа комплекта (если комплект создается «с нуля». Если комплект типовой — то вообще ничего делать не надо, только в Excel или в окне макроса переменные менять.)

Ниже приведу, для примера, код функции, которая обеспечивает занесение переменных документа в файл.

Код функции записи переменных и дисклаймер

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

Sub xlAddVars(ExcelFile As String)
  Dim xlWSh, xlWShAll As Object
  Dim xlWbk As Object
  Dim xlApp As Object
  Dim Checked As Boolean
  Dim FileEx As Boolean
  Dim AllLastRow, LastRow
  Dim SheetName As String
SheetName = ""
On Error Resume Next
SheetName = ActiveDocument.Name
On Error GoTo openexcel
Set xlApp = GetObject(, "excel.application")
Checked = False
For a = 1 To xlApp.Workbooks.Count
If xlApp.Workbooks(a).Name = ExcelFile Then Checked = True: Set xlWbk = xlApp.Workbooks(ExcelFile): Exit For
Next
If Not Checked Then
On Error GoTo CreateFile
FileEx = FileDateTime(ActiveDocument.Path + "" + ExcelFile)
On Error GoTo 0
If FileEx Then Set xlWbk = xlApp.Workbooks.Open(ActiveDocument.Path + "" + ExcelFile)

End If
Found = False
For a = 1 To xlWbk.sheets.Count
If xlWbk.sheets(a).Name = SheetName Then Found = True
Next
If Not Found Then
Set xlWbs = xlWbk.sheets.Add(After:=xlApp.Worksheets(xlApp.Worksheets.Count))
xlWbs.Name = SheetName
xlWbs.Tab.ColorIndex = 37
End If
Set xlWSh = xlApp.ActiveWorkbook.Worksheets(SheetName)
Set xlWShAll = xlApp.ActiveWorkbook.Worksheets("All")
'Calculate last used rows in sheets
AllLastRow = xlWShAll.Cells(1, 1).End(-4121).Row
If AllLastRow >= 65536 Then
If xlWShAll.Cells(1, 1).Value = Empty Then AllLastRow = 0 Else AllLastRow = 1
End If
LastRow = xlWSh.Cells(1, 1).End(-4121).Row
If LastRow >= 65536 Then
If xlWSh.Cells(1, 1).Value = Empty Then LastRow = 0 Else LastRow = 1
End If
'Запись кол-ва листов
ActiveDocument.Variables("vPages").Value = ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)
For b = 1 To ActiveDocument.Variables.Count
Checked = False
'Search in All sheet
For a = 1 To AllLastRow
  If xlWShAll.Cells(a, 1).Value = ActiveDocument.Variables(b).Name Then
     Checked = True
     Exit For
  End If
Next

'Search in self sheet
If Not Checked Then
    For a = 1 To LastRow
        sL = ActiveDocument.Variables(b).Name
        sR = ""
        sL = Left(sL, InStr(1, sL, "_"))
        If sL = "" Then sL = ActiveDocument.Variables(b).Name Else sR = Right(ActiveDocument.Variables(b).Name, Len(ActiveDocument.Variables(b).Name) - InStr(1, ActiveDocument.Variables(b).Name, "_"))
        If xlWSh.Cells(a, 1).Value = sL Then
            If sR = "" Then
                xlWSh.Cells(a, 2).Value = "'" + CStr(ActiveDocument.Variables(b).Value)
                Checked = True
                Exit For
            Else
                For bb = 2 To 100
                    If xlWSh.Cells(1, bb).Value = sR Then
                       xlWSh.Cells(a, bb).Value = "'" + CStr(ActiveDocument.Variables(b).Value)
                       Checked = True
                       Exit For
                    End If
                Next
            End If
        End If
    Next
End If
'If not found - add personal row in self sheet
If Not Checked Then
   xlWSh.Cells(LastRow + 1, 1).Value = "'" + CStr(ActiveDocument.Variables(b).Name)
   xlWSh.Cells(LastRow + 1, 2).Value = "'" + CStr(ActiveDocument.Variables(b).Value)
   LastRow = LastRow + 1
End If

Next
Set xlApp = Nothing    ' the application, then release the reference.
Exit Sub
CreateFile:
Set xlWbk = xlApp.Workbooks.Add
xlWbk.ActiveSheet.Name = "All"
xlApp.DisplayAlerts = False
For a = xlWbk.sheets.Count To 2 Step -1
xlWbk.sheets(a).Delete
Next
xlApp.DisplayAlerts = True
Set xlWbs = xlWbk.sheets.Add(After:=xlApp.Worksheets(xlApp.Worksheets.Count))
xlWbs.Name = SheetName
xlApp.Workbooks(xlWbk.Name).SaveAs (ActiveDocument.Path + "" + ExcelFile)
Resume

openexcel:
Set xlApp = CreateObject("excel.application")
xlApp.Visible = True
Resume
End Sub

Как и в случае немодального окна макроса, я делаю Excel доступным для редактирования во время работы. Произвольным образом, при этом, могу редактировать значения переменных там, где мне удобно.

Итого, проработав все документы комплекта, мы получаем каталог файлов и один управляющий Excel-файл для централизованного внесения изменений. В некоторых случаях, комплекты получаются таковы, что отредактировав файл переменных можно избежать работы в Word полностью. Разве что придется открыть эти файлы, нажать кнопку макроса «Обновить» и убедиться в корректной подстановке значений в поля перед печатью этого документа.


Теперь давайте посмотрим, что можно сделать, если какой-либо документ комплекта требует специфической проработки. Например, это, в моем случае, будет таблица соединений и подключений.

Exel и Word. (... Добро и зло. А выбрать нам дано - одно.) :)))

Exel и Word. (… Добро и зло. А выбрать нам дано — одно.) :)))

Заполнять строки таблицы в Word мне неудобно, я лучше это сделаю в Excel. Тем более там можно произвести расчет значений, например, длин кабелей по формулам, автоматом пронумеровать по возрастанию порты, и т.п.

Для переноса этой информации в Word — я сделаю макрос импорта таблицы. При этом, так-как операция эта специфическая именно для «таблицы соединений», то этот макрос я буду создавать именно в этом файле, в файле шаблона таблицы, а не глобально в normal.dotm.

Он из себя представляет следующее: (см внутри)

'Формирование списка
Sub BuildSpec2()
    Dim sTab As Table
    Dim xlWSh As Object
    Dim xlApp As Object
    Dim of As Boolean
    Dim nf As Boolean
    Dim cf As Boolean
    Dim oCol, nCol, cCol As Integer
        
    i = Selection.Rows.Count
    If i = 0 Then
      MsgBox ("Необходимо выделить строки спецификации, куда будет помещены строки раздела (Оборудование)!")
      Exit Sub
    End If
    
    Response = MsgBox("Экспортировать из Эксел?", _
                       vbYesNo, _
                       "Заполнение таблицы")
        If Response = vbNo Then Exit Sub
        
        On Error Resume Next
        Set xlApp = GetObject(, "Excel.Application")
        If Err.Number <> 0 Then
          Err.Clear    ' Clear Err object in case error occurred.
             MsgBox ("Сначала необходимо открыть в Excel соответствующую спецификацию")
          Exit Sub
        End If
        On Error GoTo 0
        
               
        Set xlRange = xlApp.Selection
        If xlRange.Rows.Count < 2 Then
            MsgBox ("Необходимо выделить диапазон строк в Экселе.")
            Exit Sub
        End If
                
        UserForm1.Show
        
        Application.ScreenUpdating = False
        Set sTab = Tables(1)
        i = Selection.Rows(1).Index - 1
        For a = 1 To xlRange.Rows.Count - 1
            sTab.Rows.Add
            For b = 1 To 9
                sTab.Rows(a + i).Cells(b).Range.Text = xlRange.Rows(a).Cells(b).Text
            Next
            UserForm1.Label2.Caption = sTab.Rows(a + i).Cells(1).Range.Text
            UserForm1.Repaint
        Next
        UserForm1.Hide
        Application.ScreenUpdating = True
    
        Set xlApp = Nothing    ' the application, then release the reference.

End Sub

Принцип работы этого макроса заключается единственно в том, чтобы взять диапазон выделенных предварительно в Excel строк и перенести в заготовку таблицы, имеющуюся в шаблоне документа.

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

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

Здесь можно дополнительно сделать формирование списка документации, который… правильно! Соответствует набору вкладок в файле variables.xls. Поэтому очередной специфический макрос для документа «спецификация» будет осуществлять просмотр листов-вкладок «Excel» и в порядке следования занесет их в таблицу «Документация». Названия, коды, примечания — будут взяты из соответствующих переменных, введенных ранее для этих документов.


В комплекте документов есть еще ряд файлов Visio и AutoCAD. Работа с ними отличается от работы с Excel и Word, что само собой разумеется. И эти отличия заслуживают отдельного рассмотрения.

В следующей статье, я опишу принципы и некоторые детали реализации автоматизации Visio — документов. В том числе работу с шаблонами и Stencils-ами.

Сделала лишь потому, что только учусь писать макросы. А т.к.только учусь — наверняка далеко не так коротко и оптимально, чем могло бы быть сделано.
У меня часто тут на сайте плохо отображается текст кода, поэтому текст макроса я кину вам файлом work.xlsm.

Форматы всякие (ширина колонок, шрифты и тп) — это уж сами.
Предполагается что номер спецификации и договора в рамках одной поставки будет один и тот же.
Ед изм — везде «кг»
ставка ндс — везде 18%
срок поставки — везде «27.05.2015», т.к. не указано иное
Вообще весь текст, идущий под таблицей в примере файла спецификации — он статичный, кроме числа «цена за всю партию»
Как это число прописью прописать тоже сами ищите.
Макет итоговой спецификации таков, что там не будет скрытых строк. весь текст пляшет от последнего заполненного в спецификации товара.
Вообще, думаю не нужно объяснять, что итоговый макет и исходная таблица (порядок и названия столбцов) должны быть неизменны.

Я задала так, чтобы название файла спецификации формировалось как «Спецификация» + номер поставки, т.е. вида «Спецификация2.xls»
Ну чтобы ошибка не выдавалась, т.к. единовременно может быть открыт только один файлс названием «Спецификация.xls»
При запуске макроса, файл work.xlsx должен быть открыт (что очевидно, т.к. там кнопка запуска, на которую вы планируете повесить макрос))
Текст макроса (из приложенного мною work.xlsm) помещаете в свою личную книгу макросов или как там вы хотите. и назначаете его на кнопку формирования спецификации.

Для проверки работы, откройте свой файл work.xlsx (задайте там в ячейке E2 нужный номер поставки), откройте мой файл work.xlsm. и жмите в нем на синюю кнопку.

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

sYska

размещено: 11 Февраля 2018

Дорогие проектировщики, выкладываю вам свою наработку для оформления спецификации и КЖ с использованием макросов.
Что реализовано:
1) Автоматическая верхняя и нижняя нумерация.
2) Автоматическая правка размеров рамки под разные принтеры.
3) Автоматическое форматирование строк и их нумерация.
Ну и еще некоторые няшки.
Часто Exel отображает, что что-то съехало… смотрите на то как он выводит на печать.
Хорошо бы нашелся хороший программер для того, чтобы довести это до ума и оптимизировать код.
Если будут вопросы и еще что-то пишите на почту [email protected]

zip

0.32 МБ

СКАЧАТЬ

Заполнение спецификации макросом

HeoH

Дата: Воскресенье, 27.11.2016, 07:19 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 21


Репутация:

0

±

Замечаний:
40% ±


Excel 2013

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

Сообщение отредактировал HeoHВоскресенье, 27.11.2016, 09:02

 

Ответить

Pelena

Дата: Воскресенье, 27.11.2016, 08:22 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Внешние ссылки на файлы на форуме запрещены. Делайте файл-пример без лишних данных, картинок, листов и строк.
И дайте теме более конкретное название в соответствии с Правилами форума


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

HeoH

Дата: Воскресенье, 27.11.2016, 08:54 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 21


Репутация:

0

±

Замечаний:
40% ±


Excel 2013

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

максимум насколько получилось уменьшить 1,95мб
меньше никак

Сообщение отредактировал HeoHВоскресенье, 27.11.2016, 09:12

 

Ответить

wild_pig

Дата: Воскресенье, 27.11.2016, 21:31 |
Сообщение № 4

Группа: Проверенные

Ранг: Обитатель

Сообщений: 516


Репутация:

97

±

Замечаний:
0% ±


2003, 2013


Это точно.
сделать спецификацию на 1-2 листа ну вообще невозможно.

 

Ответить

HeoH

Дата: Понедельник, 28.11.2016, 13:24 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 21


Репутация:

0

±

Замечаний:
40% ±


Excel 2013

шутки шутками но когда специфа на 10-15листов в ручную как то вообще долго

 

Ответить

HeoH

Дата: Понедельник, 28.11.2016, 13:36 |
Сообщение № 6

Группа: Пользователи

Ранг: Новичок

Сообщений: 21


Репутация:

0

±

Замечаний:
40% ±


Excel 2013

[vba]

Код

‘добавляем основной штамп
Worksheets(res).Activate
Worksheets(res).Shapes(«group4»).Select
Selection.Copy
Worksheets(«Печать»).Paste Destination:=Worksheets(«Печать»).Range(gr4range1 + CStr(crow + 28), gr4range2 + CStr(crow + 28))

‘заполняем осн. штамп
Worksheets(«Печать»).Activate
ActiveSheet.Shapes(«group4»).Select
Application.Wait Time:=Now + TimeValue(«0:00:01»)
With ActiveSheet.Shapes(«group4»)
.IncrementLeft gr4incrlft
.IncrementTop gr4incrtp
End With
Selection.ShapeRange.Ungroup.Select
ActiveSheet.Shapes(«Поле13»).Select
Selection.Characters.Text = Worksheets(«Штамп»).Range(«H2»).Value
If Worksheets(«options»).Range(«B2»).Value = «1» Then
Selection.Font.Size = Worksheets(«Штамп»).Range(«H2»).Font.Size
End If
ActiveSheet.Shapes(«Поле13»).Name = «Поле4_13»
ActiveSheet.Shapes(«Поле14»).Select
Selection.Characters.Text = l
ActiveSheet.Shapes(«Поле14»).Name = «Поле4_14»

[/vba]

Debug указывает на эту строчку — ActiveSheet.Shapes(«group4»).Select

 

Ответить

nilem

Дата: Понедельник, 28.11.2016, 17:35 |
Сообщение № 7

Группа: Авторы

Ранг: Старожил

Сообщений: 1612


Репутация:

563

±

Замечаний:
0% ±


Excel 2013, 2016

Debug указывает на эту строчку — ActiveSheet.Shapes(«group4»).Select

при этом дебагер указывает, что «Компонент с указанным именем не найден». Так?


Яндекс.Деньги 4100159601573

 

Ответить

HeoH

Дата: Вторник, 29.11.2016, 10:19 |
Сообщение № 8

Группа: Пользователи

Ранг: Новичок

Сообщений: 21


Репутация:

0

±

Замечаний:
40% ±


Excel 2013

именно так
хотя этот компонент есть сидит на скрытом листе res1
могу вам на почту выслать, что бы Вы посмотрели если Вас незатруднит

 

Ответить

nilem

Дата: Вторник, 29.11.2016, 10:51 |
Сообщение № 9

Группа: Авторы

Ранг: Старожил

Сообщений: 1612


Репутация:

563

±

Замечаний:
0% ±


Excel 2013, 2016

попробуйте вот так, без Select
[vba]

Код

Worksheets(res).Shapes(«group4»).Copy’ res or res1?
Worksheets(«Печать»).Paste Destination:=Worksheets(«Печать»).Range(gr4range1 + CStr(crow + 28), gr4range2 + CStr(crow + 28))

[/vba]


Яндекс.Деньги 4100159601573

 

Ответить

HeoH

Дата: Вторник, 29.11.2016, 10:57 |
Сообщение № 10

Группа: Пользователи

Ранг: Новичок

Сообщений: 21


Репутация:

0

±

Замечаний:
40% ±


Excel 2013

нет, не помогло
давайте я вам на почту полный файл специфы вышлю

 

Ответить

nilem

Дата: Вторник, 29.11.2016, 11:21 |
Сообщение № 11

Группа: Авторы

Ранг: Старожил

Сообщений: 1612


Репутация:

563

±

Замечаний:
0% ±


Excel 2013, 2016

Нет, на почту не надо, здесь это не разрешается.
Разве что пример нарисовать небольшой и сюда выложить.
Скорее всего фигура у вас называется по-другому или переменная res обозначает не тот лист.
У меня вот так работает:
[vba]

Код

Sub ttt()
Sheets(«Лист1»).Shapes(«Группа 3»).Copy
Sheets(«Лист2»).Paste Sheets(«Лист2»).Range(«D8»)
End Sub

[/vba]


Яндекс.Деньги 4100159601573

 

Ответить

SLAVICK

Дата: Вторник, 29.11.2016, 11:24 |
Сообщение № 12

Группа: Модераторы

Ранг: Старожил

Сообщений: 2290


Репутация:

766

±

Замечаний:
0% ±


2019

давайте я вам на почту полный файл специфы вышлю

Давайте Вы перестанете спамить — почитаете правила форума и наконец-то сделаете вменяемый пример.
Если в 100кб не вкладываетесь — есть архиваторы. Кроме того они умеют разделить файл на части. Два три куска для обычного примера более чем достаточно.
Вам замечание и бан два часа на то чтобы почитать правила и сделать пример.


Иногда все проще чем кажется с первого взгляда.

 

Ответить

HeoH

Дата: Вторник, 29.11.2016, 14:30 |
Сообщение № 13

Группа: Пользователи

Ранг: Новичок

Сообщений: 21


Репутация:

0

±

Замечаний:
40% ±


Excel 2013

1. огромное спасибо модератору Pelena — самый адекватный и уважаемый для меня теперь администратор которые с пониманием отнесся к моей просьбе, помогла уменьшить экселевский файл, и оформить тему! как говорится ей респек и уважение! Она хороший человек!
А вы Славик как человек похоже так себе раз не можете войти в положение и понять человека

2. я не лузер и знаю что такое архиваторы и умею архивировать разбивать на части, размер изначального файла от 1.4мб и при архивации он уменьшается на 100кб максимум

3. в правилах форума НИГДЕ не прописано что нельзя пересылать файл по почте

4. приложил экселевский файл который уменьшила уважаемая Pelena

К сообщению приложен файл:

_small_.rar
(94.8 Kb)

Сообщение отредактировал HeoHВторник, 29.11.2016, 14:31

 

Ответить

Pelena

Дата: Вторник, 29.11.2016, 14:45 |
Сообщение № 14

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

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


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

nilem

Дата: Вторник, 29.11.2016, 14:56 |
Сообщение № 15

Группа: Авторы

Ранг: Старожил

Сообщений: 1612


Репутация:

563

±

Замечаний:
0% ±


Excel 2013, 2016

[vba]

Код

‘Копируем штамп на 1 лист—————-
Worksheets(«res1»).Shapes(«Group10»).Copy
Worksheets(«Печать»).Paste Destination:=Worksheets(«Печать»).Range(gr10range)

[/vba]
Листа res просто нет


Яндекс.Деньги 4100159601573

 

Ответить

SLAVICK

Дата: Вторник, 29.11.2016, 14:58 |
Сообщение № 16

Группа: Модераторы

Ранг: Старожил

Сообщений: 2290


Репутация:

766

±

Замечаний:
0% ±


2019

[offtop]

вы Славик как человек похоже так себе раз не можете войти в положение и понять человека

Как человек может и так себе, а как один из модераторов вполне законно могу Вас забанить за грубое нарушение Правил форума по ряду пунктов:
начиная с 3-го:

Цитата

ВСЕГДА прикладывайте файл-пример, кроме тех случаев, когда вопрос носит общий характер и не касается конкретно Вашего файла

— Чтобы понять и помочь — достаточно таблицы на 10-20 строк

Продолжая по ряду подпунктов 5-го пункта:

Цитата

b — обсуждать действия Администрации сайта;
k — выкладывать ссылки на другие ресурсы, если они напрямую не связаны с обсуждаемой проблемой и не содержат её решения в том случае, если Вы не являетесь автором темы;
o — предлагать собеседнику перейти в личные отношения (ЛС, SkyPe, ICQ, Агент и проч…), кроме форума «Фриланс»;

И еще:

раз не можете войти в положение и понять человека

Вы уважаете других форумчан, их время?

в правилах форума НИГДЕ не прописано что нельзя пересылать файл по почте

Читайте еще раз вышеприведенные правила внимательно.
И еще, чтобы не вышло как в этой теме.
Вы ставите мне минус в репутацию за то что? я указал Вам на Ваши ошибки — а Вы их ленитесь исправлять?
Могу и ответить — но тогда Ваша «репутация» уйдет далеко в минус[/offtop]


Иногда все проще чем кажется с первого взгляда.

 

Ответить

HeoH

Дата: Вторник, 29.11.2016, 14:59 |
Сообщение № 17

Группа: Пользователи

Ранг: Новичок

Сообщений: 21


Репутация:

0

±

Замечаний:
40% ±


Excel 2013

есть вот такое —
[vba]

Код

‘ выбор листа с граф. объектами
If (Range(«Опции.Печать_в_кромку»).Value <> «1») Then
res = «res1»
Else
res = «res2»
End If

[/vba]

Сообщение отредактировал HeoHВторник, 29.11.2016, 15:10

 

Ответить

nilem

Дата: Вторник, 29.11.2016, 15:08 |
Сообщение № 18

Группа: Авторы

Ранг: Старожил

Сообщений: 1612


Репутация:

563

±

Замечаний:
0% ±


Excel 2013, 2016

И так тоже работает
[vba]

Код

Worksheets(res).Shapes(«Group10»).Copy
Worksheets(«Печать»).Paste Destination:=Worksheets(«Печать»).Range(gr10range)

[/vba]

зайдите пож в пост №12 и вставьте теги «код» (вот такой значок #)
или просто удалите код из сообщения. Чувствую, сейчас бан заработаем
[moder]ТС заработал два замечания за эту тему.
Злой модератор следит :D [/moder]


Яндекс.Деньги 4100159601573

Сообщение отредактировал SLAVICKВторник, 29.11.2016, 15:12

 

Ответить

HeoH

Дата: Вторник, 29.11.2016, 15:10 |
Сообщение № 19

Группа: Пользователи

Ранг: Новичок

Сообщений: 21


Репутация:

0

±

Замечаний:
40% ±


Excel 2013

зайдите пож в пост №12 и вставьте теги «код» (вот такой значок #)
или просто удалите код из сообщения. Чувствую, сейчас бан заработаем

благодарю, исправил

 

Ответить

Pelena

Дата: Вторник, 29.11.2016, 15:12 |
Сообщение № 20

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Раз уж меня разоблачили, скажу, что у меня макрос из исходного файла, так же как и из уменьшенного срабатывает без сбоев. У автора темы он застревает при копировании сгруппированного объекта (штампа) с одного листа на другой. Штамп этот вставляется на каждый лист (в смысле на каждую печатную страницу), но ошибка выпадает где-то на 5-6 странице, то есть не сразу. Причину найти не удалось


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Создать спецификацию по шаблону на основе данных из таблицы (Формулы/Formulas)

​Смотрите также​​ если не возможно​​ столбцы. Например есть​​ только с выбором​ все 10 столбцов​: Господа и дамы​шаблоны Word (расширения​ всю работу нажатием​ может уже есть​
​man1180​​Это возможно осуществить?​​ нужно получить в​ вордом, но решила,​ не сделать, нужен​ файлик, но исправилась​Голову уже сломала.​ пп, заказчик=ФИО, Адрес​Rityzina​ видеть все сразу,​ 1 столбец-Название Резисторы,​
​ «по любому столбцу»​ файла источника, совсем​ подскажите пожалуйста возможно​​ DOT, DOTX, DOTM)​ одной кнопки,​ макрос, который потребует​: Здравствуйте,​Картинки отправлю на​ эксель.​ что в моем​ макрос.​gling​
​Помогите, пожалуйста.​
​ доставкиустановки, контактный телефон,​

​: Есть​​ так, как иногда​ 2-Номинал 1, 1.5​ непонятно: ведь по​ хорошо если выбор​ ли в Excel​книги Excel (расширения​- то воспользуйтесь​ минимальной доработки для​

​подскажите пожалуйста как​​ емаил​Задача в том,​ случае это неудобно,​thumb​Pelena​: Предполагаю что Вам​

​gling​​ e-mail, и ФИО​реестр заказов​ удобней выбирать разное​ и т.д, 3-мощность,​ какому бы Вы​ можно будет производить​ реализовать следующую задачу?​ XLS, XLSX, XLSM,​ надстройкой для заполнения​ моей задачи?​ в Excel реализовать​FAETON​ что бы выделенный​ поэтому хотела реализовать​: Как вариант, можно​ лучше сменить порядок​

​: И Вам здравствовать​​ внизу страницы).​(№пп, ФИО, адрес,​ оборудование по разным​ 4- производитель понятно,​

​ столбцу не щёлкнули​​ по любому столбцу.​​Необходимо создавать спецификации​​ XLSB)​
​ документов Word из​

​заранее спасибо​​ следующую задачу?​
​: вот Дополнительные графы​ на картинках красным​ мою задачу именно​ сделать шаблон в​ заполнения. Создать шаблон​ Rityzina. Красивый Ник,​На каждую строчку в​ телефон, e-mail, стоимость)​
​ параметрам​ что ни один​ — должна выбраться​ Либо второй вариант​ следующим образом, в​
​шаблоны Excel (расширения​

excelworld.ru

Спецификация в Excel (спецификации которые нужно получить в эксель)

​ Excel:​​KuklP​
​необходимо создание большого​ во вложении​ цветом области автоматически​ в экселе.​
​ Word’е и использовать​ «ЗАКАЗ-СПЕЦИФИКАЦИЯ № «​ теплый наверно? Без​ реестре заказов надо​ — вкладка «реестр​Юрий М​ из этих столбцов​ ВСЯ строка. Так​ (несколько хуже), чтобы​ одном файле excel​
​ XLT, XLTX, XLTM)​Надстройка предназначена для​: Воспользуйтесь инструментов в​ кол-ва однотипных приложений​
​doober​
​ вставлялись в каждую​Про обратный порядок​

​ инструмент Слияние​​ он уже есть.​ файла примера вряд​

​ создать заполненную спецификацию​​ заказов» — заполняется​
​: Резисторы, ёмкости… это​ сам по себе​

​ следует из вопроса.​​ выбор производился по​
​ (в крайнем случае​
​текстовые документы (расширения​

​ формирования (подготовки) документов​​ Ворд — Слияние.​

excelworld.ru

Создание спецификаций из Эксель в ворд

​ к договору на​​: Возможно.​
​ страницу. Все страницы​ заполнения я и​and_evg​

​ Заполняете его вручную​ ли кто Вам​(можно в том​ вручную (кроме «стоимость»​

​ мне близко. Поэтому​ информации не несет​

​ Тогда зачем отображать​ одному любому столбцу​ листе)находится перечень оборудования​ TXT, DAT, XML​

​ по шаблонам, с​ Тогда и макросов​ поставку оборудования​Каков бюджет этого​ после 2-ой должны​
​ не подумала, спасибо​

​:​​ и жмете кнопку​ поможет. Похоже файл​ же файле каждую​ — желательно)​

​ см. вариант​​ и выбрать оборудование​

​ все столбцы? Всё​​ также списком, а​ (10 столбцов с​ и т.д.)​
​ заполнением созданных файлов​ не понадобится.​пример приложения в​
​ предприятия?​ быть похожи на​ что подсказали и​Rityzina​

​ сохранить, в результате​ подзадержался в дороге.​ спецификацию в отдельной​Есть​nik​ видя только один​

​ равно ВСЯ строка​ заполнялась бы вся​ хар-ми). В другом​

​В качестве исходных​ данными из текущей​
​Юрий М​ ататче​
​Кирилл​ вторую. Все размеры​ реализовали!!!!​
​, Как Вам предлагали​ этот лист сохраняется​
​ Счас глянем.​ вкладке, можно все​шаблон спецификации​

​: уважаемый Yury​ столбец невозможно. Очень​ должна заполниться.​ строка.​ файле excel выбираем​ данных для заполнения,​

planetaexcel.ru

Создание спецификаций

​ книги Excel.​​: Читаем здесь:​удобнее всего набрасывать​: Все возможно.​ по Гостам.​
​Всех люблю, целую!!!​См. файл.​ под номером заказа,​Rityzina​ спецификации в одной​- вкладка «спецификации»​самое простое и​ часто хар-ки уникальны​Yury​Заранее благодарен всем​ необходимое оборудование из​ используется открытый в​В качестве шаблонов​EducatedFool​ табличку в экселе,​[email protected]​Дополнительные графы также​FAETON​Rityzina​ а данные из​: Доброй ночи! спасибо,​ вкладке, можно каждую​ — несколько полей​ надежное использовать автофильтр​ и поэтому необходимо​
​: Благодарю Вас Юрий​ за любую информацию!​

​ выпадающего списка, НО​​ Excel файл (с​ могут выступать следующие​: Если не хотите​ далее руками приходится​skype: Skillyr​ должны отображаться на​: Добрый день,​: Всем огромное спасибо!!!​ него прописываются в​ на холод не​ спецификацию отдельным файлом​ должны заполняться автоматически​ — выбор с​ заполнять всю стороку​

​ М​​Юрий М​ желательно чтобы при​
​ таблицей, содержащей строку​ типы файлов:​ разбираться во всех​ переносить в ворд.​smeckoi77​ всех страницах,начиная с​Прикреплены картинки с​Я думала про​ листе «Реестр спецификаций».​ жалуюсь​ — это не​ на основе данных​ любым количеством столбцов,​ сразу. Выбор по​Попробую пояснить зачем​: Вам, скорее всего,​ выборе в выподающем​ заголовка)​документы Word (расширения​ этих макросах,​подскажите пож-та -​: Обращайтесь [email protected]​ первой.​ видом спецификации, которую​ вариант слияния с​

​ Простыми формулами это​​. Да, потеряла​ очень принципиально)​ реестра заказов (№​

​ в любом порядке.​​ столбцам, как вариант,​
​ необходимо видеть все​ подойдёт ВПР. Вот​ списке были видны​Yury​ DOC, DOCX, DOCM)​

planetaexcel.ru

​а желаете делать​

Panacota

*
Участник форумов

Сейчас отсутствует Сейчас отсутствует


Добрый вечер!
Хочу сделать спецификацию в экселе и у меня почти это получилось при помощи колонтитулов. Разобралась как вставлять, но на печать выводится не весь рисунок колонтитула! На листе все красиво! Помогите, пожалуйста. Как сделать так, чтобы то, что я вижу на листе совпадало с печатью.


Инженер по электроснабжению (Санкт-Петербург, Россия)

Samsony 1


поищите в интернете, есть готовая и формата А4, и формата А3, с разной основной надписью на первом и последующем листах.
навскидку не вспомню где …


Главный специалист (Тюмень, Россия)

Антониони


1. В Excel-е штампы можно выполнить двумя способами — границей ячеек и отрисовкой линиями и надписями. В первом случае необходимо точно подогнать ширину всех ячеек и высоту. Это сложно, поэтому ширину и высоту ячеек делают минимальной и потом как из «кубиков» через объединение составляют нужной ширины/высоты графы штампа. Во втором случае можно четко и по размерам отрисовать все рамки и штампы, но они будут НЕ привязаны к ячейкам и значит могут «съезжать» при изменении выше количества или габаритов строк. ДАже если в колонтитулах сделать рамку со штампом — одно с другим может не очень хорошо сходиться.
Так же учитывайте, что в Екселе нет понятия см и мм для размеров ячеек — есть пиксели и есть ПТ. ПТ связаны с размерами букв определенного шрифта.
2. Самый простой вариант — выполнить полностью рамки и «геометрию» страниц, а потом просто подставлять туда ваши данные. Например, на лист Data забиваем всю нужную спецификацию, включая те позиции, которые нам могут понадобиться в будущих проектах. В одной колонке указываем «код нужности». Если код есть — строка выводится в спецификацию, если нет — остается только на листе Data. На листе с шаблоном спецификации, за пределами используемых столбцов делаем поиск нужных строк (выводимых) и получаем номер строки. В самом шаблоне указываем формулы вывода нужных столбцов указанной строки с листа Data.
Получаем неизменяемый шаблон спецификации, где меняем только штамп. Если штамп выполняется по первому методу, то его так же можно сделать формулами и данные вносить на отдельный лист — фамилии, название проекта, завода, марку и т.п.
Жесткая привязка значений к определенной ячейке на листе Data позволяет выполнять дополнительные расчеты. Например если необходимо подсчитать общее количество кабеля — просто суммируем нужные ячейки из диапазона на листе Data, зная, что при необходимости, новые кабели будут добавляться внутрь этого диапазона и так же будут посчитаны.
Со временем спецификация будет достаточно полной и не придется вносить новые позиции, а только определять нужные позиции. И тут тоже можно формулами забить «нужность», то есть если метраж кабеля , например, указан, то эта позиция должна выводиться в спецификацию — указывается код нужности.

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

Вот вам еще варианты:
— программа Blank-RZ

https://www.proektant.org/index.php?topic=3746.0


Проектировщик КИП (Самара, Россия)

Panacota

*
Участник форумов

Сейчас отсутствует Сейчас отсутствует


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


Инженер по электроснабжению (Санкт-Петербург, Россия)

Samsony 1


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


Главный специалист (Тюмень, Россия)

Антониони


Вот вам пример как можно сделать
Лист Data — туда вносим данные.
Лист ПЕЧАТЬ — отсюда печатаем.


Проектировщик КИП (Самара, Россия)

Samsony 1


видел подобную форму для А3/А4 написанную на макросах, вспомнить где надо.
там еще было автоматом заполнение листов и штампа из листа-заготовки.


Главный специалист (Тюмень, Россия)

Антониони


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


Проектировщик КИП (Самара, Россия)

Samsony 1


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


Главный специалист (Тюмень, Россия)

Антониони


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

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


Проектировщик КИП (Самара, Россия)

Samsony 1


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

Лист Data — туда вносим данные.

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

я все время хочу сделать спецификацию на макросах или методом подстановки из ячеек и выпадающих списков.
много чего на макросах сделал, просто времени мало.


Главный специалист (Тюмень, Россия)

doctorRaz

***
Куратор подраздела «AutoCAD, AutoCAD LT и СПДС модуль Autodesk»

Мастерская СПДС

Сейчас на форумах Сейчас на форумах


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

https://www.cadmaster.ru/magazin/articles/cm_79_15.html

Естественно на спдс от консистент свет клином не сошелся, блоки плюс vb режультат тот же.
Основная мысль, что на чертеже, то и в спецификации, ошибки почти исключены.
Правда для осмысления надо времени больше чем час, я тож к этому не сразу пришел, то же костылики типо вышеприведенных подставлял.
Это тож костыль, но под него другие костыи хотя б не нужны


Конструктор (Волгоград, Россия)

Samsony 1


Не совсем понял что вы искать собираетесь?

немного погодя и перепробовав понял смысл заполнения.
но это конечно не панацея и при небольшом количестве позиций очень выручит.

про интересное решение — маркер уже читал, видимо по такой же ссылке.


Главный специалист (Тюмень, Россия)

Антониони


немного погодя и перепробовав понял смысл заполнения.
но это конечно не панацея и при небольшом количестве позиций очень выручит.

Даже при большом количестве позиций будет удобно если сделать грамотную группировку.
А если взять макрос… Вам опять же придется искать нужную позицию, что бы ее вставить. Разница в том, что ваш поиск возможно будет чуть быстрее и чуть удобнее чем встроенный в Ексель, чуть быстрее чем мой вариант с группировкой. Но сам поиск останется, от этого никуда не деться.
Далее, предположим что надо вставить данные о приборах — они могут сильно отличаться! У меня уже был макрос для Ворда — выбираешь тип прибора и он вставляет заготовку, меняешь параметры и получаешь готовую спецификацию на ОДИН прибор. Если приборов сотня — умаешься так вставлять. Плюс специфика — для разных проектов часто встречаются тонкости, ради которых шаблон приходится переделывать. Ушел в сторону создания «каталогов». Там проще — создается файл Ексель с данными, создается шаблон в Ворде. Затем данные из строки Екселевской базы подставляются в шаблон и получаем спецификацию на один прибор. Далее снова вставляется шаблон с данными из следующей строки базы. В итоге 60 страниц спецификации (1 страница= 1 прибор) генерируется за 20-30 сек.  Вся спецификация по приборам выполняется примерно за 3-4 часа, при чем большая часть времени уходит на создание шаблона (или его корректировку, если есть старая заготовка) и заполнение базы данных (файл Екселя)
Плюс этого варианта в том, что эти же данные часто используются в других документах (опросные листы, таблицы входных и выходных сигналов и так далее), а значит в этом же файле создаем еще листы с базами для других документов, создаем шаблоны и вуаля — имя базы и шаблоны все документы генерируются буквально за несколько минут.


Проектировщик КИП (Самара, Россия)

Samsony 1


А если взять макрос… Вам опять же придется искать нужную позицию, что бы ее вставить.

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

D1 привел более удобный способ — маркер.


Главный специалист (Тюмень, Россия)


Сейчас Вы — Гость на форумах «Проектант». Гости не могут писать сообщения и создавать новые темы.
Преодолейте несложную формальность — зарегистрируйтесь! И у Вас появится много больше возможностей на форумах «Проектант».

Последние сообщения на форуме «Программы для проектирования»

13 Апреля 2023 года, 13:44

10 Апреля 2023 года, 13:50

07 Апреля 2023 года, 19:31

30 Марта 2023 года, 07:16

28 Февраля 2023 года, 11:16

21 Февраля 2023 года, 19:13

19 Февраля 2023 года, 16:22

09 Февраля 2023 года, 15:24

09 Февраля 2023 года, 14:46

09 Февраля 2023 года, 14:08

08 Февраля 2023 года, 12:22

06 Февраля 2023 года, 15:12

24 Января 2023 года, 09:30

08 Января 2023 года, 16:16

06 Января 2023 года, 15:06

Программа для заполнения спецификаций в Excel

Установка:

Поддержка версий Excel 2007 и выше, что будет в 2003 не проверял.
Для установки программы:

  1. В любое удобное место скачать все файлы из папки «Спецификация» (по ссылке «releases» версия может быть не актуальной) все файлы используются при работе, при их отсутсвии могут быть ошибки:
    • «SpecProgram.xlam»
    • «SpecDataBase.xlsx»
    • «Template-Spec.xlsx»
    • «Page1.png»
    • «Page2.png»
    • Файлы должны лежать в одной папке
  2. Открываем «SpecProgram.xlam» , разрешаем работу макросов и подтверждаем установку надстройки.
  3. Далее работа ведется с файлом «Template-Spec.xlsx», при открытии документа Excel есть кнопка «Создать спецификацию» на вкладке «Спецификация».
  4. Для обновления просто заменяем файл надстройки новым.
  5. Если Эксель блокирует файл надстройки https://www.excel-vba.ru/chto-umeet-excel/nadstrojka-ne-zapuskaetsya-v-excel/

Описание программы

Шаблон для спецификации состоит из 5 листов

  • Версии
  • Спецификация
  • Перенос (может быть скрыт)
  • СО
  • ВР

Версии

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

Спецификация

Это главный лист для составления спецификации, в него заносим всю необходимую информацию, и добавляем элементы из базы данных.

Перенос

Это рабочий лист, используется только для ручного переноса спецификации – описано далее. Может быть скрыт.

СО и ВР

Листы подготавливаются для печати то, что заполнили на листе спецификация. Они разлинованы под ГОСТ, на сколько позволяет Excel, слева основная надпись подгружена помощью изображений Page1.png, Page2.png сами изображения при желании можно корректировать. Старые листы заменяются автоматически при запуске.

Описание меню (вкладка на ленте Excel «Спецификация»)

Перенос спецификации.

  1. Сохранить сегодня: Сохраняет файл с новой датой в имени.
  2. Перенос спецификации: Подготовка спецификации к печати, аналог кнопки «Печать» на листе.
  3. Создать спецификацию: Создает новую спецификацию по умолчанию сохраняет в папку с надстройкой.
  4. Стиль R1C1: меняет стили таблиц Excel на R1C1 или A1 соответсвенно.
  5. Позиции: Корректирует позиции (сквозная нумерация)
  6. Кнопки Создает кнопки если они не появились автоматически

Версии.

  1. Очистить всё: Удаляет все версии файла, оставляет одну текущую.
  2. Сохранить: Сохраняет версию спецификации.
  3. Список версий: Показывает все сохраненные версии спецификации.
  4. Заменить дату: Меняет дату текущей версии файла — лист «Версии», если этого листа нет, создает лист и записывает информацию о первой версии.
  5. Пакетная обработка: Выполняет пакетную обработку записанных действий в нескольких файлах (или не пользоваться, или пользоваться аккуратно, плохая отладка).
  6. Снятие блокировки: Снимает блокировку на листе «Версии», если в этом есть необходимость.

Работа с базой.

  1. Переподключить Переподключает базу данных из файла «SpecDataBase.xlsx».
  2. Закрыть форму: Принудительно выгрузить из памяти форму «Добавить из базы».
  3. Добавить из базы: Добавляет элемент из базы данных. Аналог кнопки на листе.
  4. Надстройка Отображает/скрывает надстройку. Можно отредактировать шаблон вывода на печать
  5. Сортировать базу: Сортировка базы данных (после добавления новых элементов в базу).
  6. Открыть базу: Открывает файл базы данных для редактирования.
  7. Лист Спецификация
    1. Перенос: Подготовка спецификации к печати, аналог кнопки «Перенос спецификации» в меню.
    2. Добавить из базы: Добавляет элемент из базы данных. Аналог кнопки в меню.
    3. Очистка: Очистка листов «СО», «ВР», «Перенос» на выбор.
    4. Создать PDF СО и ВР: Создает PDF версии с листов СО и ВР одновременно. Сохраняется на рабочем столе в папке «PDF Спецификации».
  8. Лист Перенос (может быть скрыт) описание работы в «Правилах подготовки спецификации на печать» «В ручную»
    1. Перенос по строкам.
    2. Перенос по листам.
  9. Листы СО и ВР
    1. Добавить лист: Добавляет лист в спецификацию.
    2. Отправить на печать:
      1. «Печать листа» распечатает ТЕКУЩИЙ лист.
        1. Если выбрана «Печать в PDF» Сохраняет лист как PDF на рабочем столе в папке «PDF Спецификации»
        2. Если выбрана «Печать на А4, А3» отправляет на печать текущий лист на принтер по умолчанию.
      2. Кнопка «Пакетная печать» Печатает на принтере по умолчанию или создает PDF файлы сразу у нескольких выбранных файлов (все параметры нужно задать)
    3. Добавляет порядковый номер листа в колонтитуле

Правила заполнения спецификации:

  1. Спецификация заполняется на листе «Спецификация» строки в колонке «Наименования» пропускать НЕЛЬЗЯ.
  2. Если стоит позиция, то при переносе между «позициями» пропускается строка. Если Позиция отсутствует строка не пропускается, чтобы строка не пропускалась при налиции позиции в конце строки устанавливается символ «_». Чтобы не было пропуска при переносе устаналивается соответствующий пункт в Настройках переноса.
  3. Знак неразрывного пробела «_» пропадает на листах для печати.
  4. «вр» в строке позиции прописывается для создания «заметок» для ведомости объемов работ (лист ВР), игнорируется при создании «Спецификации» (лист СО).
  5. Если в колонках СО и ВР установлен (произвольный) символ, то при подготовке для печати с этого места будет перенос на новый лист.
  6. Если необходимо подчеркнуть строку вместо позиции ставим букву «ч». (ГОСТ 21.501-2011 5.7).

Правила подготовки спецификации на печать:

Автоматически (используется для новых спецификаций, если нет никаких изменений)

  1. Нажать «Печать» на листе, или «Перенос спецификации» в меню — Выбираем «На лист для печати».
  2. Где необходимо начать с нового листа добавляем разделитель в колонке «СО» и «ВР» (п. 6 правил заполнения)
  3. Если будет меньшее количество листов чем есть на листах СО и ВР то появляется запрос о необходимости удалить лишние. При нажатии «Нет» функция продолжает работать, но последние листы не удаляются.

В ручную (используется в случае если в спецификация делаются изменения, устанавливаются маркеры и т.п., чтобы «не поехало» форматирование)

  1. Нажать «Перенос» на листе, или «Перенос спецификации» в меню — Выбираем «На лист перенос».
  2. С листа «Перенос»
    1. Выбираем «Перенос по листам» (для первого листа НЕ использовать)
      1. Выбираем Ячейку «Позиции» на листе Перенос с которой будем переносить.
      2. На листе СО или ВР Выбираем ЛЕВУЮ ВЕРХНУЮЮ ячейку (сразу под ячейкой «Позиция») жмем ОК
      3. Выбираем необходимое количество листов для переноса
      4. НЕ ИСПОЛЬЗОВАТЬ ДЛЯ ПЕРВОГО ЛИСТА!!!!
  3. Для того чтобы перенести несколько строк выбираем «Перенос по строкам», выбирается все аналогично «Переносу по листам» только задается необходимое количество строк, а не листов, для переноса на первом листе использовать этот способ с указанием необоходимого переноса строк.
  4. Кнопка «Добавить лист» добавляет лист в СО или ВР

Работа с базой данных

Добавление новых элементов

  1. Для редактирования базы открыть файл SpecDataBase.xlsx, Кнопка Спецификация — Работа с базой — Открыть базу, Лист База_СО (имя не менять). В первых четырех колонках нельзя добавлять цифры.
    • Поле «Примечание» — можно добавить необходимую информацию об элементе, отображается на форме, при наведении на «Тип оборудование материала» (после выбора элемента)
    • Поле «1» — просто порядковый номер элементов
    • Поле «Нов.» метка для новых элементов, чтобы их удобнее было найти (смысловой нагрузки не несет).
    • Поле «Сортировка» — Для сохранения порядка сортировки элементов внутри подкатегории (иногда Excel сортирует неправильно).
  2. После добавление элементов необходимо переподключить базу данных, кнопка «Переподключить» на вкладке спецификация.

Добавление элементов в спецификацию

  1. На листе «Спецификация» жмем кнопку «Добавить из базы» или в меню с аналогичным названием.
  2. Выбираем необходимый элемент.
  3. Выбираем строку в которую необходимо вставить нашу позицию.
  4. И жмем кнопку вставить.
    После работы макроса комбинация клавиш Ctrl + Z (Отмена) не работает, будьте внимательны к содержимому.

По умолчанию форма не выгружается из памяти, поэтому если появляются проблемы с отображением формы (обычно такое встречается, когда параллельно работаешь с несколькими листами), то форму надо «принудительно закрыть» кнопка «Закрыть форму» на вкладке Спецификация – Работа с базой


Представляю вашему вниманию шаблон спецификации оборудования, изделий и материалов выполненный в программе Microsoft Excel. Данный шаблон работает во всех версиях программ Microsoft Excel.

Данный шаблон спецификации выполнен для листа формата А4. Графы в спецификации заполнены в соответствии с формой 1 — ГОСТ 21.110-2013 (действующий). Шрифт в шаблоне принимается GOST type A. Если вам данный шрифт не подходит, его можно изменить как на листе «СВОДНАЯ», так и на листе «Спецификация».

Спецификация оборудования и материалов в Excel

Использовать спецификацию нужно в следующем порядке:

1. Все технические характеристики оборудования, изделий и материалов вы указываете ТОЛЬКО на листе «СВОДНАЯ». На этом же листе, вы можете копировать, вставлять, удалять, редактировать спецификацию как вам угодно. Все данные которые вы указываете на данном листе, также отображаются на листе «Спецификация».

2. На листе «Спецификация» вы уже получаете готовую спецификацию заполненную по форме 1 — ГОСТ 21.110-2013 со штампами. На данном листе вам осталось только заполнить штампы.

3. Печать спецификации выполняется с листа «Спецификация». Для того что бы распечатать спецификацию, вам нужно выбрать область печати. Для этого перейдите на последний лист спецификации и передвиньте границу синей рамки, используя ползунок, к нижней границе листа. При этом активные листы для печати будут выделены белым цветом, а неактивные листы – серым цветом.

Область печати в Excel

Всего наилучшего! До новых встреч на сайте Raschet.info.

Excel, ГОСТ 21.110-2013, Спецификация

Благодарность:

Если вы нашли ответ на свой вопрос и у вас есть желание отблагодарить автора статьи за его труд, можете воспользоваться платформой для перевода средств «WebMoney Funding» и «PayPal».

Данный проект поддерживается и развивается исключительно на средства от добровольных пожертвований.

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

Понравилась статья? Поделить с друзьями:
  • Макрос для excel для расширенного фильтра
  • Макрос в excel создаст лист
  • Макрос для excel автосохранение
  • Макрос для excel range
  • Макрос в excel с окном