Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 21.11.2008, 10:46   #11
Exo
Форумчанин
 
Аватар для Exo
 
Регистрация: 25.09.2007
Сообщений: 102
По умолчанию

А если усложнить.

Например, подставить e-mail по условию.

Допустим в документе есть скрытый лист с двумя столбцами

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

Макрос узнает какой пользователь сейчас юзает макрос (Application.UserName), далее ищет на скрытом листе соответствующего данному пользователю начальника, подставляет мыло и отправляет.

Важно, не очень хочется заставлять пользователя сохранять отчет, куда интереснее было бы если бы макрос сам сохранял в темпа отчет (пусть да же если нужно создавая папку Temp на диске C), НО после отправки удалял. Отчет не имеет смысла хранить на жестком диске, ибо его всегда можно найти в отправленных.

Для чего может быть нужно:
человек заполняет отчет (ну скажем по затратам на командировку), после заполнения жмакает кнопку «post report» и отчет уходит его начальнику + было бы неплохо если бы в копии стояли несколько статический e-mail (например финансового директора и главного бухгалтера)


З.Ы. SAM888 Ваш макрос прекрасно работает на Outlook 2003
Exo вне форума
Старый 21.11.2008, 13:38   #12
Erroreus
 
Регистрация: 12.11.2008
Сообщений: 7
По умолчанию

Есть макрос, который отсылает листы книги без формул, название листа - адрес получателя, помогите избавится от подтверждения на отсылку каждого листа, их много, неохота сидеть и подтверждать отсылку каждого листа. Shortcut: Ctrl+s


Sub Macro1()
'
'
' Keyboard Shortcut: Ctrl+s
'
On Error GoTo Err
Const FN = "C:\test.xls"
Dim i As Integer
If Application.MailSystem = xlMAPI Then
For i = 1 To Worksheets.Count
If Dir(FN, vbNormal) <> "" Then Kill (FN)
Worksheets(i).Copy
With Workbooks(Workbooks.Count)
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
' Rows("26:94").Select
' Selection.Delete Shift:=xlUp
.SaveAs Filename:=FN
.SendMail Recipients:=.Worksheets(1).Name, _
Subject:="Sales stat for " + .Worksheets(1).Name
.Close Not (.Saved), FN
End With
Next i
If Dir(FN, vbNormal) <> "" Then Kill (FN)
MsgBox "OK"
Else
MsgBox "No mail system installed"
End If
Exit Sub
Err:
MsgBox "ERROR"


End Sub
Erroreus вне форума
Старый 21.11.2008, 14:44   #13
Exo
Форумчанин
 
Аватар для Exo
 
Регистрация: 25.09.2007
Сообщений: 102
По умолчанию

Цитата:
Сообщение от Exo Посмотреть сообщение
А если усложнить.

Например, подставить e-mail по условию.

Допустим в документе есть скрытый лист с двумя столбцами

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

Макрос узнает какой пользователь сейчас юзает макрос (Application.UserName), далее ищет на скрытом листе соответствующего данному пользователю начальника, подставляет мыло и отправляет.

Важно, не очень хочется заставлять пользователя сохранять отчет, куда интереснее было бы если бы макрос сам сохранял в темпа отчет (пусть да же если нужно создавая папку Temp на диске C), НО после отправки удалял. Отчет не имеет смысла хранить на жестком диске, ибо его всегда можно найти в отправленных.

Для чего может быть нужно:
человек заполняет отчет (ну скажем по затратам на командировку), после заполнения жмакает кнопку «post report» и отчет уходит его начальнику + было бы неплохо если бы в копии стояли несколько статический e-mail (например финансового директора и главного бухгалтера)


З.Ы. SAM888 Ваш макрос прекрасно работает на Outlook 2003

Вот я что смог родить, мой нубский вариант:

