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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2011, 10:38   #11
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Пробую, спасибо
strannick вне форума Ответить с цитированием
Старый 29.11.2011, 10:50   #12
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Так. Вот что получилось. Я только каменты убрал.


Sub SendmailTheBat()
FPath$ = "D:\Заказ\Счета\"
ОтправитьПисьмоЧерезTheBat [a2], [f2], [g2], FPath & Cells(2, 2) & ".pdf"
End Sub

Function ОтправитьПисьмоЧерезTheBat(ByVal Email As String, _
ByVal Текст As String, Optional ByVal Тема As String = "", _
Optional ByVal AttachFilename As String = "") As Boolean

strTO = "TO=" & Chr(34) & Email & Chr(34)
strSUBJECT = "SUBJECT=" & Chr(34) & Replace(Тема, """", "`") & Chr(34) ' ???? ?????????

Filename$ = Environ("temp") & "\mail." & Fix(Rnd() * 1E+15)
ff = FreeFile: Open Filename$ For Output As #ff
Print #ff, Текст: Close #ff

strTEXT = "TEXT=" & Chr(34) & Filename$ & Chr(34) ' Chr(34) - это кавычка

If AttachFilename <> "" Then strATTACH = "ATTACH=" & Chr(34) & AttachFilename & Chr(34)

TheBatPath = ПутьКФайлуПрограммыTheBAT: DoEvents
Cmd$ = Chr(34) & TheBatPath & Chr(34) & " /MAIL;" & strTO & ";" & strSUBJECT & ";" & _
strTEXT & ";" & strATTACH & " /SENDALL; /MINIMIZE;"

CreateObject("WScript.Shell").Exec Cmd$
End Function

Function ПутьКФайлуПрограммыBAT() As String
On Error Resume Next: Err.Clear
Key$ = "HKEY_CURRENT_USER\Software\RIT \The Bat!\EXE path"
ПутьКФайлуПрограммыTheBAT = CreateObject("WScript.Shell").RegRe ad(Key$)
End Function

Подсвечивает желтым CreateObject("WScript.Shell").Exec Cmd$ и пишет, что параметр задан неверно.
strannick вне форума Ответить с цитированием
Старый 29.11.2011, 11:03   #13
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

CreateObject("WScript.Shell").Exec Cmd$ подсвечивает желтым
strannick вне форума Ответить с цитированием
Старый 29.11.2011, 11:08   #14
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вы уж определитесь - или вы переделываете названия функций, и дальше САМОСТОЯТЕЛЬНО ковыряетесь в коде,
или же слушаете, что я говорю, и вставляете код функций без правки.

Я вам что написал в предыдущем посте?
Цитата:
Код:
Function ПутьКФайлуПрограммыTheBAT() As String
    ' читает из реестра путь к исполняемому файлу программы TheBAT!
    ' возвращает путь к файлу, или пустую строку, если TheBAT! не установлен
    On Error Resume Next: Err.Clear
    key$ = "HKEY_CURRENT_USER\Software\RIT\The Bat!\EXE path"
    ПутьКФайлуПрограммыTheBAT = CreateObject("WScript.Shell").RegRead(key$)
End Function
Нахрена вы переименовали фунцкию?

Цитата:
Код:
Function ПутьКФайлуПрограммыBAT() As String
On Error Resume Next: Err.Clear
Key$ = "HKEY_CURRENT_USER\Software\RIT \The Bat!\EXE path"
ПутьКФайлуПрограммыTheBAT = CreateObject("WScript.Shell").RegRe ad(Key$)
End Function
Подсвечивает желтым CreateObject("WScript.Shell").Exec Cmd$ и пишет, что параметр задан неверно.
EducatedFool вне форума Ответить с цитированием
Старый 29.11.2011, 11:21   #15
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Все!!!! Заработало!!!! ОГРАМНЕЙШЕЕ СПАСИБО. Это у меня при копировании отсюда в VBA пропал русский шрифт. Пришлось перенабирать. Вот и пропустил. Сейчас проверю еще раз.
strannick вне форума Ответить с цитированием
Старый 29.11.2011, 13:27   #16
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Рано обрадовался. Не прошло и двух часов, работать перестал. Ситуация двоякая: письма отправляются, но не доходят или доходят, но без темы, сообщения и вложения. Удалил все нафиг, вставил по новой - та же история. Где я накосячил?
strannick вне форума Ответить с цитированием
Старый 29.11.2011, 13:45   #17
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Стало светить красным вот эту строку:

ПутьКФайлуПрограммыTheBAT = CreateObject("WScript.Shell").RegRe ad(Key$)

Что-то поменялось в Batе?
strannick вне форума Ответить с цитированием
Старый 29.11.2011, 15:55   #18
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Удалил все нафиг, вставил по новой - та же история
Не надо было этого делать.
Не трогайте функции - они тогда будут работать как надо.

Все проблемы надо искать в вашем коде (и исправления вносить только в него):
Цитата:
Код:
Sub SendmailTheBat()
    FPath$ = "D:\Заказ\Счета\"
    ОтправитьПисьмоЧерезTheBat [a2], [f2], [g2], FPath & Cells(2, 2) & ".pdf"
End Sub
PS: Вы что, не видите в коде лишний пробел?
В моём коде его не было - вы опять что-то левое скопировали...
EducatedFool вне форума Ответить с цитированием
Старый 30.11.2011, 11:44   #19
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Нашел глюк. Дела было в чем.
Из А2 брался адрес почты, по которому отправлялось сообщение.
Из F2 - тема письма.
Из G2 - тело письма.
Во-первых, у меня были перепутаны местами ячейки F2 и G2. Итог таков:

Sub SendmailTheBat()
FPath$ = "D:\Заказ\Счета\"
ОтправитьПисьмоЧерезTheBat [a2], [g2], [f2], FPath & Cells(2, 2) & ".pdf"
End Sub

Вот так все встало на свои места.

Во-вторых, текст в ячейке G2, откуда бралось тело письма, автоматически формируется путем сцепления значений нескольких ячеек из общей базы и имеющих уникальные атрибуты для каждого клиента, как-то, номер заказа, дата заказа, стоимость и т.д. При сцеплении получаемый текст идет сплошняком, без абзацев. Не совсем красиво. Желая отформатировать в формуле СЦЕПИТЬ в нужных местах вставил перенос строки путем добавления "alt-enter". Но, так как, в коде были перепутаны местами ячейки F2 и G2 (текст темы письма и текст тела письма), то по всей видимости первый введенный мной "alt-enter" отсек все остальные функции по вставке остального текста и прикреплению файла к письму.
Игорь, СПАСИБО!!!!

Последний раз редактировалось strannick; 30.11.2011 в 11:54.
strannick вне форума Ответить с цитированием
Старый 27.01.2012, 22:25   #20
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Возвращаясь к напечатанному: Уважаемые гуру форума! Подскажите, возможно ли в этом коде только формирование письма, передача в The Bat! без, собственно, самой отправки. Так получается, когда не указан адрес почты. Тогда письмо попадает в "Исходящие" и висит там.
strannick вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание шаблона Outlook сообщения и отправка его по почте avos002 Microsoft Office Excel 2 25.01.2011 08:18
Вопрос по TService и отправка по почте. Sti.k Общие вопросы Delphi 2 10.06.2010 13:39
СОХРАНЕНИЕ В ФОРМАТЕ *.PDF provodnikam Microsoft Office Word 10 20.02.2010 10:31
отправка аипи+параметр по почте (Delphi/PHP) dyonysos Помощь студентам 0 05.10.2009 19:12
отправка файла по почте DeDoK Работа с сетью в Delphi 1 10.11.2008 10:13