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

Страницы: 1
Получение данных из Outlook в Excel. Открытие писем и ответ всем
 
Jack Famous, там только запрос, решения еще не направляли...  
Получение данных из Outlook в Excel. Открытие писем и ответ всем
 
Sanja, evgeniygeo, попробовал разделить задачу)) сначала попробовать написать код, который будет открывать письма без ссылки, а затем здесь на форуме совместно найти решение по вставке ссылки на лист Excel.
В коде по ссылке:
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=93298&TITLE_SEO=93298-poisk-pisma-v-outlook-posredstvom-vba-excel&MID=775281#message775281
вместо
Код
Set ReplyAll = itm.ReplyAll
указал:
Код
Set ReplyAll = itm.Display
Открывает только первое сообщение, которое нашел по теме письма, дальше выдает ошибку.

Пока решение не найдено...
Получение данных из Outlook в Excel. Открытие писем и ответ всем
 
Sanja, Да, файл приложил.
Благодарю за ссылки, посмотрю примеры.
Изменено: Алексей Иванов - 26.08.2023 19:20:48
Получение данных из Outlook в Excel. Открытие писем и ответ всем
 
Добрый день, уважаемые форумчане!
Прошу помочь с доработкой кода (возможно будет иное решение).
Необходимо получить данные из Outlook, которые будут занесены в Excel.
На основании темы и даты в подпапке "Контроль" папки "Отправленные" будет найдено соответствующее письмо в папке "Контроль" Outlook.
В третьем столбце можно выбрать возможность открытия письма, в четвертом - открытия и ответа всем адресатам.
Сейчас при нажатии на ссылку не открывает письма в Outlook, а выдает запрос такого рода:
"Вам понадобится новое приложение, чтобы открыть этот outlook. Поиск приложения в Microsoft Store. Всегда использовать это приложение (с галочкой)"

Есть код по ссылке, который прекрасно работает и сообщения по вводимой в окно InputBox теме сразу открываются в режиме ответа всем
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=93298&am...

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


Сам код:
Код
Sub ПолучитьДанныеОтправленныеПисьма()

    Dim olApp As Outlook.Application
    Dim olNs As Outlook.Namespace
    Dim olFolder As Outlook.MAPIFolder
    Dim olMail As Outlook.MailItem
    Dim xlWorksheet As Excel.Worksheet
    Dim iRow As Integer

    'Создать объект приложения Outlook
    Set olApp = New Outlook.Application

    'Создать объект пространства имен
    Set olNs = olApp.GetNamespace("MAPI")

    'Получить папку "Отправленные" в текущем ящике
    Set olFolder = olNs.GetDefaultFolder(olFolderSentMail).Folders("Контроль")

    'Установить активный лист в книге Excel
    Set xlWorksheet = ActiveWorkbook.ActiveSheet

    'Пройти по каждому письму в папке "Отправленные"
    For Each olMail In olFolder.Items
        'Проверить, является ли письмо объектом MailItem и было ли оно отправлено
        If TypeOf olMail Is Outlook.MailItem And olMail.Sent Then
            'Добавить данные в лист Excel
            iRow = xlWorksheet.Cells(xlWorksheet.Rows.Count, 1).End(xlUp).row + 1
            xlWorksheet.Cells(iRow, 1).Value = olMail.Subject
            xlWorksheet.Cells(iRow, 2).Value = olMail.SentOn
            xlWorksheet.Hyperlinks.Add Anchor:=xlWorksheet.Cells(iRow, 3), Address:="outlook:/" & olMail.EntryID, ScreenTip:="Открыть письмо", TextToDisplay:="Открыть письмо"
            xlWorksheet.Hyperlinks.Add Anchor:=xlWorksheet.Cells(iRow, 4), Address:="outlook:/" & olMail.EntryID & "/action=replyall", TextToDisplay:="Ответить всем с вложениями"

        End If

    Next olMail

    'Сохранить и закрыть книгу Excel
    'ActiveWorkbook.Save
    'ActiveWorkbook.Close

    'Освободить объекты из памяти
    Set olMail = Nothing
    Set olFolder = Nothing
    Set olNs = Nothing
    Set olApp = Nothing
    Set xlWorksheet = Nothing

