Доброго вечера всем участникам. Прошу помощи в корректировке кода. Необходимо всплывающее напоминание о заканчивающихся сроках страховых полисов (за 5 дней до наступлентя и до момента пока дата не поменяется), все данные хранятся в файле "Карточка учета" на листе "Осаго", но напоминание хотелось бы что бы выскакивало при открытии другого файла. Нашла на форуме код, но не могу его доработать под себя( Помогите пожалуйста в реализации)
[vba]
Код
Sub DOSAGO() Dim BD Dim i& Dim dtNow$ Dim dtPrev$ dtNow = Day(Date) & "." & Month(Date) &"." & Year(Date) With Workbooks("C:\Учет страховых полисов\Карточка учета.xlsm").Sheets("ОСАГО") ' файл где хранятся данные BD = .Range("d3:d" & .[d65535].End(xlUp).Row) End With For i = 2 To UBound(BD) dtPrev = Day(BD(i, 1)) & "." &Month(BD(i, 1)) & "." & Year(BD(i, 1)) dtRazn = DateDiff("d", dtNow, dtPrev) If dtRazn <= 3 And dtRazn >= 0Then MsgBox "Через " & dtRazn &" дн. заканчивается страховой полис ОСАГО на автомобиль " & Cells(i + 1, 2) & " регистрационный номер " & Cells(i +1, 1) End If Next End Sub
[/vba]
Доброго вечера всем участникам. Прошу помощи в корректировке кода. Необходимо всплывающее напоминание о заканчивающихся сроках страховых полисов (за 5 дней до наступлентя и до момента пока дата не поменяется), все данные хранятся в файле "Карточка учета" на листе "Осаго", но напоминание хотелось бы что бы выскакивало при открытии другого файла. Нашла на форуме код, но не могу его доработать под себя( Помогите пожалуйста в реализации)
[vba]
Код
Sub DOSAGO() Dim BD Dim i& Dim dtNow$ Dim dtPrev$ dtNow = Day(Date) & "." & Month(Date) &"." & Year(Date) With Workbooks("C:\Учет страховых полисов\Карточка учета.xlsm").Sheets("ОСАГО") ' файл где хранятся данные BD = .Range("d3:d" & .[d65535].End(xlUp).Row) End With For i = 2 To UBound(BD) dtPrev = Day(BD(i, 1)) & "." &Month(BD(i, 1)) & "." & Year(BD(i, 1)) dtRazn = DateDiff("d", dtNow, dtPrev) If dtRazn <= 3 And dtRazn >= 0Then MsgBox "Через " & dtRazn &" дн. заканчивается страховой полис ОСАГО на автомобиль " & Cells(i + 1, 2) & " регистрационный номер " & Cells(i +1, 1) End If Next End Sub
Option Explicit Sub Auto_open() Dim wb As Workbook, bClosed As Boolean, ar As Range, c As Range, dtRazn%, s$, msg$ On Error Resume Next Set wb = Workbooks("Карточка учета.xlsm") On Error GoTo 0 If wb Is Nothing Then Application.ScreenUpdating = False Set wb = Workbooks.Open("C:\Учет страховых полисов\Карточка учета.xlsm") wb.Windows(1).Visible = 0 Application.ScreenUpdating = True bClosed = True End If
For Each ar In ['[Карточка учета.xlsm]ОСАГО'!D:D].SpecialCells(2, 1).Areas For Each c In ar.Cells dtRazn = c - Date s = "" Select Case dtRazn Case Is < 0: s = "На " & Abs(dtRazn) & "дн. просрочен " Case 0: s = "Сегодня заканчивается " Case Is <= 5: s = "Через " & dtRazn & " дн. заканчивается " End Select If s <> "" Then msg = msg & IIf(msg <> "", vbCrLf, "") & s & _ "страховой полис ОСАГО на автомобиль " & c.Offset(, -2) & _ " регистрационный номер " & c.Offset(, -3) Next Next If msg <> "" Then MsgBox msg: Debug.Print msg If bClosed Then wb.Close False End Sub
[/vba]
Здравствуйте [vba]
Код
Option Explicit Sub Auto_open() Dim wb As Workbook, bClosed As Boolean, ar As Range, c As Range, dtRazn%, s$, msg$ On Error Resume Next Set wb = Workbooks("Карточка учета.xlsm") On Error GoTo 0 If wb Is Nothing Then Application.ScreenUpdating = False Set wb = Workbooks.Open("C:\Учет страховых полисов\Карточка учета.xlsm") wb.Windows(1).Visible = 0 Application.ScreenUpdating = True bClosed = True End If
For Each ar In ['[Карточка учета.xlsm]ОСАГО'!D:D].SpecialCells(2, 1).Areas For Each c In ar.Cells dtRazn = c - Date s = "" Select Case dtRazn Case Is < 0: s = "На " & Abs(dtRazn) & "дн. просрочен " Case 0: s = "Сегодня заканчивается " Case Is <= 5: s = "Через " & dtRazn & " дн. заканчивается " End Select If s <> "" Then msg = msg & IIf(msg <> "", vbCrLf, "") & s & _ "страховой полис ОСАГО на автомобиль " & c.Offset(, -2) & _ " регистрационный номер " & c.Offset(, -3) Next Next If msg <> "" Then MsgBox msg: Debug.Print msg If bClosed Then wb.Close False End Sub
Спасибо большое. Подскажите пожалуйста этот код нужно поместить в книгу при открытии которой я хочу что бы появлялось сообщение так? И подсвечивает строку For Each ar In [[Карточка учета.xlsm]ОСАГО!D:D].SpecialCells(2, 1).Areas Выдает ОШИБКУ object required
Спасибо большое. Подскажите пожалуйста этот код нужно поместить в книгу при открытии которой я хочу что бы появлялось сообщение так? И подсвечивает строку For Each ar In [[Карточка учета.xlsm]ОСАГО!D:D].SpecialCells(2, 1).Areas Выдает ОШИБКУ object requiredVitLO
Подскажите пожалуйста, что нужно поменять в строчке Case Is <= 5: s = "Через " & dtRazn & " дн. заканчивается " чтобы он показывал сообщение только за 5 дней до наступления даты, а то при таком условии он пишет и 360 дней осталось до окончания?
Подскажите пожалуйста, что нужно поменять в строчке Case Is <= 5: s = "Через " & dtRazn & " дн. заканчивается " чтобы он показывал сообщение только за 5 дней до наступления даты, а то при таком условии он пишет и 360 дней осталось до окончания?VitLO
Здравствуйте я снова прошу Вашей помощи. Использовала Ваш код который запускается при открытии книги "учет автотранспорта", всплывает 2 msgbox поочередно с данными из разных листов книги "карточки учета". Вчера все работало отлично, сегодня утром перестал работать второй msgbox, а сейчас оба выдают ошибку( вот теперь не могу понять что его перестало устраивать
Здравствуйте я снова прошу Вашей помощи. Использовала Ваш код который запускается при открытии книги "учет автотранспорта", всплывает 2 msgbox поочередно с данными из разных листов книги "карточки учета". Вчера все работало отлично, сегодня утром перестал работать второй msgbox, а сейчас оба выдают ошибку( вот теперь не могу понять что его перестало устраиватьVitLO