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

Вход

Регистрация

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

 

= Мир MS Excel/отправить на почту файл который создался макросом резерв - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
отправить на почту файл который создался макросом резерв
Gjlhzl Дата: Вторник, 27.08.2024, 16:43 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 138
Репутация: 0 ±
Замечаний: 0% ±

В предыдущей моей теме разобрали макрос отправки файла на почту, все работает
но требуется подружить с другим макросом который при открытии файла создает
копию присваивает имя...вот его то и нужно отправлять на почту

[vba]
Код
Sub SendMail()
'Обязательно подключить библиотеку  Tools->References <<Microsoft CDO for Windows 2000 library>>

    Dim o_Mess As Object, v_Conf As String, email As String, i_Paht As String
    
    v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
    i_Paht = "C:\Users\Micholap\Desktop\1.xls" ' указываем полный путь к файлу, который хотим вложить
    email = "....."   'e-mail получателя
    Set o_Mess = CreateObject("CDO.Message")    'Создаем сообщение
    With o_Mess
        .To = email   'Кому
        .From = "......"   'От кого
        .Subject = "Привет"   'Тема письма
        .TextBody = "Большой привет от VBA"   'Текст письма
        If Len(i_Paht) > 0 Then .AddAttachment i_Paht   'вкладываем файл
        With .Configuration.Fields   'конфигурируем CDO
            .Item(v_Conf & "sendusing") = 2
            .Item(v_Conf & "smtpserver") = "smtp.mail.ru" 'ваш сервер SMTP:smtp.mail.ru; smtp.yandex.ru; mail.rambler.ru
            .Item(v_Conf & "smtpauthenticate") = 1
            .Item(v_Conf & "sendusername") = "...." 'Ваша учетная запись
            .Item(v_Conf & "sendpassword") = "......." 'Ваш пароль к почтовому ящику
            .Item(v_Conf & "smtpserverport") = 465 'номер порта(узнать на сайте вашей почты)
            .Item(v_Conf & "smtpusessl") = True
            .Item(v_Conf & "smtpconnectiontimeout") = 60
            .Update
        End With
        .Send 'отправляем
    End With
    Set o_Mess = Nothing
End Sub
[/vba]

вот код что создает файл для отправки

