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

 

= Мир MS Excel/Outlook - создание встреч и собраний из Excel - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин, DrMini  
Outlook - создание встреч и собраний из Excel
Rioran Дата: Понедельник, 24.11.2014, 17:09 | Сообщение № 1
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Всем привет и хорошего настроения!

Хочу поделиться с сообществом своим решением задачи по автоматическому созданию событий OutLook из книги Excel. Речь идёт о Встречах и Собраниях.

Встреча: событие OutLook, которое отмечается в личном календаре. Устанавливается исключительно для одного пользователя, без вовлечения в процесс других.

Собрание: событие OutLook, которое отмечается в личном календаре с отправкой запроса адресатам. То есть, в отличие от Встречи - другие люди получают уведомление.

Технические нюансы кода:

1). Строго заполнять столбец А для корректной работы программы. Раскрывающиеся списки в помощь.
2). Выделение события цветом корректно работает только на русскоязычном офисе. В остальных случаях цвет категории будет обозначен текстом.
3). Если в столбце "Напоминание?" стоит "Да" - напоминание устанавливается, в остальных случаях - нет.
4). Если хотите просмотреть создаваемые события без сохранения - замените в конце кода .Send / .Save на .Display
5). [Важно!] Участников события вписывать строго через запятую с пробелом: Участник1, Участник2, Участник3
6). [Важно!] Участники Собрания должны быть записаны строго почтовыми адресами: voronov_rv@mail.ru например.
7). Участники Встречи могут быть записаны любыми именами. В тексте события они будут выведены в конце, никакие действия не предусмотрены.

Если данная программа оказалась для Вас полезна или у Вас есть мысли, идеи, мнение, предложения, вопросы - обязательно пишите, ибо интересно же =) На том и держится мой спортивный интерес.

Option Explicit
Option Base 0

Sub Rio_OutLook_Time_Manager()

'Author:    Roman "Rioran" Voronov
'Date:      the 24-th of November, 2014
'Feedback:  voronov_rv@mail.ru

'Программа для переноса из файла Excel в Outlook событий "Собрание" и "Встреча"

Dim olApp As Object  'Для обращений к приложению АутЛук
Dim NewX As Object   'Для создания объекта события
Dim Others As String 'Для работы со списком людей
Dim NewMan As Object 'Для добавления нового участника

Dim They             'Массив приглашенных
Dim R As Byte        'Обработка события
Dim X As Long        'Для перебора строк
Dim A As Long        'Для перебора участников
Dim H As Long        'Высота Таблицы

H = Cells(Rows.Count, 1).End(xlUp).Row
If H < 2 Then Exit Sub
Set olApp = CreateObject("Outlook.Application")

For X = 2 To H
        Select Case Cells(X, 1).Value
            Case "": R = 0
            Case "Собрание": R = 1
            Case "Встреча": R = 2
        End Select
        If R > 0 Then
            Set NewX = olApp.CreateItem(1)
            With NewX
                .MeetingStatus = R
                They = Split(Cells(X, 4).Value, ", ")
                Select Case R
                    Case 1
                        For A = 0 To UBound(They)
                            Others = "<" & They(A) & ">"
                            Set NewMan = NewX.Recipients.Add(Others)
                            NewMan.Type = 1
                        Next A
                        Others = ""
                    Case 2
                        Others = "Участники встречи:" & vbNewLine & vbNewLine
                        For A = 0 To UBound(They)
                            Others = Others & They(A) & vbNewLine
                        Next A
                End Select
                .Subject = Cells(X, 2).Value
                .Location = Cells(X, 3).Value
                .Body = Cells(X, 5).Value & vbNewLine & vbNewLine & Others 'Текст
                .Categories = Cells(X, 6).Value
                .Start = Cells(X, 7).Value + Cells(X, 8).Value
                .End = Cells(X, 9).Value + Cells(X, 10).Value
                If Cells(X, 11).Value = "Да" Then
                    .ReminderSet = True
                    .ReminderMinutesBeforeStart = Cells(X, 12).Value
                Else
                    .ReminderSet = False
                End If
                Select Case R
                    Case 1: .Send
                    Case 2: .Save
                End Select
            End With
        End If
