Напоминание в EXCEL

Автор Cartman, 30.01.2009, 14:58

« назад - далее »

Шпец Докапыч

#15
Цитата: Cartman от 08.02.2009, 02:18
не работает (
показывает только "сегодняшние" события, следующие дни не показывает...

А я и не подцеплял следующие.  ;)
См. вложение - там в коде указано где менять диапазон и как выглядит несмежный.
Плюс прикрутил ListBox.


***Файл временно удален из-за подозрения на вирусы.***
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

Cartman

Цитата: Шпец Докапыч от 08.02.2009, 12:08
Цитата: Cartman от 08.02.2009, 02:18
не работает (
показывает только "сегодняшние" события, следующие дни не показывает...

А я и не подцеплял следующие.  ;)
См. вложение - там в коде указано где менять диапазон и как выглядит несмежный.
Плюс прикрутил ListBox.

что-то не так.. ругается на слово format  в шестой строке. говорит "Compile error: Can't find project or library"
что делать?

Шпец Докапыч

Цитата: Cartman от 08.02.2009, 20:33
говорит "Compile error: Can't find project or library"
что делать?

Первое, что следует проверить, когда не найдена библиотека:
Tools -> References на наличие строки:
MISSING: <название библиотеки>

И если такая есть, то переподключить эту библиотему через кн. "Brawse..."

А ещё можно уточнить на чём именно затык, если строку:
If InStr(1, i, Format(Now(), "d.mm.yy")) Then Call Text(i)
разложить на след. конструкцию:
    vr = Now()
    vrF = Format(vr, "d.mm.yy")
    If InStr(1, i, vrF) Then
      Call Text(i)
    End If
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

Cartman

странно как-то.. опция References не активна..
переместил все коды в старый файл - ЗАРАБОТАЛО!! :)
спасибо!

Cartman

#19
Несколько вопросов:
1) каким образом можно задать диапазоны поиска для разных листов книги (в формате "Лист1" - С1:O100, "Лист2" - В1:В100 и т.д..)
2) можно-ли организовать обратную связь из окошка напоминания к ячейке, которая вызвала напоминание (к примеру для изменения даты или содержания напоминания) либо выделение этой ячейки.
3) как организовать поиск дат к примеру на 14 дней вперед? 14 раз прописать этот код добавляя каждый раз +1?
   For Each i In myRange 'ищем сегодня
       If InStr(1, i, Format(Now(), "d.mm.yy")) Then Call Text(i)
     Next
4) как организовать перенос по строкам напоминаний, которые не вмещается в выделенную область в ListBox'е

спасибо

Cartman

как организовать закрытие формы по нажатию Esc ?

Шпец Докапыч

Цитата: Cartman от 28.02.2009, 12:11
как организовать закрытие формы по нажатию Esc ?

Надо написать реакцию на событие KeyDown, KeyUp или KeyPress.

Допустим на отжатие "Esc" будет так:
Private Sub UserForm_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = 27 Then Unload Me
End Sub
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

Cartman

не получается (
я так понимаю код вставлять в свойства формы? но не закрывает окошко

Шпец Докапыч

Цитата: Cartman от 28.02.2009, 13:16
я так понимаю код вставлять в свойства формы?

Создайте это событие для тех элементов, расположенных на форме, в которых может находиться фокус, когда возникнет желание нажать на "Esc". ;)
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

Cartman

элементов вроде и не густо, а не получается...


Private Sub ListBox1_Click()

End Sub

Private Sub ListBox_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = 27 Then Unload Me
End Sub

Private Sub UserForm_Initialize()
  Me.ListBox1.List = Split(msgText, Chr(10))
End Sub

Private Sub UserForm_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = 27 Then Unload Me
End Sub


что не так?

p.s.
еще вопросик: как добавить еще один диапазон на другом листе книги? пробовал уже по всякому но так и не получилось (
Set myRange = Sheets("Лист1").Range("C6:P500")


спасибо

Mr.Kekc

Я конечно мало чего тут понимаю, но не могли бы вы мне помочь?!
С этим все понятно, все получилось.
Цитата: Шпец Докапыч от 30.01.2009, 21:03
Цитата: Cartman от 30.01.2009, 14:58
реально-ли организовать в EXCEL "напоминание" на определенное событие?

Реально. Вот инструкция:

  • A1: =СЕГОДНЯ()
  • A8: =<требуемая дата>
  • B8: =ЕСЛИ(A8=A1;ШСООБЩЕНИЕ("Настало время познакомиться с VBA поближе.");"Осталось "&A8-A1&" дней.")

В модуле приложения (Insert -> Module) размещаем код пользовательской функции:
Function ШСООБЩЕНИЕ(Текст As String) As String
  Application.Volatile
  MsgBox Текст
  ШСООБЩЕНИЕ = Текст
End Function

Мне нужно сделать так, что бы это сообщение появлялось только 1 раз (у меня появляется 4 раза, т.к. у меня 4 даты? а будет больше) в самом начале и больше меня не беспокоило до следующего открытия файла, т.е. что бы я смог в нем работать и вносить изменения.
Не подскажите как такое провернуть?

Wasilic

Цитата: Шпец Докапыч от 08.02.2009, 12:08
А я и не подцеплял следующие.  ;)
См. вложение - там в коде указано где менять диапазон и как выглядит несмежный.
Плюс прикрутил ListBox.
Уважаемый Шпец Докапыч! Файлик загружается с ТРОЯНОМ!!!!!!
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

Алексей Шмуйлович

Цитата: Wasilic от 19.02.2010, 17:57

Уважаемый Шпец Докапыч! Файлик загружается с ТРОЯНОМ!!!!!!


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

Wasilic

На нет и суда нет.
Но, в таком случае, эта зараза цеплялась бы ко всем открываемым файлам Экселя. Однако - только к этому.
У меня лицензионный Vba32 c ежедневным обновлением
Здесь  http://www.virusblokada.ru/   и здесь  http://anti-virus.by/ 
есть проверка в ОН-ЛАЙН.
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

Алексей Шмуйлович

Да, действительно, пишет, что файл инфицирован.
Хорошо, спасибо. Файл пока с форума удаляю и передаю на анализ в NOD32