Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Экспорт данных из INBOX & SENT папок Outlook
 
Дмитрий !!! С П А С И Б О !!!

Заработало :) Еще пара вопросов, если не возражаете.

1. Для того чтобы присутствовали заголовки данных каким образом лучще прописать в этом случае?
2. В случае использования SQL, нужно создавать дополнительный фильтр, если я правильно понимаю. Сейчас выгружаются данные за весь период. Как лучше прикрутить ибо и SQL для меня пока далеко.
3. А каким образом возможно добавить Recipients Emails?

Изменено: a.m.v. - 25.09.2020 17:09:49
Экспорт данных из INBOX & SENT папок Outlook
 
Дмитрий,

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

В результате в Immediate только одна запись.

RE: ??? ???? ??????? | ????????? ??????? ????????. = 09/01/2020 9:02:37 AM
Код
Public Sub Test()
    Dim outApp As New Outlook.Application
    Dim nSpace As Outlook.Namespace
    Dim pFolder As Outlook.Folder
    Dim pItems As Outlook.Items
    Dim pMail As MailItem
     
    Set nSpace = outApp.GetNamespace("MAPI")
    Set pFolder = nSpace.Folders("vasya.pupkin@hp.com")
    Set pFolder = pFolder.Folders("Sent Items")
    Set pItems = pFolder.Items
    Set pMail = pItems.Find("[SentOn] > '09/01/2020' And [SentOn] < '09/24/2020'")
    Do Until pMail Is Nothing
        Debug.Print pMail.Subject & " = " & pMail.SentOn
        Set pMail = pItems.FindNext
        
        Cells(1, 1) = "Data"
        Cells(1, 2) = "To"
        Cells(1, 3) = "Subject"
        Cells(1, 4) = "Status"
  
        r = 1
        On Error GoTo err:
        For Each pItem In pMail
   
                Cells(r + 1, 1) = myItem.CreationTime
                Cells(r + 1, 2) = myItem.Recipients
                Cells(r + 1, 3) = myItem.Subject
                Cells(r + 1, 4) = myItem.Categories
            r = r + 1
  
        Next
        Exit Sub
err:
    If err.Number = 13 Then
    t = Timer
    Do While Timer - t < 1
    Loop
    Resume
    Else
        Stop
    End If
Loop
End Sub
Изменено: a.m.v. - 25.09.2020 14:16:24
Экспорт данных из INBOX & SENT папок Outlook
 
Использовал код, предоставленный Андрей VG. Спасибо ему еще раз. В коде вывода нет, прилагаю.

Код
Public Sub Test()
    Dim outApp As New Outlook.Application
    Dim nSpace As Outlook.Namespace
    Dim pFolder As Outlook.Folder
    Dim pItems As Outlook.Items
    Dim pMail As MailItem
     
    Set nSpace = outApp.GetNamespace("MAPI")
    Set pFolder = nSpace.Folders("vasya.pupkin@hp.com")
    Set pFolder = pFolder.Folders("Sent")
    Set pItems = pFolder.Items
    Set pMail = pItems.Find("[SentOn] > '09.09.2020' And [SentOn] < '12.09.2020'")
    Do Until pMail Is Nothing
        Debug.Print pMail.Subject & " = " & pMail.SentOn
        Set pMail = pItems.FindNext
    Loop
End Sub


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

Код
Set nSpace = outApp.GetNamespace("MAPI")
    Set pFolder = nSpace.Folders("vasya.pupkin@hp.com")
    Set pFolder = pFolder.Folders("Sent Items")

        Cells(1, 1) = "Data"
        Cells(1, 2) = "To"
        Cells(1, 3) = "Subject"
        Cells(1, 4) = "Status"
 
        r = 1
        On Error GoTo Err:
        For Each pItem In pMail
  
                Cells(r + 1, 1) = myItem.CreationTime
                Cells(r + 1, 2) = myItem.Recipients
                Cells(r + 1, 3) = myItem.Subject
                Cells(r + 1, 4) = myItem.Categories
            r = r + 1
 
        Next
        Exit Sub
Изменено: a.m.v. - 25.09.2020 12:51:37
Экспорт данных из INBOX & SENT папок Outlook
 
Дмитрий(The_Prist) Щербаков Спасибо!

Мой косяк. Изменил . на / Но обязательно ли добавлять время?

В Immidiate появилось разнобразие :) (куча строк с подобной информацией)

RE: ??? ???? ??????? | ????????? ??????? ????????. = 09/01/2020 9:02:37 AM
RE: ??? ???? ??????? | ????????? ??????? ????????. = 09/01/2020 9:04:55 AM
RE: ????????? ??? VDI ?????? ???? -#?????? 5445686/1 = 09/01/2020 9:05:17 AM
...