Next X

Set They = Nothing
Set NewMan = Nothing
Set NewX = Nothing
Set olApp = Nothing

End Sub

К сообщению приложен файл: Rio_Assist.xlsb (20.8 Kb)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Понедельник, 24.11.2014, 17:56
 
Ответить
СообщениеВсем привет и хорошего настроения!

Хочу поделиться с сообществом своим решением задачи по автоматическому созданию событий OutLook из книги Excel. Речь идёт о Встречах и Собраниях.

Встреча: событие OutLook, которое отмечается в личном календаре. Устанавливается исключительно для одного пользователя, без вовлечения в процесс других.

Собрание: событие OutLook, которое отмечается в личном календаре с отправкой запроса адресатам. То есть, в отличие от Встречи - другие люди получают уведомление.

Технические нюансы кода:

1). Строго заполнять столбец А для корректной работы программы. Раскрывающиеся списки в помощь.
2). Выделение события цветом корректно работает только на русскоязычном офисе. В остальных случаях цвет категории будет обозначен текстом.
3). Если в столбце "Напоминание?" стоит "Да" - напоминание устанавливается, в остальных случаях - нет.
4). Если хотите просмотреть создаваемые события без сохранения - замените в конце кода .Send / .Save на .Display
5). [Важно!] Участников события вписывать строго через запятую с пробелом: Участник1, Участник2, Участник3
6). [Важно!] Участники Собрания должны быть записаны строго почтовыми адресами: voronov_rv@mail.ru например.
7). Участники Встречи могут быть записаны любыми именами. В тексте события они будут выведены в конце, никакие действия не предусмотрены.

Если данная программа оказалась для Вас полезна или у Вас есть мысли, идеи, мнение, предложения, вопросы - обязательно пишите, ибо интересно же =) На том и держится мой спортивный интерес.

[vba]
Option Explicit Option Base 0 Sub Rio_OutLook_Тime_Manager() 'Author:    Roman "Rioran" Voronov 'Date:      the 24-th of November; 2014 'Feedback:  voronov_rv@mail.ru 'Программа для переноса из файла Excel в Outlook событий "Собрание" и "Встреча" Dim olApp As Object  'Для обращений к приложению АутЛук Dim NewX As Object   'Для создания объекта события Dim Others As String 'Для работы со списком людей Dim NewMan As Object 'Для добавления нового участника Dim They             'Массив приглашенных Dim R As Byte        'Обработка события Dim X As Long        'Для перебора строк Dim A As Long        'Для перебора участников Dim H As Long        'Высота Таблицы H = Cells(Rows.Count; 1).End(xlUp).Row If H < 2 Then Exit Sub Set olApp = CreateObject("Outlook.Application") For X = 2 To H         Select Case Cells(X; 1).Value             Case "": R = 0             Case "Собрание": R = 1             Case "Встреча": R = 2         End Select         If R > 0 Then             Set NewX = olApp.CreateItem(1)             With NewX                 .MeetingStatus = R                 They = Split(Cells(X; 4).Value; ", ")                 Select Case R                     Case 1                         For A = 0 To UBound(They)                             Others = "<" & Тhey(A) & ">"                             Set NewMan = ЧewX.Recipients.Add(Others)                             NewMan.Type = 1                         Next A                         Others = ""                     Case 2                         Others = "Участники встречи:" & vbNewLine & vbNewLine                         For A = 0 To UBound(They)                             Others = Others & Тhey(A) & vbNewLine                         Next A                 End Select                 .Subject = Cells(X; 2).Value                 .Location = Cells(X; 3).Value                 .Body = Cells(X; 5).Value & vbNewLine & vbNewLine & Others 'Текст                 .Categories = Cells(X; 6).Value                 .Start = Cells(X; 7).Value + Cells(X; 8).Value                 .End = Cells(X; 9).Value + Cells(X; 10).Value                 If Cells(X; 11).Value = "Да" Then                     .ReminderSet = Тrue                     .ReminderMinutesBeforeStart = Cells(X; 12).Value                 Else                     .ReminderSet = False                 End If                 Select Case R                     Case 1: .Send                     Case 2: .Save                 End Select             End With         End If Next X Set They = Nothing Set NewMan = Nothing Set NewX = Nothing Set olApp = Nothing End Sub
[/vba]

