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

Страницы: 1
Вставка картинки из файла Excel в документ Word, Вставка картинки из файла Excel в документ Word
 
Цитата
написал:
моя печать   Код ? 1t.WrapFormat.Type = wdWrapNoneВот это, скорей всего, отвечает за то "в тексте" она будет или "за текстом". Вот  тут  можно посмотреть какие есть варианты, вам, я так понял, подойдет wdWrapBehind.
Спасибо!!!
Это побороли. Исправил код и картинка вставилась "за текстом"

А как по поводу места в документе? возможно привязать картинку к "закладке" в Word?
Вставка картинки из файла Excel в документ Word, Вставка картинки из файла Excel в документ Word
 
доброго времени суток

на одном из сторонних форумов нашёл код для вставки в создаваемый документ Word картинки формата PNG (код ниже)

при вставке в документ Word картинки с печатью она вставляется в определённое место с типом форматирования "В тексте"

помогите, пожалуйста, решить мою проблему;

1) как сделать после вставки картинки её "За текстом", а не "В тексте"
2) как "привязать" вставку картинки к опреднённому месту в документе (например, к какой-то закладке), т.к. документ Word (например письмо или справка) может быть как на 1 лист, так и на несколько

заранее спасибо

Код
Sub InsertPicture() 

Dim wdTable As Object
Dim objWrdDoc As Object
Dim strFile As String
Dim p As InlineShape, t As Object
Dim pShape As Object

On Error Resume Next

strFile = Range("E8").Value                           'путь к документу (можно "d:\...\Документ.docx")
Set objWrdApp = GetObject(, "Word.Application")       'пытаемся подключится к объекту Word
If objWrdApp Is Nothing Then
    Set objWrdApp = CreateObject("Word.Application")  'если приложение закрыто - создаем новый экземпляр
    Set objWrdDoc = objWrdApp.Documents.Open(strFile) 'открываем документ Word - документ с таким именем должен существовать
    objWrdApp.Visible = True
End If
Set objWrdDoc = objWrdApp.Documents.Open(strFile)
On Error GoTo 0
    
Set WdRange = objWrdDoc.Content
Set wdTable = WdRange.Tables(1)

Set p = wdTable.Rows(1).Cells(1).Range.InlineShapes.AddPicture(Range("C11").Value, False, True) ' путь к картинке (можно "d:\...\печать.png")

'вставка в документ
p.ScaleWidth = 20
p.ScaleHeight = 20
Set t = p.ConvertToShape
t.WrapFormat.Type = wdWrapNone

t.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
t.RelativeVerticalPosition = wdRelativeVerticalPositionPage
t.Left = 260                                                    'значения, конкретно под этот случай
t.Top = 370                                                     'значения, конкретно под этот случай

End Sub
Активация окна Excel после внесения в него подготовленных данных
 
хорошо, принято. в правилах форума, просто, такого не нашёл

Цитата
только решена не кодом а  doober
так я ж и не говорю, что мной решена

ещё раз всем спасибо !
Активация окна Excel после внесения в него подготовленных данных
 
проблема решена кодом