Но на листе информация отсутствуют. Что я упустил?
Изменено: a.m.v. - 25.09.2020 12:32:13
Экспорт данных из INBOX & SENT папок Outlook
 
Уважаемый Андрей VG.
Абсолютно уверен, что нет. Если имел достаточно знаний, знал бы какую информацию предоставить.

В Immediate вижу 4 блока повторяющихся записей.
RE: ??????????? ?????? = 09/24/2020 2:19:51 PM
RE: ??????????? ?????? = 09/24/2020 2:23:05 PM
RE: ?????? = 09/24/2020 2:37:45 PM

Цитата
Андрей VG написал: Если поставить точку останова кода на Do Until pMail Is Nothing, то pMail Is Nothing?
Вот здесь к сожалению не понял, куда конкретно поставить нужно :(
Экспорт данных из INBOX & SENT папок Outlook
 
Уважаемый Андрей VG.

Попытался протестировать Ваш код, к сожалению реакции никакой. Дату прописал в формате дат используемый на ноуте.
Экспорт данных из INBOX & SENT папок Outlook
 
Андрей VG, спасибо за вариант !

Стесняюсь спросить, как мне использовать этот блок для сбора информации ?
Код
Cells(1, 1) = "Data"
        Cells(1, 1) = "Creation Time"
        Cells(1, 2) = "To"
        Cells(1, 3) = "Subject"
        Cells(1, 4) = "Status"

        r = 1
        On Error GoTo Err:
        For Each myItem In myMail
 
                Cells(r + 1, 1) = myItem.CreationTime
                Cells(r + 1, 2) = myItem.Recipients
                Cells(r + 1, 4) = myItem.Subject
                Cells(r + 1, 5) = myItem.Categories
            r = r + 1

Цитата
БМВ написал: 1 . 10000 может зависеть от ПК. Это просто пауза. Можно через таймер крутануть типа через секунду далее идти
Еще раз спасибо БМВ  ;)
Попробую, посмотрю что получится и тему по ссылку изучу.
Экспорт данных из INBOX & SENT папок Outlook
 
Хм... хитро :) Огромное спасибо БМВ !

Еще пара вопросов:

1. Цикл до 10000. Насколько это важно? Уменьшил ради эксперимента до 1000 - полет нормальный, меньше уже ошибка повторяется :)
2. И все таки есть возможность определить период дат для экспорта писем или это невозможно?
3. Если автоматически при запуске файла, запускать макросы, как думаете, нормально будут работать или есть противопоказания ?

Еще раз спасибо за помощь

Алексей.
Экспорт данных из INBOX & SENT папок Outlook
 
.Цитата - не бездумная копия. Для простого ответа есть кнопка Ответить [МОДЕРАТОР]

Уважаемый БМВ.
1. Выгружается только часть насколько я понимаю из-за ошибки. Если Вы знаете как ее исправить - прошу совет в студию. Пример в приложении.
2. Не понятно почему Вы решили идея провальная? Подпапки иметь можно и экспортировать можно, но в этом нет необходимости. Интересует только папка INBOX & SENT
2.Если есть возможность определить период для экспорта - будет замечательно, нет - обойдемся.

Спасибо за понимание.

Алексей.
Экспорт данных из INBOX & SENT папок Outlook
 
Всех приветствую.

Прошу помощи клуба знатоков.
Руководством поставлена задача иметь отчет по работе с generic e-mail. Я имею ввиду, некая Excel таблица в которой присутствует информация из INBOX & SENT папок:  сколько писем приходит (папка INBOX),  когда, от кого, тема и на сколько писем был ответ (папка SENT) от сотрудника, в обязанности которого входит работа с generic e-mail. В MS Outlook присутствует несколько учетных записей.

По создал макрос на основе приложенного уважаемым Webley, но к сожалению выгружается какая то часть и возникает ошибка “Run-Time Error (13), Type Mismatch”. К сожалению знаний не хватает, поэтому прошу помощь зала.
Обьединение 2-х макросов в рамках одной процедуры "Worksheet_Change"
 
Sanja, нет слов, кроме слов благодарности. То что нужно. ОГРОМНОЕ СПАСИБО !

С Уважением, Алексей.
Обьединение 2-х макросов в рамках одной процедуры "Worksheet_Change"
 