Автор - Rioran
Дата добавления - 24.11.2014 в 17:09
Gustav Дата: Вторник, 25.11.2014, 09:16 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация: 1194 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Rioran, а где же ссылка на исходную тему с постановкой задачи?
http://www.excelworld.ru/forum/4-14359-1
Считаю,что девушка-постановщик тоже достойна лавров :)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеRioran, а где же ссылка на исходную тему с постановкой задачи?
http://www.excelworld.ru/forum/4-14359-1
Считаю,что девушка-постановщик тоже достойна лавров :)

Автор - Gustav
Дата добавления - 25.11.2014 в 09:16
Rioran Дата: Вторник, 25.11.2014, 09:53 | Сообщение № 3
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Gustav, спасибо, упустил этот момент, этой ссылке здесь самое место =) Как раз там сейчас идёт обсуждение некоторых важных технических моментов.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
СообщениеGustav, спасибо, упустил этот момент, этой ссылке здесь самое место =) Как раз там сейчас идёт обсуждение некоторых важных технических моментов.

Автор - Rioran
Дата добавления - 25.11.2014 в 09:53
Gustav Дата: Вторник, 25.11.2014, 11:09 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация: 1194 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
этой ссылке здесь самое место =) Как раз там сейчас идёт обсуждение некоторых важных технических моментов.

Самое место коду ОТСЮДА - в ТОЙ теме, в единой хорошей теме с единым обсуждением. Девушку из предыдущей своей темы про Outlook выгнали в новую тему в "Другие приложения" http://www.excelworld.ru/forum/3-11719-120301-16-1416334621 , решение запостили здесь, обсуждение ведем там - прекрасно, даже на три темы вопрос размазался :)


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Вторник, 25.11.2014, 11:12
 
Ответить
Сообщение
этой ссылке здесь самое место =) Как раз там сейчас идёт обсуждение некоторых важных технических моментов.

Самое место коду ОТСЮДА - в ТОЙ теме, в единой хорошей теме с единым обсуждением. Девушку из предыдущей своей темы про Outlook выгнали в новую тему в "Другие приложения" http://www.excelworld.ru/forum/3-11719-120301-16-1416334621 , решение запостили здесь, обсуждение ведем там - прекрасно, даже на три темы вопрос размазался :)

Автор - Gustav
Дата добавления - 25.11.2014 в 11:09
Rioran Дата: Вторник, 25.11.2014, 11:36 | Сообщение № 5
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
даже на три темы вопрос размазался

Выражаю протест, Herr Gustav. Ошибка минимум на 50%. В приложенной Вами ссылке решается принципиально другая задача. Таково моё видение.

место коду ОТСЮДА - в ТОЙ теме

Выражаю частичное согласие, Herr Gustav. Люблю в каждой отдельной теме решать отдельный вопрос. Задумка была следующей: создать решение для себя (аве спортивный интерес), выложить его в "Готовые", а под пользователя допиливать уже в отдельной теме. Возможно, моя педантичность переходит некоторые границы. Если мои опасения по поводу перегиба с созданием множества тем подтвердит ещё один форумчанин - планка по различию отдельных тем будет снижена.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщение
даже на три темы вопрос размазался

