Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Оправка Листа по почте - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Оправка Листа по почте (Макросы/Sub)
Оправка Листа по почте
ProstaK Дата: Пятница, 04.08.2017, 00:56 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
так как два вопроса в одной теме задавать нельзя, вдогонку предыдущему задам еще один вопрос.
На просторах интернета нашел код для отправки через Outlook активного Листа из рабочей книги
Но проблема в том, что на листе присутствуют фигуры и элементы управления, которые тоже отправляются почтой.
Вопрос, можно ли, сделать так что бы отправлялась только текстовая часть документа?
К сообщению приложен файл: ac_sot_3.xlsb(29Kb)


Сообщение отредактировал ProstaK - Пятница, 04.08.2017, 00:59
 
Ответить
Сообщениетак как два вопроса в одной теме задавать нельзя, вдогонку предыдущему задам еще один вопрос.
На просторах интернета нашел код для отправки через Outlook активного Листа из рабочей книги
Но проблема в том, что на листе присутствуют фигуры и элементы управления, которые тоже отправляются почтой.
Вопрос, можно ли, сделать так что бы отправлялась только текстовая часть документа?

Автор - ProstaK
Дата добавления - 04.08.2017 в 00:56
and_evg Дата: Пятница, 04.08.2017, 06:46 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 39 ±
Замечаний: 0% ±

Excel 2007
ProstaK, так перед отправкой удалите эти элементы
[vba]
Код
ActiveSheet.DrawingObjects.Delete
[/vba]
А если нужно что бы в исходном файле эти элементы остались, то закройте этот файл без сохранения
 
Ответить
СообщениеProstaK, так перед отправкой удалите эти элементы
[vba]
Код
ActiveSheet.DrawingObjects.Delete
[/vba]
А если нужно что бы в исходном файле эти элементы остались, то закройте этот файл без сохранения

Автор - and_evg
Дата добавления - 04.08.2017 в 06:46
ProstaK Дата: Пятница, 04.08.2017, 08:44 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

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

Автор - ProstaK
Дата добавления - 04.08.2017 в 08:44
AndreTM Дата: Пятница, 04.08.2017, 09:00 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 496 ±
Замечаний: 0% ±

2003 & 2010
Ну так а в чем проблема?

Создайте копию листа, и уже из неё удалите всё ненужное. Затем отправьте эту копию (в аутлуке создастся собственное вложение). После этого лист-копию можно удалить без сожаления.


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеНу так а в чем проблема?

Создайте копию листа, и уже из неё удалите всё ненужное. Затем отправьте эту копию (в аутлуке создастся собственное вложение). После этого лист-копию можно удалить без сожаления.

Автор - AndreTM
Дата добавления - 04.08.2017 в 09:00
sboy Дата: Пятница, 04.08.2017, 09:01 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1015
Репутация: 255 ±
Замечаний: 0% ±

Excel 2010
ProstaK, можно скопировать лист, удалить объекты, отправить его и удалить, не трогая основной файл.
 
Ответить
СообщениеProstaK, можно скопировать лист, удалить объекты, отправить его и удалить, не трогая основной файл.

Автор - sboy
Дата добавления - 04.08.2017 в 09:01
-=Dj=- Дата: Суббота, 05.08.2017, 11:19 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Переделал под себя и ответил на вопрос ТС
[vba]
Код

Sub Почта()
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Dim Destwb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim OutApp As Object
Dim OutMail As Object
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Set Sourcewb = ActiveWorkbook
ActiveSheet.Copy
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
ActiveSheet.Buttons.Delete
ActiveSheet.DrawingObjects.Delete
ActiveSheet.Buttons.Delete
Set Destwb = ActiveWorkbook
With Destwb
If Val(Application.Version) < 12 Then
FileExtStr = ".xls": FileFormatNum = -4143
Else
Select Case Sourcewb.FileFormat
Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
Case 52:
If .HasVBProject Then
FileExtStr = ".xlsm": FileFormatNum = 52
Else
FileExtStr = ".xlsx": FileFormatNum = 51
End If
Case 56: FileExtStr = ".xls": FileFormatNum = 56
Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
End Select
End If
End With
TempFilePath = Environ$("temp") & "\"
TempFileName = Sheets("Лист1").Range("a15")
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With Destwb
.SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = ""
.CC = ""
.BCC = ""
.Subject = ""
.Body = ""
.Attachments.Add Destwb.FullName
.Display
End With
On Error GoTo 0
.Close savechanges:=False
End With
Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
[/vba]


Сообщение отредактировал -=Dj=- - Суббота, 05.08.2017, 11:21
 
Ответить
СообщениеПеределал под себя и ответил на вопрос ТС
[vba]
Код

Sub Почта()
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Dim Destwb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim OutApp As Object
Dim OutMail As Object
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Set Sourcewb = ActiveWorkbook
ActiveSheet.Copy
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
ActiveSheet.Buttons.Delete
ActiveSheet.DrawingObjects.Delete
ActiveSheet.Buttons.Delete
Set Destwb = ActiveWorkbook
With Destwb
If Val(Application.Version) < 12 Then
FileExtStr = ".xls": FileFormatNum = -4143
Else
Select Case Sourcewb.FileFormat
Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
Case 52:
If .HasVBProject Then
FileExtStr = ".xlsm": FileFormatNum = 52
Else
FileExtStr = ".xlsx": FileFormatNum = 51
End If
Case 56: FileExtStr = ".xls": FileFormatNum = 56
Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
End Select
End If
End With
TempFilePath = Environ$("temp") & "\"
TempFileName = Sheets("Лист1").Range("a15")
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With Destwb
.SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = ""
.CC = ""
.BCC = ""
.Subject = ""
.Body = ""
.Attachments.Add Destwb.FullName
.Display
End With
On Error GoTo 0
.Close savechanges:=False
End With
Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
[/vba]

Автор - -=Dj=-
Дата добавления - 05.08.2017 в 11:19
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Оправка Листа по почте (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!