спасибо вам за попытку помощи!
Код
Sub Test()
    Dim Sh As Worksheet, wb As Workbook, FileStart As String, FileNew As String
    Application.ScreenUpdating = False
    Set Sh = ThisWorkbook.Worksheets("1")
    FileSt = Sh.Range("C30").Value
    FileNew = Sh.Range("C33").Value
    Set wb = Workbooks.Open(FileSt)
    wb.SaveAs Filename:=FileNew, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    wb.Activate
    Application.Wait (Now() + TimeValue("00:00:02"))
    Shell "cmd /C start """" ""\\fuib.com\kho\DOCUMENTYOOKUTU\Кулиничев\! открытие счетов\avto\готовые документы\""", vbNormalFocus
    ThisWorkbook.Close (True)
    Application.ScreenUpdating = True

End Sub
Текст условия If Then Else в зависимости от расширения файла (".doc" или ".docx")
 
Спасибо огромное!
Активация окна Excel после внесения в него подготовленных данных
 
Доброго времени суток! Есть один небольшой скрипт, суть его работы:

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

скрипт находится в файле "1.xlsm"

2) после выполнения скрипта получается 3 файла:
- "1.xlsm" со скриптом
- исходный шаблон ".... .doc" размещён в одном каталоге (адрес данного файла указан в ячейке C30 файла "1.xlsm")
- новый файл ".... .doc" помещается в другом каталоге (адрес данного файла указан в ячейке C33 файла "1.xlsm")

3) по итогу:
- активируется окно приложения Word и открывается окно "Проводника", где сохранён новый файл. далее сотрудник, которому нужен заполненный шаблон переносит его куда-то в другой каталог (или отправляет кому-то на почту), т.е. по своему усмотрению

Но появились шаблоны некоторых документов и в Excel, в не Word, для которых я сделал похожий скрипт (текст ниже) и возникли небольшие проблемы при его выполнении:

1) код "objExcel.Application.Visible = False" должен скрывать окно программы Excel при внесении данных, но окно Excel появляется на 1-2 секунды и потом закрывается

2) код "Workbooks(2).ActivateActive" и "Window.WindowState = xlMaximized" должен активировать окно с новым файлом Excel, но активации окна не производится. код "Windows(".....xls").Activate" не подходит, т.к. имя новой таблицы может меняться и указано это только в ячейке C31 файла "1.xlsm", т.е. вручную каждый раз прописывать не вариант

Помогите, пожалуйста, разобраться с этими проблемками ...

Скрины прилагаю

Заранее спасибо
Код
Sub obj2() 'скрипт копирования файла excel из таблицы excel и заполнение ячеек на основании таблицы excel

Dim objExcel As Object
Dim FileStart
Dim FileNew

'обновление ячейки для добавления времени в имя файла
Range("E29").FormulaR1C1 = "=NOW()"

Set objExcel = CreateObject("Excel.Application")

'исходный файл (шаблон), можно указать путь "g:\2.xlsx" или "\\fuib.com\kho\DOCUMENTYOOKUTU\..."
FileSt = Range("C30").Value

'новый файл, можно указать путь "g:\5.xlsx" или "\\fuib.com\kho\DOCUMENTYOOKUTU\..."
FileNew = Range("C33").Value
    
Set objWorkbook = Workbooks.Open(FileSt)

'если написать objExcel.Application.Visible = True, то Шаблон появляться будет
objExcel.Application.Visible = False
   
' описание файлов при сохранении https://www.mrexcel.com/board/threads/vba-saveas-fileformat-variable.759381/
ActiveWorkbook.SaveAs _
         Filename:=FileNew, _
         FileFormat:=xlOpenXMLWorkbook, _
         CreateBackup:=False
objExcel.Quit

'открытие нового файла
Dim objExcelApp As Object
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = Workbooks.Open(FileNew)
    objExcel.Visible = True  'если написать oobjExcel.Visible = False, то Шаблон появляться не будет

'активация окна нового файла
Workbooks(2).Activate
ActiveWindow.WindowState = xlMaximized

'пауза 2 сек.
Application.Wait (Now() + TimeValue("00:00:02"))

'открытие "Проводника" в папке; источник https://vremya-ne-zhdet.ru/vba-excel/otkryt-papku-v-provodnike/#Otkrytie_papki_v_provodnike
Shell "cmd /C start """" ""\\fuib.com\kho\DOCUMENTYOOKUTU\Кулиничев\! открытие счетов\avto\готовые документы\""", vbNormalFocus

End Sub
Изменено: Олег Кулиничев - 30.12.2021 02:51:52
Проблема при отправке почты из Excel через Outlook (добавление нескольких файлов в текст письма Outlook)
 
Пока работает без ошибок!
ОГРОМНОЕ человеческое спасибо!
Изменено: Олег Кулиничев - 14.11.2021 03:13:05
Проблема при отправке почты из Excel через Outlook (добавление нескольких файлов в текст письма Outlook)
 
Доброго времени суток

Сделал таблицу для отправки сообщений различным адресатам. При выборе различной тематики сообщения подтягивается:
1) в ячейку G3 - адресат
2) в ячейку G4 - тема сообщения
3) в ячейку G5 - текст сообщения
4) в ячейку G6 - пустое значение, ссылка на вложение или ссылки на вложения

К примеру, в одном из вариантов выбора G6 имеет вот какое значение:
Код
"\\fuib.com\kho\DOCUMENTYOOKUTU\Кулиничев\! открытие счетов\закрытие счетов\заявление о закрытии счёта ЮЛ.doc"; "\\fuib.com\kho\DOCUMENTYOOKUTU\Кулиничев\! открытие счетов\тарифы\Раздел 1. Расчетно-кассовое обслуживание.doc"; "\\fuib.com\kho\DOCUMENTYOOKUTU\Кулиничев\! открытие счетов\реквизиты на оплату\!Реквизиты - закрытие счетов (КНО).doc"
Нашёл на просторах интернета скрипт для отправки сообщения из Excel адресатy через Outlook, но скрипт добавляет в сообщение только первый файл из тех, которые указаны в G6 (скрин прилагаю).

