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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2011, 11:26   #1
Kan-Torog
 
Регистрация: 15.02.2011
Сообщений: 4
По умолчанию Регистрация входящих сообщений

Доброго времени суток!
У меня на работе Outlock 2007
Понадобилось регистрировать обращения ко мне. И к каждому обращению присваивать номер. В outlook макросы не писал, но вот что получается:

Цитата:
Public Sub CustomMailMessageRuleADV(Item As Outlook.MailItem)

Dim Mail_Answer As Outlook.MailItem

Dim Number_of_Order As Integer 'переменная для номера заявки

Date_of_Order = Now 'дата

If LCase$(Item.Subject) = "заявка" Then

MsgBox "Поступила заявка от " & Item.SenderEmailAddress ' это можно убрать, если мешает

Set Mail_Answer = CreateItem(olMailItem)

With Mail_Answer
Mail_Answer.To = Item.SenderEmailAddress
Mail_Answer.Body = Item.Body
Mail_Answer.Subject = "RE: Ваша заявка зарегистрирована под № " & Number_of_Order & " от " & Date_of_Order
Mail_Answer.Send

End With
End If

End Sub
У меня проблема заключается в том, что бы Number_of_Order менялся с каждой заявкой на Number_of_Order + 1. Понимаю, что надо привязываться к файлу excel, .txt или реестр. Но как это реализовать не знаю, можете помочь? Желательно к excel. Т.к мыслей по поводу него еще много.
И можете за одно объяснить, как в этот макрос воткнуть правило, что бы письма перемещались в требуемую мне папку. (После Входящих она идет 4ым номером)
Неделю с этим разбираюсь, в этом почти 0, код писал из интернету, выдергивая по крупицам из чужих макросов, что бы не с пустым кодом сюда приходить.
Kan-Torog вне форума Ответить с цитированием
Старый 18.02.2011, 02:53   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

А моя проблема в том,что не работаю с Outlook
Написано интуитивно.
Интересно сколько в гору на мизере под тройной в тёмную получил?
Не забудьте создать текстовый файл INI.txt,укажите правильный путь к нему
Код:
Public Sub CustomMailMessageRuleADV(Item As Outlook.MailItem)
 Dim myOut As Outlook.Application
 Dim inFolder As Outlook.MAPIFolder
 Dim myNameSpace As Outlook.NameSpace
  Set myoOut = New Outlook.Application
  Set myNameSpace = myoOut.GetNamespace("MAPI")
  Set inFolder = myNameSpace.Folders.Item(4)

Dim Mail_Answer As Outlook.MailItem
Dim Number_of_Order As Integer
Date_of_Order = Date
Open "C:\INI.txt" For Input As #1
Number_of_Order = Val(Input(LOF(1), 1))
Close #1
If LCase$(Item.Subject) = "заявка" Then
Number_of_Order = Number_of_Order + 1
MsgBox "Поступила заявка от " & Item.SenderEmailAddress
Set Mail_Answer = CreateItem(olMailItem)
With Mail_Answer
Mail_Answer.To = Item.SenderEmailAddress
Mail_Answer.Body = Item.Body
Mail_Answer.Subject = "RE: Ваша заявка зарегистрирована под № " & Number_of_Order & " от " & Date_of_Order
Mail_Answer.Send

End With
  Item.Move (inFolder)
   Open "C:\INI.txt" For Output As #1
Print #1, Number_of_Order
Close #1

End If

End Sub
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 18.02.2011 в 03:00.
doober вне форума Ответить с цитированием
Старый 21.02.2011, 12:51   #3
Kan-Torog
 
Регистрация: 15.02.2011
Сообщений: 4
По умолчанию

Спасибо большое! с меня пиво
Слегка подогнал. Ошибся с папкой, решил её пока что исключить. И изменил MsgBox, что бы выдавал имя, так красивее )
В планах менять имя входящего письма, добавляя информацию о заявке. Т.е если идет письмо "Заявка. снятие отчета" Текст шел "RE: Ваша заявка зарегистрирована под № " & Number_of_Order & " от " & Date_of_Order [Снятие отчета]
Ну енто позже.

Код:
Public Sub resend(Item As Outlook.MailItem)
 Dim myOut As Outlook.Application
 Dim inFolder As Outlook.MAPIFolder
 Dim myNameSpace As Outlook.NameSpace
  Set myoOut = New Outlook.Application
  Set myNameSpace = myoOut.GetNamespace("MAPI")
  'Set inFolder = myNameSpace.Folders.Item(1).Items()

Dim Mail_Answer As Outlook.MailItem
Dim Number_of_Order As Integer
Dim Date_of_Order
Date_of_Order = Date
Open "C:\INI.txt" For Input As #1
Number_of_Order = Val(Input(LOF(1), 1))
Close #1
If LCase$(Item.Subject) = "заявка" Then
Number_of_Order = Number_of_Order + 1
MsgBox "Поступила заявка от " & Item.SenderName
Set Mail_Answer = CreateItem(olMailItem)
With Mail_Answer
Mail_Answer.To = Item.SenderEmailAddress
Mail_Answer.Body = Item.Body
Mail_Answer.Subject = "RE: Ваша заявка зарегистрирована под № " & Number_of_Order & " от " & Date_of_Order
Mail_Answer.Send

End With
  'Item.Move (inFolder)
   Open "C:\INI.txt" For Output As #1
Print #1, Number_of_Order
Close #1

End If

End Sub
Kan-Torog вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA outlook обработка входящих сообщений Drek Помощь студентам 2 18.07.2010 04:19
Интеграл. Метод входящих прямоугольников heso Помощь студентам 0 24.05.2010 22:18
Уведомление о входящих письмах apodgorny Работа с сетью в Delphi 10 21.07.2009 13:04
[Pascal] сумма чисел входящих в строку Рамик Помощь студентам 5 03.06.2009 16:28
Перехват сообщений от Службы сообщений (Messenger) SJMS Win Api 6 17.07.2008 10:26