Страницы: 1
RSS
VBA + Outlook + Excel
 
Добрый день.  
 
Подскажите, пожалуйста, есть ли такая возможность (а если есть, то как ее реализовать) - из 2 раза в день приходящих писем (от одних и тех же людей) вытаскивать 2 цифры (из текста письма). А также проверять, наличие этих писем.  
 
Если брать конкретнее, то задача выглядит так:  
до 12-00 и до 17-00 по Мск от 10 пользователей приходит письмо с темой "продажи на 12 часов". В самом письме есть строки "отгрузка - 1.000.000 руб." и "оплата - 970.000 руб.". Нужно просмотреть все письма за этот день, найти письма по теме, вытащить эти 2 цифры и загнать их в таблицу Excel.
 
Подниму разик со 2 страницы. Может кто знающий все же что-нибудь посоветует.
 
Тут больше вопросы по Outlook-у, а не по Excel. Вам надо на профильный форум обратиться. А пользователи могут работать в Google Docs? Может они там будут заполнять данные?  
________________________  
khafizovtt@gmail.com
Учимся сами и помогаем другим...
 
Учитывая то, что аутлук и эксель являются семейством офис и могут нормально перекидывать данные туда-сюда думаю, что все же по адресу. Тем более, что сам писал и изменял макросы, рассылающие письма из экселя через аутлук.
 
В общем сам разобрался со всем. Если кому-то будет нужно, то у меня это выглядит следующим образом:  
 
Sub Exc_Outl()  
Set OL = New Outlook.Application  
Set myNameSpace = OL.GetNamespace("MAPI")  
Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)  
 
Set fl = myInbox.Folders("ОПП")  
If fl.Items.Count > 0 Then  
i = 1  
 
While i <= fl.Items.Count And Format$(fl.Items(i).ReceivedTime, "dd.mm.yyyy") = Format$(Date, "dd.mm.yyyy")  
   If fl.Items(i).Subject = "Отгрузка на 12 часов" Then  
     
   i_otgr = Mid(fl.Items(i).Body, InStr(1, fl.Items(i).Body, "Отгрузка ", vbTextCompare) + 9, InStr(1, fl.Items(i).Body, " руб.", vbTextCompare) - InStr(1, fl.Items(i).Body, "Отгрузка ", vbTextCompare) - 9)  
   i_opl = Mid(fl.Items(i).Body, InStr(1, fl.Items(i).Body, "Оплата ", vbTextCompare) + 7, InStr(InStr(1, fl.Items(i).Body, "Оплата ", vbTextCompare), fl.Items(i).Body, " руб.", vbTextCompare) - InStr(1, fl.Items(i).Body, "Оплата ", vbTextCompare) - 7)  
 
   End If  
   i = i + 1  
Wend  
 
 
End If  
End Sub  
 
 
 
P.S. Обязательно нужно подключить 2 библиотеки - Outlook View Control & Outlook Jbject Library
 
Вот если бы все так как Вы - сами разобрались, а не ждали решения.  
________________________  
khafizovtt@gmail.com
Учимся сами и помогаем другим...
Страницы: 1
Читают тему
Наверх