Выражаю протест, Herr Gustav. Ошибка минимум на 50%. В приложенной Вами ссылке решается принципиально другая задача. Таково моё видение.

место коду ОТСЮДА - в ТОЙ теме

Выражаю частичное согласие, Herr Gustav. Люблю в каждой отдельной теме решать отдельный вопрос. Задумка была следующей: создать решение для себя (аве спортивный интерес), выложить его в "Готовые", а под пользователя допиливать уже в отдельной теме. Возможно, моя педантичность переходит некоторые границы. Если мои опасения по поводу перегиба с созданием множества тем подтвердит ещё один форумчанин - планка по различию отдельных тем будет снижена.

Автор - Rioran
Дата добавления - 25.11.2014 в 11:36
Gustav Дата: Вторник, 25.11.2014, 13:17 | Сообщение № 6
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация: 1194 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
решается принципиально другая задача

Да примерно такая же, только с другим типом элемента. По существу один тот же сценарий (принципиальный):
* CreateObject("Outlook...
* далее CreateItem нужного типа
* далее прописываем свойства Item'а
* и заключительное .Save или .Send


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
решается принципиально другая задача

Да примерно такая же, только с другим типом элемента. По существу один тот же сценарий (принципиальный):
* CreateObject("Outlook...
* далее CreateItem нужного типа
* далее прописываем свойства Item'а
* и заключительное .Save или .Send

Автор - Gustav
Дата добавления - 25.11.2014 в 13:17
Gustav Дата: Вторник, 25.11.2014, 20:53 | Сообщение № 7
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация: 1194 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Примерно такова процедура по добавлению встречи в ЛЮБОЙ календарь:

Sub addAppointmentToAnyOutlookCalendarFromExcel()

    Dim objApp          As Object 'Outlook.Application
    Dim objCalendar     As Object 'Outlook.Folder
    Dim objExplorer     As Object 'Outlook.Explorer
    Dim objModule       As Object 'Outlook.CalendarModule
    Dim objGroup        As Object 'Outlook.NavigationGroup
    Dim objNavFolder    As Object 'Outlook.NavigationFolder
    Dim objAppoint      As Object 'Outlook.AppointmentItem
    
    Set objApp = CreateObject("Outlook.Application")
    Set objCalendar = objApp.Session.GetDefaultFolder(9) '9 = olFolderCalendar
    Set objExplorer = objCalendar.GetExplorer
    
    Set objModule = objExplorer.NavigationPane.Modules.Item("Календарь")
    Set objGroup = objModule.NavigationGroups.Item("Мои календари") '.Item("Общие календари")
    Set objNavFolder = objGroup.NavigationFolders.Item("Calendar") '.Item("отгулы, отпуска")
    
    Set objAppoint = objNavFolder.Folder.Items.Add(1) '1 = olAppointmentItem
                
    With objAppoint
        .Start = DateSerial(2014, 11, 25) + TimeValue("23:45:00")
        .Duration = 30
        .Subject = "subject of appointment"
        .Save
    End With
    
    Set objAppoint = Nothing
    Set objNavFolder = Nothing
    Set objGroup = Nothing
    Set objModule = Nothing
    Set objExplorer = Nothing
    Set objCalendar = Nothing
    
    objApp.Quit
    Set objApp = Nothing

End Sub



МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеПримерно такова процедура по добавлению встречи в ЛЮБОЙ календарь:
[vba]
Sub addAppointmentТoAnyOutlookCalendarFromExcel()      Dim objApp          As Object 'Outlook.Application      Dim objCalendar     As Object 'Outlook.Folder      Dim objExplorer     As Object 'Outlook.Explorer      Dim objModule       As Object 'Outlook.CalendarModule      Dim objGroup        As Object 'Outlook.NavigationGroup      Dim objNavFolder    As Object 'Outlook.NavigationFolder      Dim objAppoint      As Object 'Outlook.AppointmentItem            Set objApp = CreateObject("Outlook.Application")      Set objCalendar = objApp.Session.GetDefaultFolder(9) '9 = olFolderCalendar      Set objExplorer = objCalendar.GetExplorer            Set objModule = objExplorer.NavigationPane.Modules.Item("Календарь")      Set objGroup = objModule.NavigationGroups.Item("Мои календари") '.Item("Общие календари")      Set objNavFolder = objGroup.NavigationFolders.Item("Calendar") '.Item("отгулы, отпуска")            Set objAppoint = objЧavFolder.Folder.Items.Add(1) '1 = olAppointmentItem                      With objAppoint          .Start = DateSerial(2014; 11; 25) + ТimeValue("23:45:00")          .Duration = 30          .Subject = "subject of appointment"          .Save      End With            Set objAppoint = Nothing      Set objNavFolder = Nothing      Set objGroup = Nothing      Set objModule = Nothing      Set objExplorer = Nothing      Set objCalendar = Nothing            objApp.Quit      Set objApp = Nothing End Sub
[/vba]

Автор - Gustav
Дата добавления - 25.11.2014 в 20:53
Ankalim Дата: Четверг, 29.10.2015, 14:24 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Gustav, VB ругается на эту строчку

Set objAppoint = objNavFolder.Folder.Items.Add(1) '1 = olAppointmentItem


в чем может быть проблема?
Может скинете пример?


Сообщение отредактировал Serge_007 - Четверг, 31.12.2015, 01:01
 
Ответить
СообщениеGustav, VB ругается на эту строчку
[vba]
Set objAppoint = objЧavFolder.Folder.Items.Add(1) '1 = olAppointmentItem
[/vba]
в чем может быть проблема?
Может скинете пример?

Автор - Ankalim
Дата добавления - 29.10.2015 в 14:24
Gustav Дата: Четверг, 29.10.2015, 21:11 | Сообщение № 9
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация: 1194 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Пойду в обратном порядке.
Может скинете пример?

Постом выше. Только что проверил - всё работает! Outlook 2013.
в чем может быть проблема?

Уверены, что у Вас существует календарь с маршрутом "Календарь \ Мои календари \ Calendar" ? Если нет такого, то мы близки к разгадке и, возможно, надо просто подправить названия в .Item("...")
VB ругается на эту строчку
Set objAppoint = objNavFolder.Folder.Items.Add(1) '1 = olAppointmentItem

А сразу не сказать, чем именно он ругается? А ругается, наверное, этим:
Run-time error '91':
Object variable or With block variable not set

В общем, маршрут к календарю проверяйте.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеПойду в обратном порядке.
Может скинете пример?

Постом выше. Только что проверил - всё работает! Outlook 2013.
в чем может быть проблема?

Уверены, что у Вас существует календарь с маршрутом "Календарь \ Мои календари \ Calendar" ? Если нет такого, то мы близки к разгадке и, возможно, надо просто подправить названия в .Item("...")
VB ругается на эту строчку
Set objAppoint = objNavFolder.Folder.Items.Add(1) '1 = olAppointmentItem

А сразу не сказать, чем именно он ругается? А ругается, наверное, этим:
Run-time error '91':
Object variable or With block variable not set

В общем, маршрут к календарю проверяйте.

Автор - Gustav
Дата добавления - 29.10.2015 в 21:11
WRaitH Дата: Пятница, 13.11.2015, 15:33 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток.
Товарищи помогите пожалуйста с кодом.
Макрос который выше под свои нужды переделать не смог.
Кое как написал (переписал) код для создания встречи в Outlook данными их Excel но он какой то корявый.....
Вот в чем смысл: Как обычно есть таблица Excel (воронка продаж) (во вложении)
В нее вносятся клиенты и даты проведения "Встречи" или "Звонка"
Так вот если это "Встреча" и в столбце "F" оборот составляет >=250 то в календаре должно появиться: СХ:А:2: Наименование клиента (из столбца "С"), соответственно если оборот от 100-250 то СХ:В:2:Наименование клиента и если оборот <=50 то СХ:С:3:Наименование клиента
И если в столбце это "Звонок" то в календаре должно появиться СХ:С:3:Наименование клиента

С горем пополам получилось сделать выгрузку с "Встреча" или "Звонок", а вот с оборотом засада.
Помогите пожалуйста.
Если приведете код в нормальный вид и что бы он работам быстрее буду очень благодарен

Attribute VB_Name = "Module2"
Sub AddToOutlook()

Dim olAppointment As Outlook.AppointmentItem
Dim olApp As Excel.Application
Dim lngRow As Long, shtSource
Dim outapp As Outlook.Application

Dim x As Date
On Error Resume Next
        Set olApp = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
        Set olApp = CreateObject("Excel.Application")
End If

On Error GoTo 0
        Set shtSource = ThisWorkbook.Sheets("Воронка")

For i = 2 To 404   'Число строк по которое работает цикл выгрузки в календарь

If shtSource.Cells(i, 10) = "" Then 'если не будет значения - выгрузка не происходит

End If

' проверка значения "Встреча"

If shtSource.Cells(i, 15) = "встреча" Then   ' Условие по которому работает выгрузка
If shtSource.Cells(i, 10) > 0 Then           ' Условие по которому работает выгрузка

x = Cells(i, 10) ' дата

        Set outapp = New Outlook.Application
        Set olAppointment = outapp.CreateItem(1) ' создание события в Outlook "встреча"

    With olAppointment
        .Subject = "СХ: " + shtSource.Cells(i, 2)                   'тема
        .Location = shtSource.Cells(i, 14)                          'место
        .Start = shtSource.Cells(i, 10) + shtSource.Cells(i, 11)    'начало события
        .Duration = 60                    'продолжительность события
        .Body = shtSource.Cells(i, 17)                    'Тело письма
        .Categories = "Встреча с клиентом"                          ' категория в Outllok'е для раскраски
        .Save                    'сохранить
'        .Display                    'показать
'        .Send                    'отправить

End With

End If
End If

' проверка значения "Звонок"

If shtSource.Cells(i, 15) = "звонок" Then ' Условие по которому работает выгрузка

x = Cells(i, 10) ' дата

        Set outapp = New Outlook.Application
        Set olAppointment = outapp.CreateItem(1)

    With olAppointment
        .Subject = "ОТ: " + shtSource.Cells(i, 2)                   'тема
        .Location = shtSource.Cells(i, 14)                          'место
        .Start = shtSource.Cells(i, 10) + shtSource.Cells(i, 11)    'начало события
        .Duration = 30                    'продолжительность события
        .Body = shtSource.Cells(i, 17)                    'Тело письма
'        .Categories = "Встреча с клиентом"                          ' категория в Outllok'е для раскраски
        .Save                    'сохранить
'        .Display                    'показать
'        .Send                    'отправить
End With
End If
Next i
End Sub

К сообщению приложен файл: 3829048.xlsm (67.7 Kb)
 
Ответить
СообщениеДоброго времени суток.
Товарищи помогите пожалуйста с кодом.
Макрос который выше под свои нужды переделать не смог.
Кое как написал (переписал) код для создания встречи в Outlook данными их Excel но он какой то корявый.....
Вот в чем смысл: Как обычно есть таблица Excel (воронка продаж) (во вложении)
В нее вносятся клиенты и даты проведения "Встречи" или "Звонка"
Так вот если это "Встреча" и в столбце "F" оборот составляет >=250 то в календаре должно появиться: СХ:А:2: Наименование клиента (из столбца "С"), соответственно если оборот от 100-250 то СХ:В:2:Наименование клиента и если оборот <=50 то СХ:С:3:Наименование клиента
И если в столбце это "Звонок" то в календаре должно появиться СХ:С:3:Наименование клиента

С горем пополам получилось сделать выгрузку с "Встреча" или "Звонок", а вот с оборотом засада.
Помогите пожалуйста.
Если приведете код в нормальный вид и что бы он работам быстрее буду очень благодарен
[vba]
Attribute VB_Name = "Module2"Sub AddТoOutlook()Dim olAppointment As Outlook.AppointmentItemDim olApp As Excel.ApplicationDim lngRow As Long; shtSourceDim outapp As Outlook.ApplicationDim x As DateOn Error Resume Next        Set olApp = GetObject(; "Excel.Application")If Err.Number <> 0 Then        Set olApp = CreateObject("Excel.Application")End IfOn Error GoTo 0        Set shtSource = ТhisWorkbook.Sheets("Воронка")For i = 2 To 404   'Число строк по которое работает цикл выгрузки в календарьIf shtSource.Cells(i; 10) = "" Then 'если не будет значения - выгрузка не происходитEnd If' проверка значения "Встреча"If shtSource.Cells(i; 15) = "встреча" Then   ' Условие по которому работает выгрузкаIf shtSource.Cells(i; 10) > 0 Then           ' Условие по которому работает выгрузкаx = Cells(i; 10) ' дата        Set outapp = New Outlook.Application        Set olAppointment = outapp.CreateItem(1) ' создание события в Outlook "встреча"    With olAppointment        .Subject = "СХ: " + shtSource.Cells(i; 2)                   'тема        .Location = shtSource.Cells(i; 14)                          'место        .Start = shtSource.Cells(i; 10) + shtSource.Cells(i; 11)    'начало события        .Duration = 60                    'продолжительность события        .Body = shtSource.Cells(i; 17)                    'Тело письма        .Categories = "Встреча с клиентом"                          ' категория в Outllok'е для раскраски        .Save                    'сохранить'        .Display                    'показать'        .Send                    'отправитьEnd WithEnd IfEnd If' проверка значения "Звонок"If shtSource.Cells(i; 15) = "звонок" Then ' Условие по которому работает выгрузкаx = Cells(i; 10) ' дата        Set outapp = New Outlook.Application        Set olAppointment = outapp.CreateItem(1)    With olAppointment        .Subject = "ОТ: " + shtSource.Cells(i; 2)                   'тема        .Location = shtSource.Cells(i; 14)                          'место        .Start = shtSource.Cells(i; 10) + shtSource.Cells(i; 11)    'начало события        .Duration = 30                    'продолжительность события        .Body = shtSource.Cells(i; 17)                    'Тело письма'        .Categories = "Встреча с клиентом"                          ' категория в Outllok'е для раскраски        .Save                    'сохранить'        .Display                    'показать'        .Send                    'отправитьEnd WithEnd IfNext iEnd Sub
[/vba]

Автор - WRaitH
Дата добавления - 13.11.2015 в 15:33
petrstepanov Дата: Пятница, 08.07.2016, 14:36 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Rioran, здравствуйте! Спасибо за код, очень круто. Подскажите, как мне создать такое же собрание таким же кодом, но только с перламутровыми пуговицами со автоматической вставкой встречи Skype Meeting? Для каждой строчки - свой Skype Meeting, чтобы группы разных пользователей были разнесены по своим Skype Meetings. Обычно делаю вручную, как на картинке - нажимаю 1, получаю 2.
 
Ответить
СообщениеRioran, здравствуйте! Спасибо за код, очень круто. Подскажите, как мне создать такое же собрание таким же кодом, но только с перламутровыми пуговицами со автоматической вставкой встречи Skype Meeting? Для каждой строчки - свой Skype Meeting, чтобы группы разных пользователей были разнесены по своим Skype Meetings. Обычно делаю вручную, как на картинке - нажимаю 1, получаю 2.

Автор - petrstepanov
Дата добавления - 08.07.2016 в 14:36
  • Страница 1 из 1
  • 1
Поиск:

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