Имеется список Клиентов с: 1 названием компании 2 контактная инфа 3 дата созвона 4 дата тендера
Что хотелось бы: напоминалку с закладками на 7 дней (на 1 дату одна закладка, в ней перечень компаний с короткой инфой (1 название компании; 2 контактная инфа; 3 дата тендера). Друг от друга данные отделяются подчеркиванием и нужна прокрутка - Данных может быть много).
Также было бы удобно вызывать напоминалку кнопкой на листе или сочетанием клавиш после обновления данных на листе.
Как пока собрано на чужих примерах - Лист1 Прошу помощи применить к листу - Затея (расположение столбцов из моей базы) Также прошу чтобы было 7 закладок с датами (позавчера, вчера, сегодня, завтра, послезавтра, сегодня +3, сегодня +4) Данные должны отображаться в последовательности - столбец 1 название компании (столбец D) 2 контактная инфа (столбец F) 3 дата тендера (столбец M) Пример приложил в виде 3 картинок
Здравствуйте. Есть потребность в напоминалке.
Имеется список Клиентов с: 1 названием компании 2 контактная инфа 3 дата созвона 4 дата тендера
Что хотелось бы: напоминалку с закладками на 7 дней (на 1 дату одна закладка, в ней перечень компаний с короткой инфой (1 название компании; 2 контактная инфа; 3 дата тендера). Друг от друга данные отделяются подчеркиванием и нужна прокрутка - Данных может быть много).
Также было бы удобно вызывать напоминалку кнопкой на листе или сочетанием клавиш после обновления данных на листе.
Как пока собрано на чужих примерах - Лист1 Прошу помощи применить к листу - Затея (расположение столбцов из моей базы) Также прошу чтобы было 7 закладок с датами (позавчера, вчера, сегодня, завтра, послезавтра, сегодня +3, сегодня +4) Данные должны отображаться в последовательности - столбец 1 название компании (столбец D) 2 контактная инфа (столбец F) 3 дата тендера (столбец M) Пример приложил в виде 3 картинокA_00016
Private Sub Workbook_Open() msgText = "" For Each i In Sheets("Лист1").[D1:D29] If InStr(1, i, Format(Now(), "d.mm.yy")) Then If Len(msgText) > 0 Then msgText = msgText & Chr(10) msgText = msgText & Format(Now(), "d.mm.yy") & Chr(10) & _ Cells(i.Row, 1) & " " & Cells(i.Row, 2) & Chr(10) & _ Replace(i, Format(Now(), "d.mm.yy"), "") & Chr(10) & _ "------------------------------------------" With i.Offset(0, 1) 'плюс ещё один столбец If Len(.Value) > 0 Then msgText = msgText & Chr(10) & Left(.Value, InStr(1, .Value, " ")) & Chr(10) & _ Cells(i.Row, 1) & " " & Cells(i.Row, 2) & Chr(10) & _ Mid(.Value, InStr(1, .Value, " ") + 1, 999) & Chr(10) & _ "------------------------------------------" End If End With End If Next UserForm1.Show 0 End Sub
[/vba]
В обычном модуле (Insert -> Module): [vba]
Код
Public msgText As String
[/vba]
Создаём пользовательскую форму (Insert -> UserForm), размещаем на ней Надпись (Label) и модуле формы (F7) прописываем:
[vba]
Код
Private Sub MultiPage1_Change()
End Sub
Private Sub UserForm_Initialize() Me.Label1.Caption = msgText Me.MultiPage1.Pages(0).Caption = Format(Now(), "d.mm.yy") End Sub
[/vba]
В результате: Дата и текст напоминания берутся из одной ячейки – у меня дата в одной ячейке, данные в других ячейках. В примере, дата в столбике D – у меня в столбике К В примере данные берутся из столбиков «В», «А», «D» - у меня должны браться из столбиков «D», «F», «М» Учитывая большое количество событий, нужна полоса прокрутки – не все помещается на экране. После обновления данных в экселе для запуска напоминалки нужна кнопка – закрывать, а потом открывать файлик долго.
Что сейчас имеется:
В модуле книги ЭтаКнига:
[vba]
Код
Private Sub Workbook_Open() msgText = "" For Each i In Sheets("Лист1").[D1:D29] If InStr(1, i, Format(Now(), "d.mm.yy")) Then If Len(msgText) > 0 Then msgText = msgText & Chr(10) msgText = msgText & Format(Now(), "d.mm.yy") & Chr(10) & _ Cells(i.Row, 1) & " " & Cells(i.Row, 2) & Chr(10) & _ Replace(i, Format(Now(), "d.mm.yy"), "") & Chr(10) & _ "------------------------------------------" With i.Offset(0, 1) 'плюс ещё один столбец If Len(.Value) > 0 Then msgText = msgText & Chr(10) & Left(.Value, InStr(1, .Value, " ")) & Chr(10) & _ Cells(i.Row, 1) & " " & Cells(i.Row, 2) & Chr(10) & _ Mid(.Value, InStr(1, .Value, " ") + 1, 999) & Chr(10) & _ "------------------------------------------" End If End With End If Next UserForm1.Show 0 End Sub
[/vba]
В обычном модуле (Insert -> Module): [vba]
Код
Public msgText As String
[/vba]
Создаём пользовательскую форму (Insert -> UserForm), размещаем на ней Надпись (Label) и модуле формы (F7) прописываем:
[vba]
Код
Private Sub MultiPage1_Change()
End Sub
Private Sub UserForm_Initialize() Me.Label1.Caption = msgText Me.MultiPage1.Pages(0).Caption = Format(Now(), "d.mm.yy") End Sub
[/vba]
В результате: Дата и текст напоминания берутся из одной ячейки – у меня дата в одной ячейке, данные в других ячейках. В примере, дата в столбике D – у меня в столбике К В примере данные берутся из столбиков «В», «А», «D» - у меня должны браться из столбиков «D», «F», «М» Учитывая большое количество событий, нужна полоса прокрутки – не все помещается на экране. После обновления данных в экселе для запуска напоминалки нужна кнопка – закрывать, а потом открывать файлик долго.A_00016
Сообщение отредактировал A_00016 - Вторник, 01.09.2020, 18:09
По теме, интересует 3 пункта: 1 Как изменить источник получения данных (одни ячейки сменить на другие) 2 как добавить прокрутку (Клиентов в моей базе больше 1500, не все помещаются в окошко напоминалки) 3 нужна кнопка за запуска напоминалки после обновления данных на листе экселя - сама база открывается не быстро (много листов с данными потенциальных Клиентов из разных источников)
По теме, интересует 3 пункта: 1 Как изменить источник получения данных (одни ячейки сменить на другие) 2 как добавить прокрутку (Клиентов в моей базе больше 1500, не все помещаются в окошко напоминалки) 3 нужна кнопка за запуска напоминалки после обновления данных на листе экселя - сама база открывается не быстро (много листов с данными потенциальных Клиентов из разных источников)A_00016