Страницы: 1
RSS
Подпись сообщения в outlook, Добавление данных пользователя из excel в подпись сообщения в outlook
 
Есть excel-й файл, в котором содержаться данные о пользователи(ФИО, тел). Надо эти данные добавлять в подпись сообщения в outlook

Код
Sub Подпись()
 '
 Dim OutApp As Object, OutMail As Object, Strbody As String, r As Date, SigString As String, Signature As String
 Set OutApp = CreateObject("Outlook.Application" ;) 
 OutApp.Session.Logon: Set OutMail = OutApp.CreateItem(0)
 On Error Resume Next
 r = Format(Now(), "dd mmmm yyyy" ;) 
 Strbody = "Добрый день!" 
[B] Вот здесь должны быть данные из excel[/B]


 If Dir(SigString) <> "" Then
 Signature = GetBoiler(SigString)
 Else
 Signature = ""
 End If

 With OutMail
 .To = "": .CC = "": .BCC = "": .Subject = "":
 .Body = Strbody & vbNewLine & vbNewLine & Signature
 .Attachments.Add ("C:\test.xls" ;) 
 .Display 'or use .send
 End With
 On Error GoTo 0: Set OutMail = Nothing: Set OutApp = Nothing
 End Sub


 Function GetBoiler(ByVal sFile As String) As String
 '
 Dim fso As Object
 Dim ts As Object
 Set fso = CreateObject("Scripting.FileSystemO bject" ;) 
 Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
 GetBoiler = ts.readall
 ts.Close
 End Function
 
Strbody = "Добрый день!" & vbcrlf & [a1].value
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Спасибо!
Так будет браться значение только из ячейки а1, а если у меня будут в столбце а разные фамилии. И где надо добавить путь к excel-му файлу?
Можно ли подхватывать данные под которыми пользователь входит на компьютер?
Изменено: Natalli01 - 17.03.2013 16:33:39
 
1. Если нужно добавить все значения со столбца "А" в текст письма - тогда так:
Код
strBody = Join(Application.Transpose(ActiveSheet.UsedRange.Columns("A:A").Value), vbCrLf) 

2. Путь к вложению прописывать так:
Код
.Attachments.Add ("C:\test.xls")

3. Какие данные? Имя пользователя -
Код
application.username

И куда подхватывать? :)
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Т.е. подпись должна быть такой:

ФИО(которое берется из столбца А)
Должность(bз столбца В)
№ тел(из столбца С)
e-mail(из столбца D)
 
Если у Вас это всё вписано не в 1й строке, тогда просто поменяйте a1:d1 на нужную строку:
Код
 strbody = Join(Application.Transpose(Application.Transpose(Range("a1:d1").Value)), vbCrLf)
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Допустим, на компьютер входит Иванов, надо чтобы данные из файла excel брались для Иванова, т.е. № телефона, e-mail
а если, входит Петров, то для петрова....
 
тогда нужна таблица сопоставлений
в виде:
Столбец А - правильное имя пользователя в домене, по которому будем подтягивать остальные данные
Столбец Б - должность
... и так далее
Потом просто циклом пройтись - найти нужную фамилию и добавить данные в переменную

ps. Делайте файл, напишу макрос.
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
ок
 
Код
Public Function strFindBody$()
    Dim i&, lR&, sUserName$
    sUserName = Application.UserName
    With Sheets(1)    'можете поменять лист
        lR = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = 2 To lR
            If .Cells(i, 1).Value = sUserName Then
                strFindBody = Join(Application.Transpose(Application.Transpose(.Cells(i, 2).Resize(, 4).Value)), vbCrLf)
                Exit For
            End If
        Next
    End With
End Function
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Огромное СПАСИБО!!!!


p.s.
1. Может быть когда-то сталкивались с таким. В файле excel 2003 есть макросы, связные с БД access 2003 надо их преобразовать в excel 2010. Подскажите, как это лучше всего сделать , пожалуйста

2. В excel 2003 была кнопка Создать Olap куб , а в excel 2010 уже нет. Может знаете, где она находится или аналог. Многие пишт про надстройку Power pivot, но что-то я не нашла как с помощью ее строить Olap куб
Изменено: Natalli01 - 20.03.2013 23:27:55
 
А чем отличаются от 2010?
Ps. Лучше создавайте новую тему
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
при преобразовании access не отрабатыват запрос на создание новой таблицы

Темы уже создавала:

Как создать OLAP куб в excel 2010

Преобразовать макрос с excel 2003 в excel 2010
Изменено: Natalli01 - 20.03.2013 23:31:06
 
Добрый день! хотелось еще спросить, а как можно добавлять картинку в подпись
И куда вставить (что-то подобное)
Range("B1").Select
Selection.Font.Bold = True
чтобы текст, который берется из ячейки B2 был жирным
Изменено: Natalli01 - 31.03.2013 10:30:06
 
Поищите в поиске про свойство HTMLBody
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Добрый день!
Есть данный макрос, по автоматической отправки нужной странице через Outlook, как добавить тему письму и подпись, чтобы они заполнялись автоматически?
Код
 ThisWorkbook.Sheets("Отчет").Copy
    With ActiveWorkbook
        .SendMail Recipients:=Array("test@test.kz"), Subject:="Статистика"
        .Close SaveChanges:=False
    End With
    If ThisWorkbook.Saved = False Then
    ThisWorkbook.Save
    End If
    Application.Quit
End Sub
Изменено: Вячеслав - 05.02.2025 04:08:35
 
Цитата
SendMail
Такой метод Вам не подойдет
Как отправить письмо из Excel?
Вставить в письмо подпись из Outlook через VBA
Согласие есть продукт при полном непротивлении сторон
Страницы: 1
Читают тему
Наверх