Цитата
Sanja написал:
При изменении ячеек какого столбца должно появляться 'Won' в столбце 'R'?
В столбце "Q" (наименование "Осталось") рассчитывается разница между значениями в столбцах "O" (наименование "Сумма")и "P" (наименование "Получено"). Статус "Won" должен появится в столбце "R" (наименование "Статус") при условии если значение в столбце "Q" меньше или равно нулю.
Обьединение 2-х макросов в рамках одной процедуры "Worksheet_Change"
 
Sanja, чуть подправил, чтобы даты появлялись там где нужно. Но не могу понять, как сделать так чтобы статус "Won" появлялся не в столбце "P", а в столбце "R"  
Обьединение 2-х макросов в рамках одной процедуры "Worksheet_Change"
 
Цитата
Sanja написал: Да, описАлся, в столбце 'C' конечно, но  смысл вопроса остается тем же
Sanja и Ігор Гончаренко, спасибо за коментарии. Это конечно мне не нужно. Возможно я некорректно пояснил Вам формат таблицы, которой сейчас пытаюсь привести в нормальный вид. Поэтому прилагаю для Вашего понимания. В заголовках присутствуют мои примечания, что я в итоге хотел бы получить. Попытался макрос Sanja привести в соответствие с приложенной таблицей, но что то не получилось :(

Если реально оптимизировать макрос с автоматическим указанием статуса "Won" не получится или решение будет слишком замороченным,  я готов вернусь к варианту Ігор Гончаренко,

Я Вас снова благодарю за оказанную помощь.

С Уважением, Алексей.
Изменено: a.m.v. - 20.07.2019 17:23:52
Обьединение 2-х макросов в рамках одной процедуры "Worksheet_Change"
 
Цитата
Ігор Гончаренко написал:
, "dd.mm.yyyy"
КРУУУТЬ ! Ігор Гончаренко СПАСИБО !

У меня последний вопрос, если есть возможность помочь в некоторой оптимизации процесса. Есть несколько столбцов в таблице на этом же листе для которой действует созданный Вами макрос (файл прилагается).

Логика такая: если в столбце "Осталось" сумма меньше или равна 0, автоматически (с помощью нового макроса) в столбце "Статус" проставляется значение "Won", несмотря на то что другие статусы указывает человек при других условиях с помощью выпадающего списка.

И вот этот макрос надо как то запихнуть в уже действующий макрос с датами.

Заранее спасибо за любой ответ.

С Уважением, Алексей.
Обьединение 2-х макросов в рамках одной процедуры "Worksheet_Change"
 
Всем привет.

Спасибо за указания. Поправил. Отдельное человеческое спасибо Ігор Гончаренко за помощь. Все получилось.
В качестве развития. А каким образом возможно для одной ячейки указывать формат даты со временем, а для другой - только дату.?
Формат ячеек естественно не работает.

Заранее спасибо за ответ.

С Уважением, Алексей.
Обьединение 2-х макросов в рамках одной процедуры "Worksheet_Change"
 
Всем привет.

Прошу помощи. Только начал разбираться в макросами, поэтому не знаю как сделать.

Задача: необходимо проставлять даты изменений в двух ячейках на одном листе. Есть одинаковые макросы (ниже), но с различными адресами ячеек. Понимаю что нужно сделать все в рамках одной процедуры "Worksheet_Change". Но как правильно объединить - так и не осилил.

Макрос №1
Код
Private Sub Worksheet_Change(ByVal Target As Range)'Update 20140722
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("X:X"), Target)
xOffsetColumn = -1
If Not WorkRng Is Nothing Then
    Application.EnableEvents = False
    For Each Rng In WorkRng
        If Not VBA.IsEmpty(Rng.Value) Then
            Rng.Offset(0, xOffsetColumn).Value = Now
            Rng.Offset(0, xOffsetColumn).NumberFormat = "dd.mm.yyyy, hh:mm"
        Else
            Rng.Offset(0, xOffsetColumn).ClearContents
        End If
    Next
    Application.EnableEvents = True
End If
End Sub 

Макрос №2
Код
Private Sub Worksheet_Change(ByVal Target As Range)'Update 20140722
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("B:B"), Target)
xOffsetColumn = 1
If Not WorkRng Is Nothing Then
    Application.EnableEvents = False
    For Each Rng In WorkRng
        If Not VBA.IsEmpty(Rng.Value) Then
            Rng.Offset(0, xOffsetColumn).Value = Now
            Rng.Offset(0, xOffsetColumn).NumberFormat = "dd.mm.yyyy, hh:mm"
        Else
            Rng.Offset(0, xOffsetColumn).ClearContents
        End If
    Next
    Application.EnableEvents = True
End If
End Sub 

Заранее спасибо за помощь

С Уважением, Алексей.
Изменено: a.m.v. - 20.07.2019 10:21:55
Страницы: 1
Наверх