Помогите, пожалуйста, дописать скрипт так чтобы добавлялись все файлы, пути которых указаны в ячейке G6 (они размещены на сетевых дисках в различных подпапках. Решения проблемы на форуме и сторонних сайтах, к сожалению, я не нашёл. Если это, по каким-то причинам, невозможно, к сожалению, не силён в VBA, то, может, предложите какие-то варианты. Буду дальше копаться по сайтам.

Заранее спасибо.

Код
Option Explicit
 
Sub Send_mail_shablony_documentov()  'Источник https://www.excel-vba.ru/chto-umeet-excel/kak-otpravit-pismo-iz-excel/

' макрос для отправки сообщений

    Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
 
    Application.ScreenUpdating = False
    On Error Resume Next
    'пробуем подключиться к Outlook, если он уже открыт
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear 'Outlook закрыт, очищаем ошибку
    If objOutlookApp Is Nothing Then
        Set objOutlookApp = CreateObject("Outlook.Application")
    End If
    'раскомментировать строку, если в Outlook несколько учетных записей и нужно подключиться к конкретной(только если Outlook закрыть)
    '   [параметры]: Session.Logon "имя профиля","пароль",[показывать окно выбора профиля], [запускать в новой сессии]
    'objOutlookApp.Session.Logon "profile","1234",False, True
    Set objMail = objOutlookApp.CreateItem(0)   'создаем новое сообщение
    'если не получилось создать приложение или экземпляр сообщения - выходим
    If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub
 
    sTo = Range("G3").Value             'Кому(можно заменить значением из ячейки - sTo = "AddressTo@mail.ru")
    sSubject = Range("G4").Value        'Тема письма(можно заменить значением из ячейки - sSubject = "Автоотправка")
    sBody = Range("G5").Value           'Текст письма(можно заменить значением из ячейки - sBody = "Привет от Excel-VBA")
    sAttachment = Range("G6").Value     'Вложение(полный путь к файлу. Можно заменить значением из ячейки или путь - sAttachment = "C:\Temp\Книга1.xls")
    
    'создаем сообщение
    With objMail
        .To = sTo 'адрес получателя
        '.CC = Range("B3").Value 'адрес для копии
        .BCC = "" 'адрес для скрытой копии
        .Subject = sSubject 'тема сообщения
        .Body = sBody 'текст сообщения
        '.HTMLBody = sBody 'если необходим форматированные текст сообщения(различные шрифты, цвет шрифта и т.п.) / .Body = sBody - обычный текст сообщения
        'добавляем вложение, если файл по указанному пути существует(dir проверяет это)
        If sAttachment <> "" Then
            If Dir(sAttachment, 16) <> "" Then
                .Attachments.Add sAttachment 'просто вложение
                'чтобы отправить активную книгу вместо sAttachment указать ActiveWorkbook.FullName
            End If
        End If
        .display 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра; .Send - сразу отправка
    End With
 
    Set objOutlookApp = Nothing: Set objMail = Nothing
    Application.ScreenUpdating = True
End Sub
При выборе ОКПО копировать данные по предприятию
 
whateverlover, Спасибо! Заработало!
При выборе ОКПО копировать данные по предприятию
 
доброго времени суток

есть таблица на 2 листа:
1) "клиент" с большим количеством данных, где в графе С указывается код ОКПО предприятия, а далее название, адрес и т.п. и так еще около 50-55 отдельных ячеек по этой строке; на сейчас в таблице уже около 1000 строк и будет увеличиваться. у каждого предприятия свой код ОКПО, т.е. значение уникальное вдоль всей графы С
2) "инфо по клиенту" - при вставке в объединённой ячейке H2:L2 любого кода ОКПО, содержащегося на первом листе, на втором листе отображается сводная информация по предприятию плюс некоторые расчёты

написал простенький скрипт чтобы при его выполнении значение кода ОКПО копировалось (например из ячейки С536) и вставлялось на другой лист в ячейки H2:L2, но для этого ячейка должна быть под курсором

помогите, пожалуйста, вот с чем. нужно чтобы копирование производилось из той ячейки графы С, где в строке находится курсор
например, выделена ячейка АС15 - копирование производится из ячейки С15
Код
    ActiveCell.Offset(0, 0).Select
    Selection.Copy
    Sheets("инфо по клиенту").Select
    Range("H2:L2").Select
    ActiveSheet.Paste
End Sub
Изменено: Олег Кулиничев - 11.07.2021 21:03:39
Страницы: 1
Наверх