Код:
Sub Mail()
Dim x As Range, y As Range, Fst As String, Boss As String, OutlookApp As Object, SM As Object
   
    User = Application.UserName
    Set x = Columns("B").Find(User)
    Fst = x.Address
    Boss = Range(Fst).Offset(0, 6).Value
    
    Set OutlookApp = CreateObject("Outlook.Application")
    Set SM = OutlookApp.CreateItem(olMailItem)  'Создаем объект

    SM.To = Boss                                'Вставьте требуемый электронный адрес
    SM.Subject = "Report"                       'Заполнение поля "Тема"
    SM.Body = "TextReport"                      'Заполнение поля "Сообщение"
    SM.Attachments.Add "C:\Temp\abcd.xls"       'Путь к прикрепляемому файлу

    On Error Resume Next                        'Перехват возможной ошибки
    SM.Send                                     'Посылаем сообщени

    Set SM = Nothing                            'Очищаем использовавшиеся объекты
    Set OutlookApp = Nothing

End Sub
НО нет автосохранения и нет адресов для Копии письма...
Exo вне форума
Старый 19.02.2009, 17:18   #14
REcKon
Новичок
Джуниор
 
Регистрация: 23.10.2008
Сообщений: 2
По умолчанию

Цитата:
Сообщение от SAS888
...
Код:
Sub Mail()

    Dim OutlookApp As Object, SM As Object
    
    Set OutlookApp = CreateObject("Outlook.Application")
    Set SM = OutlookApp.CreateItem(olMailItem)  'Создаем объект
    
    SM.To = "User@mail.ru"                      'Вставьте требуемый электронный адрес
    SM.Subject = "Report"                       'Заполнение поля "Тема"
    
SM.Body = "TextReport"                      'Заполнение поля "Сообщение"
    SM.Attachments.Add "C:\Temp\abcd.xls"       'Путь к прикрепляемому файлу
    
    On Error Resume Next                        'Перехват возможной ошибки
    SM.Send                                     'Посылаем сообщение
    
    OutlookApp.Quit                             'Закрываем OutLook (если нужно)
    
    Set SM = Nothing                            'Очищаем использовавшиеся объекты
    Set OutlookApp = Nothing

End Sub
...
Подскажите пожалуйста, как текст поля "Сообщения" сделать в несколько строчек.
У меня все в одну строчу получается, а как перенести на другую, не знаю...
REcKon вне форума
Старый 19.02.2009, 17:31   #15
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
как текст поля "Сообщения" сделать в несколько строчек
Попробуйте такие варианты:
Код:
    SM.Body = "Первая строка" & vbCrLf & "вторая строка" & vbCrLf & "третья строка"

    SM.Body = "Первая строка" & vbCr & "вторая строка" & vbCr & "третья строка"

    SM.Body = "Первая строка" & vbLf & "вторая строка" & vbLf & "третья строка"
Один из них должен Вам подойти.
EducatedFool вне форума
Старый 25.02.2009, 13:48   #16
REcKon
Новичок
Джуниор
 
Регистрация: 23.10.2008
Сообщений: 2
По умолчанию

Спасибо!
То, что нужно!
REcKon вне форума
Старый 17.03.2009, 14:25   #17
sakulich
Новичок
Джуниор
 
Регистрация: 17.03.2009
Сообщений: 1
По умолчанию

Подскажите пожалуйста, а можно ли сделать макрос который бы подставлял определенный адрес в копию всех писем при создании. но чтобы можно этот адрес было удалить, если все таки эта копия не нужна
sakulich вне форума
Старый 19.04.2009, 20:44   #18
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
P.S. Не забудьте в Tools->Reference подключить библиотеки "Microsoft Office xx Object Library" и "Microsoft Outlook xx Object Library".
только вот что-то я не вижу у себя библиотеки "Microsoft Outlook xx Object Library" и естественно ничего не могу сделать.
подскажите пожалуйста, в чем дело (Excel 2003)
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Microsoft Office Outlook Событие автоматической отправки писем из папки Исходящие при появлении интернета fandm Софт 0 23.04.2008 10:15
помогите, пожалуйсто, написать макрос для excel bacalavr Microsoft Office Excel 2 04.04.2008 11:39
Макрос в Excel для обработки группы файлов ad_sum Microsoft Office Excel 1 29.12.2007 16:56
MS Excel и MS Outlook (2003) отсылка писем IceB Microsoft Office Excel 1 02.07.2007 13:32
Microsoft Office Outlook : отправка писем gaybiza Софт 1 18.11.2006 00:14