[vba]
Код
Sub reserv()
Dim strPath As String
Dim strDate As String
    Application.ScreenUpdating = False
    strPath = ThisWorkbook.Path
    If Len(Dir(strPath & "\Резерв\", vbDirectory)) = 0 Then MkDir strPath & "\Резерв\"
    On Error Resume Next
    x = GetAttr(strPath) And 0
    If Err = 0 Then
        strDate = Format(Now, "dd.mm.yyyy hh-mm")
        FileNameXls = strPath & "\Резерв\" & Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 5) & " " & strDate & ".xlsb"
        ActiveWorkbook.SaveCopyAs Filename:=FileNameXls
    Else
        MsgBox "Ошибка сохранения!", vbCritical
    End If
    Application.ScreenUpdating = True
End Sub
[/vba]

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

[vba]
Код
Sub SendMail()
'Обязательно подключить библиотеку  Tools->References <<Microsoft CDO for Windows 2000 library>>

    Dim o_Mess As Object, v_Conf As String, email As String, i_Paht As String
    
    v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
    i_Paht = "C:\Users\Micholap\Desktop\1.xls" ' указываем полный путь к файлу, который хотим вложить
    email = "....."   'e-mail получателя
    Set o_Mess = CreateObject("CDO.Message")    'Создаем сообщение
    With o_Mess
        .To = email   'Кому
        .From = "......"   'От кого
        .Subject = "Привет"   'Тема письма
        .TextBody = "Большой привет от VBA"   'Текст письма
        If Len(i_Paht) > 0 Then .AddAttachment i_Paht   'вкладываем файл
        With .Configuration.Fields   'конфигурируем CDO
            .Item(v_Conf & "sendusing") = 2
            .Item(v_Conf & "smtpserver") = "smtp.mail.ru" 'ваш сервер SMTP:smtp.mail.ru; smtp.yandex.ru; mail.rambler.ru
            .Item(v_Conf & "smtpauthenticate") = 1
            .Item(v_Conf & "sendusername") = "...." 'Ваша учетная запись
            .Item(v_Conf & "sendpassword") = "......." 'Ваш пароль к почтовому ящику
            .Item(v_Conf & "smtpserverport") = 465 'номер порта(узнать на сайте вашей почты)
            .Item(v_Conf & "smtpusessl") = True
            .Item(v_Conf & "smtpconnectiontimeout") = 60
            .Update
        End With
        .Send 'отправляем
    End With
    Set o_Mess = Nothing
End Sub
[/vba]

вот код что создает файл для отправки

[vba]
Код
Sub reserv()
Dim strPath As String
Dim strDate As String
    Application.ScreenUpdating = False
    strPath = ThisWorkbook.Path
    If Len(Dir(strPath & "\Резерв\", vbDirectory)) = 0 Then MkDir strPath & "\Резерв\"
    On Error Resume Next
    x = GetAttr(strPath) And 0
    If Err = 0 Then
        strDate = Format(Now, "dd.mm.yyyy hh-mm")
        FileNameXls = strPath & "\Резерв\" & Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 5) & " " & strDate & ".xlsb"
        ActiveWorkbook.SaveCopyAs Filename:=FileNameXls
    Else
        MsgBox "Ошибка сохранения!", vbCritical
    End If
    Application.ScreenUpdating = True
End Sub
[/vba]

как это сделать

Автор - Gjlhzl
Дата добавления - 27.08.2024 в 16:43
doober Дата: Вторник, 27.08.2024, 20:06 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 970
Репутация: 332 ±
Замечаний: 0% ±

Excel 2010
Например так[vba]
Код
Sub SendMail()

    Dim o_Mess As Object, v_Conf As String, email As String, i_Paht As String
    
    v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
    i_Paht = reserv() ' указываем полный путь к файлу, который хотим вложить
    email = "....."   'e-mail получателя
    Set o_Mess = CreateObject("CDO.Message")    'Создаем сообщение
    With o_Mess
        .To = email   'Кому
        .From = "......"   'От кого
        .Subject = "Привет"   'Тема письма
        .TextBody = "Большой привет от VBA"   'Текст письма
        If Len(i_Paht) > 0 Then .AddAttachment i_Paht   'вкладываем файл
        With .Configuration.Fields   'конфигурируем CDO
            .Item(v_Conf & "sendusing") = 2
            .Item(v_Conf & "smtpserver") = "smtp.mail.ru" 'ваш сервер SMTP:smtp.mail.ru; smtp.yandex.ru; mail.rambler.ru
            .Item(v_Conf & "smtpauthenticate") = 1
            .Item(v_Conf & "sendusername") = "...." 'Ваша учетная запись
            .Item(v_Conf & "sendpassword") = "......." 'Ваш пароль к почтовому ящику
            .Item(v_Conf & "smtpserverport") = 465 'номер порта(узнать на сайте вашей почты)
            .Item(v_Conf & "smtpusessl") = True
            .Item(v_Conf & "smtpconnectiontimeout") = 60
            .Update
        End With
        .Send 'отправляем
    End With
    Set o_Mess = Nothing
End Sub

Function reserv() As String
Dim strPath As String
Dim strDate As String
    Application.ScreenUpdating = False
    strPath = ThisWorkbook.Path
    If Len(Dir(strPath & "\Резерв\", vbDirectory)) = 0 Then MkDir strPath & "\Резерв\"
    On Error Resume Next
    x = GetAttr(strPath) And 0
    If Err = 0 Then
        strDate = Format(Now, "dd.mm.yyyy hh-mm")
        FileNameXls = strPath & "\Резерв\" & Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 5) & " " & strDate & ".xlsb"
        ActiveWorkbook.SaveCopyAs Filename:=FileNameXls
        
          reserv = FileNameXls
    Else
       reserv = ""
    End If
    Application.ScreenUpdating = True
End Function
[/vba]


 
Ответить
СообщениеНапример так[vba]
Код
Sub SendMail()

    Dim o_Mess As Object, v_Conf As String, email As String, i_Paht As String
    
    v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
    i_Paht = reserv() ' указываем полный путь к файлу, который хотим вложить
    email = "....."   'e-mail получателя
    Set o_Mess = CreateObject("CDO.Message")    'Создаем сообщение
    With o_Mess
        .To = email   'Кому
        .From = "......"   'От кого
        .Subject = "Привет"   'Тема письма
        .TextBody = "Большой привет от VBA"   'Текст письма
        If Len(i_Paht) > 0 Then .AddAttachment i_Paht   'вкладываем файл
        With .Configuration.Fields   'конфигурируем CDO
            .Item(v_Conf & "sendusing") = 2
            .Item(v_Conf & "smtpserver") = "smtp.mail.ru" 'ваш сервер SMTP:smtp.mail.ru; smtp.yandex.ru; mail.rambler.ru
            .Item(v_Conf & "smtpauthenticate") = 1
            .Item(v_Conf & "sendusername") = "...." 'Ваша учетная запись
            .Item(v_Conf & "sendpassword") = "......." 'Ваш пароль к почтовому ящику
            .Item(v_Conf & "smtpserverport") = 465 'номер порта(узнать на сайте вашей почты)
            .Item(v_Conf & "smtpusessl") = True
            .Item(v_Conf & "smtpconnectiontimeout") = 60
            .Update
        End With
        .Send 'отправляем
    End With
    Set o_Mess = Nothing
End Sub

Function reserv() As String
Dim strPath As String
Dim strDate As String
    Application.ScreenUpdating = False
    strPath = ThisWorkbook.Path
    If Len(Dir(strPath & "\Резерв\", vbDirectory)) = 0 Then MkDir strPath & "\Резерв\"
    On Error Resume Next
    x = GetAttr(strPath) And 0
    If Err = 0 Then
        strDate = Format(Now, "dd.mm.yyyy hh-mm")
        FileNameXls = strPath & "\Резерв\" & Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 5) & " " & strDate & ".xlsb"
        ActiveWorkbook.SaveCopyAs Filename:=FileNameXls
        
          reserv = FileNameXls
    Else
       reserv = ""
    End If
    Application.ScreenUpdating = True
End Function
[/vba]

Автор - doober
Дата добавления - 27.08.2024 в 20:06
Gjlhzl Дата: Вторник, 27.08.2024, 21:46 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 138
Репутация: 0 ±
Замечаний: 0% ±

doober, Пока нет возможности проверить … с тел . Смотрю , но думаю все гуд
Для вас это не проблема…
 
Ответить
Сообщениеdoober, Пока нет возможности проверить … с тел . Смотрю , но думаю все гуд
Для вас это не проблема…

Автор - Gjlhzl
Дата добавления - 27.08.2024 в 21:46
Gjlhzl Дата: Четверг, 29.08.2024, 10:22 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 138
Репутация: 0 ±
Замечаний: 0% ±

doober, спасибо проверил.....все отлично работает
 
Ответить
Сообщениеdoober, спасибо проверил.....все отлично работает

Автор - Gjlhzl
Дата добавления - 29.08.2024 в 10:22
  • Страница 1 из 1
  • 1
Поиск:

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