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

Страницы: 1
Умный шаблонизатор для создания счетов, договоров и т.п., Вопрос по выводу договора
 
Здравствуйте. Пытался до последнего решить свои вопросы по созданию шаблонизатора сам: http://yadi.sk/d/FnDGj4pXJd7GN
Возможно ход решения своих вопросов я выбрал не совсем правильный, но суть такова:

В файл импортируется исходный документ онлайн бухгалтерии (во время запуска выдатс запрос, что не нашел файл, можно отменить выбор)
кроме импорта значения для формирования цен можно вставить вручную в другую вкладку, далее создается автоматически: Коммерческое предложение, Товарный чек, Счёт фактура, и Договор.
Все кроме договора уже готово.
Сам договор создается из шаблона с переменными, которые при нажатии кнопки "Сформировать" перегоняет шаблон с заменой переменных на нужные значения в колонку С12:K41 (или другой указанный мной), все уже работает как надо. Однако если прошлые документы выводятся без проблем, то с текстом договора оказалось сложнее, Ексель на экране в Страничном режиме показывает одно, а по факту в просмотре и при печати другое.

Вопрос. Возможные пути решения проблемы ,чтобы выводить текст договора в нормальном виде?
Вкладка "Договор Торг" в файле.

Пытался:
1. Как ни подгоняй, а для универсального шаблона красиво вывести договор без появившегося пустого места между графами и в конце страницы да и еще с проблемой высоких по содержанию неразделимых ячеек, у меня не получилось.
2. Задумал вывести текст договора в объекте WinWord (по нажатию Кнопка 45, пока еще не назвал)

возникли вопросы:
По коду возможно много мусора, так как копирую с разных источников, и иногда делаю что-то по аналогии, не понимая полностью всей сути.
Код
 Sub Кнопка45_Щелчок()

If Cells(3, "BS") = 0 Then
Dim x As OLEObject
Set x = ActiveSheet.OLEObjects.Add(ClassType:="Word.Document", Link:=True _
        , DisplayAsIcon:=True, Left:=400, Top:=120, Width:=800, Height:=2000)

Cells(3, "BS") = 1
End If

textinsert = Cells(12, "C") & Chr(10) & Cells(13, "C") & Chr(10) & Cells(14, "C") & Chr(10) & Cells(15, "C") & Chr(10) & Cells(16, "C") & Chr(10) & Cells(17, "C") & Chr(10) & Cells(18, "C") & Chr(10) & Cells(19, "C") & Chr(10)

Dim oOLEObj As OLEObject, oWD As Object, oNewDoc As Object, oRng As Object, _
    blStBarState As Boolean, sOLE As String, iOLE As Long

For Each oOLEObj In ActiveSheet.OLEObjects
    iOLE = iOLE + 1

   With oOLEObj
        If .progID Like "Word.Document*" Then
           .Activate
           .Object.Range.Text = textinsert
            Range("C12:K41").Copy
            .Object.Range.Paste
    End If
    End With
Next

If iOLE = 0 Then

Cells(3, "BS") = 0
End If
End Sub
вообще процедура вставки происходит здесь:
Код
For Each oOLEObj In ActiveSheet.OLEObjects
    iOLE = iOLE + 1
   With oOLEObj
        If .progID Like "Word.Document*" Then
           .Activate
           .Object.Range.Text = textinsert
            Range("C12:K41").Copy
            .Object.Range.Paste
       End If
    End With
Next
Мне нужно не табличной вставкой вставить  textinsert,
Код
 .Object.Range.Text = textinsert
которая выше получает нужный текст договора, это происходит, на данном этапе было бы идеально макросом в ворде автоматически произвести форматирирование
потом я хочу вставить (т.е. добавить) в табличном виде реквизиты контрагентов, кодом
Код
Range("C41:K41").Copy
однако на даном шаге у меня не получилось добавить текст, он только заменяется. Т.е. предыдущий текст пропадает, новый вставляется. А мне нужно чтобы добавилось.

После вставки почему то ширина листа внедренно объекта постоянно сбивается, хотя если закрыть внедрение и открыть по значку Внедрения (иконка возле названия Договора, форматирование сохраняется, пробывал вставлять область, а не иконку, не меняет проблемы)
Итоговые вопросы:
1. Как в один объект внедрения вставить 2 и более (далее например если понадобиться) текста из таблицы.
2. Как при открытие внедренного объекта запустить записанный макрос или набранный макрос (записанный мною ранее макрос никак не сохранялся в этом документе)

Я согласен на создание отдельного вордовского файла, но с Олеобъектами и передачей туда данных что=то у меня не пошло.
Пожалуйста помогите. заранее спасибо.
Изменено: norpe3s - 28.02.2014 04:43:37
Адрес файла в ссылающейся ячейки брать из другой ячейки
 
Здравствуйте.

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

Я эти файлы обрабатываю в своем файле, считывая значения ячеек по ссылкам вида: ='[Счёт №1 от 07 февраля 2014 г..xls]Счёт'!$B$11 например.

Можно ли название "Счёт №1 от 07 февраля 2014 г..xls" брать из яйчеки в моем файле, два файла будут находится в одной директории, пути не нужны.
В идеале конечно было бы чтобы ячейки обновлялись после смены названия файлы в нужной ячейке.

Помогите пожалуйста, поиск дал похожие темы, но чаще всего люди просят при сохранении назвать файл как им нужно из ячейки.
Изменено: norpe3s - 07.02.2014 16:34:46
Страницы: 1
Наверх