End Sub

Изменено: Алексей Иванов - 25.08.2023 09:17:08
Изменить символы на русский язык или восстановить .log файлы для Excel
 
Добрый день!
Прошу помочь с восстановлением файлов .log, вчера удалил без возможности восстановления через команду "Выполнить"-> "%TEMP%" файл .log, теперь указаны в панели меню символы вместо русского языка, знаки вопроса на боковой панели, см. скрин.
Как исправить ситуацию? Переустановка (дважды) MS Office ситуацию не спасла.
Подсчет предыдущих значений в функции на основе двух условий и передача в макрос для обработки
 
ATK, Спасибо за уточнение, скопировал не те значения. Поменял в файле на верные.
Общее количество повторов не подойдет по той причине, что необходимо остановить цикл копирования данных, когда общее количество заменяемой номенклатуры из вкладки "Замена" станет меньше общего количества номенклатуры вкладки "Исходная таблица".
Подсчет предыдущих значений в функции на основе двух условий и передача в макрос для обработки
 
Mershik, Сделал пример, как должно получиться с комментариями в таблице.
Подсчет предыдущих значений в функции на основе двух условий и передача в макрос для обработки
 
Ігор Гончаренко, Изначально задача состоит в том, чтобы сравнить 2 таблицы, в которых есть одинаковая номенклатура, при этом должен совпадать шифр и наименование номенклатуры. С этим вопросов не возникло. Если шифр и номенклатура одинаковы, то наименование номенклатуры из вкладки "Замена" копируется рядом с идентичной номенклатурой на вкладке "Исходная таблица". Вопрос состоит в том, чтобы если на вкладке "Замена" такой номенклатуры например всего 3, а на вкладке "Исходная таблица" такой номенклатуры 10 позиций, то копироваться рядом со столбцом "Номенклатурная позиция" вкладки "Исходная таблица" должна "Заменяемая номенклатура" вкладки "Замена" именно в количестве трех. Вот это уже дилемма...
Изменено: Алексей Иванов - 09.05.2021 07:36:00
Подсчет предыдущих значений в функции на основе двух условий и передача в макрос для обработки
 
Ігор Гончаренко, Да, немного сумбурно написал) спасибо за ответ.
Подсчет предыдущих значений в функции на основе двух условий и передача в макрос для обработки
 
Ігор Гончаренко, По в и 2 для строки 3 по excel посчитано ("1") верно. Если идти дальше, то к примеру для  а и 2  количество предыдущих значений будет 1, макрос выводит 3. Необходимо, чтобы считалось для текущей строки количество предыдущих значений по цифре с учетом совпадения и по букве и по цифре. Например, для 16-ой строки по excel   а и 1  количество предыдущих значений на вкладке "Первая" будет 3, а на вкладке "Вторая"  а и 1 встречается всего 1 раз.
Подсчет предыдущих значений в функции на основе двух условий и передача в макрос для обработки
 
Ігор Гончаренко, макрос вывел значения по порядку 1, 2, 3... К примеру, если рассмотреть количество предыдущих значений для "а"  "2", то встречается всего одно значение на вкладке "Вторая", а в таблице указано, что их 3.
№ п/пБукваЦифраPredyduschieZnachenia_проба1PredyduschieZnachenia_проба2
1в1
2в211
3в122
4а233
Изменено: Алексей Иванов - 08.05.2021 18:09:54
Подсчет предыдущих значений в функции на основе двух условий и передача в макрос для обработки
 
Ігор Гончаренко, задача состоит в том, что необходимо провести сравнение между двумя таблицами: сравнить значения столбцов 2 и 3 вкладок "Первая" и "Вторая". При совпадении значений в строках, подсчитывается количество предыдущих значений по столбцу 3 на обеих вкладках. По вкладке  "Первая" количество предыдущих значений записывается в столбец 4 вкладки "Первая", и по вкладке  "Вторая" количество предыдущих значений записывается в столбец 5 вкладки "Первая". При этом подсчитываться должны значения с учетом совпадения буквы в столбце 2.
Подсчет предыдущих значений в функции на основе двух условий и передача в макрос для обработки
 
Добрый день, уважаемые форумчане!
Прошу помочь разобраться с ошибкой в подсчете предыдущих значений во второй функции.
Макрос направлен на выявление похожих значений по двум условиям и выведении количества предыдущих значений в столбцы 4 и 5.
Ошибка заключается в том, что вторая функция подсчитывает все предыдущие значения, не учитывая одно из условий.
Скажем, если при сравнении столбцов №2 и №3 обоих вкладок в определённых строках значения сходятся, то далее идет подсчет предыдущих "цифровых" значений в столбце. Вторая функция считает все предыдущие значения на вкладке "Вторая", а нужно, чтобы она учитывала также "буквенное" значение второго столбца. Сейчас получается, что она считает всё без учета данного условия, хотя данное условие прописано.
Где может быть ошибка?
Код
Public Q As Integer
Public W As Integer
Public P As Integer
Option Explicit
 
 
 
Sub Подсчет_предыдущих_значений_проба()
 
Dim ArA3, ArB3, ArA4, ArB4
Dim T As Long, W As Long, LastRow3 As Long, LastRow4 As Long
Worksheets("Первая").Select
With Worksheets("Вторая")
  LastRow3 = Cells(Rows.Count, 1).End(xlUp).Row
  ArA3 = Range("B1:B" & LastRow3)
  ArB3 = Range("C1:C" & LastRow3)
  LastRow4 = .Cells(Rows.Count, 2).End(xlUp).Row
  ArA4 = .Range("B1:B" & LastRow4)
  ArB4 = .Range("C1:C" & LastRow4)
  For Q = 2 To LastRow3
    For W = 2 To LastRow4
      P = W
      If ArA3(Q, 1) = ArA4(W, 1) Then
        If ArB3(Q, 1) = ArB4(W, 1) Then
                If PredyduschieZnachenia_проба1 <= PredyduschieZnachenia_проба2 Then
                    Cells(Q, 4) = PredyduschieZnachenia_проба1
                    Cells(Q, 5) = PredyduschieZnachenia_проба2
                    Else: Cells(Q, 6) = "Err"
                End If
            Exit For
        End If
      End If
    Next W
 Next Q
End With
 
 
End Sub
 
 
Function PredyduschieZnachenia_проба1()
 
Dim Rg As Range
Dim RgVal As Integer
Dim a As Variant
Dim i As Integer
Dim cell As Range
Dim Schet As Double
W = P
a = Worksheets("Первая").Cells(Q, 3)
Set Rg = Range(Cells(2, 3), Cells(Q, 3))
RgVal = Rg.Count
 
Dim myColl As Object
Set myColl = New Collection
On Error Resume Next
For Each cell In Rg
    If cell = a Then myColl.Add cell.Value
Next
 
Schet = myColl.Count
PredyduschieZnachenia_проба1 = Schet
Set myColl = New Collection
End Function
 
 
Function PredyduschieZnachenia_проба2()
 
Dim RgW2 As Range
Dim RgVal As Integer
Dim a As Variant
Dim i As Integer
Dim cell As Range
Dim Schet As Double
a = Worksheets("Вторая").Cells(W, 3)
With Worksheets("Вторая")
Set RgW2 = Range(.Cells(2, 3), .Cells(W, 3))
End With
RgVal = RgW2.Count
 
Dim myColl As Object
Set myColl = New Collection
On Error Resume Next
For Each cell In RgW2
    If cell = a And Worksheets("Вторая").Cells(W, 2) = _
    Worksheets("Первая").Cells(Q, 2) Then myColl.Add cell.Value
Next
 
Schet = myColl.Count
PredyduschieZnachenia_проба2 = Schet
Set myColl = New Collection
End Function
квадратные скобки в Like VBA
 
Цитата
Ігор Гончаренко написал: [a1]. cells(1), cells(1,1), Range("a1")
Спасибо!
квадратные скобки в Like VBA
 
Цитата
The_Prist написал: [a1].Resize(, UBound(avRes) + 1) = avRes
Подскажите, что значит в начале строки выражение в скобках [a1]? Какой она несет смысл?
И зачем используется в данном примере Resize?
Страницы: 1
Наверх