Профессиональные приемы работы в Microsoft Excel

Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск  

Новости:

Из правил форума: Тема должна отражать суть вопроса, топики типа "help please" будут удаляться!

Автор Тема: Напоминание в EXCEL  (Прочитано 40505 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Mr.Kekc

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 3
Re: Напоминание в EXCEL
« Ответ #25 : 19.02.2010, 16:34:55 »

Я конечно мало чего тут понимаю, но не могли бы вы мне помочь?!
С этим все понятно, все получилось.
реально-ли организовать в 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

  • Старожил
  • ****
  • Уважение: +92/-0
  • Оффлайн Оффлайн
  • Сообщений: 989
  • Все идет хорошо, только мимо ...
Re: Напоминание в EXCEL
« Ответ #26 : 19.02.2010, 17:57:49 »

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

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

  • Ветеран
  • *****
  • Уважение: +31/-0
  • Оффлайн Оффлайн
  • Сообщений: 1 085
  • WORK SMARTER, NOT HARDER
Re: Напоминание в EXCEL
« Ответ #27 : 22.02.2010, 10:52:41 »


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


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

Wasilic

  • Старожил
  • ****
  • Уважение: +92/-0
  • Оффлайн Оффлайн
  • Сообщений: 989
  • Все идет хорошо, только мимо ...
Re: Напоминание в EXCEL
« Ответ #28 : 22.02.2010, 11:20:29 »

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

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

  • Ветеран
  • *****
  • Уважение: +31/-0
  • Оффлайн Оффлайн
  • Сообщений: 1 085
  • WORK SMARTER, NOT HARDER
Re: Напоминание в EXCEL
« Ответ #29 : 22.02.2010, 11:30:52 »

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

Mr.Kekc

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 3
Re: Напоминание в EXCEL
« Ответ #30 : 24.02.2010, 10:34:11 »

поправочка, цели изменились.
как исправить этот код
Цитировать
Private Sub Workbook_Open()
  msgText = ""
  For Each i In Sheets("лист1").[C1:C350]
    If InStr(1, i, Format(Now(), "dd.mm.yy")) Then
      If Len(msgText) > 0 Then msgText = msgText & Chr(10)
      msgText = msgText & Replace(i, Format(Now(), "d.mm.yy"), "")
    End If
  Next
  UserForm1.Show 0
End Sub
чтобы сообщение выводил на дату, которая меньше или равна текущей минус 30 дней?
Т.е. если сегодня 24.02.2010, то он выводил сообщение, на дату равной или менее 23.03.2010.
Или на определенное выражение, если с датой невозможно.
Записан

Mr.Kekc

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 3
Re: Напоминание в EXCEL
« Ответ #31 : 25.02.2010, 13:46:52 »

Никто не знает как решить проблему?
Записан

Wasilic

  • Старожил
  • ****
  • Уважение: +92/-0
  • Оффлайн Оффлайн
  • Сообщений: 989
  • Все идет хорошо, только мимо ...
Re: Напоминание в EXCEL
« Ответ #32 : 25.02.2010, 18:42:05 »

ИМХО проблема в вопросе.
Записан
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

oryol

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 6
Re: Напоминание в EXCEL
« Ответ #33 : 24.06.2010, 11:30:16 »

u menea excel 2007, hotelasi zdelati dokument s napominaniem, kto mojit pomo4i??? plizz
Записан

Шпец Докапыч

  • Ветеран
  • *****
  • Уважение: +189/-4
  • Оффлайн Оффлайн
  • Сообщений: 1 919
  • ОБЛАДАТЕЛЬ УНИКАЛЬНЫХ НАВЫКОВ!!! :)
Re: Напоминание в EXCEL
« Ответ #34 : 24.06.2010, 11:46:34 »

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

oryol

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 6
Re: Напоминание в EXCEL
« Ответ #35 : 24.06.2010, 14:34:38 »

kak naiti eti functii (

(добавлено)
nasol, sorii
« Последнее редактирование: 24.06.2010, 22:43:07 от Шпец Докапыч »
Записан

oryol

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 6
Re: Напоминание в EXCEL
« Ответ #36 : 25.06.2010, 10:20:21 »

4to nado zdelati 4tobi etot dokument kakto napomnil o sebe kogda deni napomenanie nastupil?
Записан

oryol

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 6
Re: Напоминание в EXCEL
« Ответ #37 : 25.06.2010, 10:53:55 »



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

kak budet vangliskom variante?
Записан

Шпец Докапыч

  • Ветеран
  • *****
  • Уважение: +189/-4
  • Оффлайн Оффлайн
  • Сообщений: 1 919
  • ОБЛАДАТЕЛЬ УНИКАЛЬНЫХ НАВЫКОВ!!! :)
Re: Напоминание в EXCEL
« Ответ #38 : 25.06.2010, 11:47:03 »

ЕСЛИ = IF. См. весь перечень соответствий в теме "список формул на рус и англ языках"
Вместо [;], разделителем аргументов по умолчанию в англ. версии служит [,]. Если русское название пользовательской функции не прокатит, то в формуле и коде надо прописать тоже латинскими: ШООБЩЕНИЕ = SHMSG

Function SHMSG(txt As String) As String
  Application.Volatile
  MsgBox txt
  SHMSG = txt
End Function
Записан
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

oryol

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 6
Re: Напоминание в EXCEL
« Ответ #39 : 25.06.2010, 12:54:47 »

nat takovo SHMSG

(добавлено)
gde mojno po4itati, kak eto mojno zdelati ot А до Я???
« Последнее редактирование: 25.06.2010, 13:28:47 от Шпец Докапыч »
Записан

Шпец Докапыч

  • Ветеран
  • *****
  • Уважение: +189/-4
  • Оффлайн Оффлайн
  • Сообщений: 1 919
  • ОБЛАДАТЕЛЬ УНИКАЛЬНЫХ НАВЫКОВ!!! :)
Re: Напоминание в EXCEL
« Ответ #40 : 25.06.2010, 13:34:55 »

Можешь посмотреть здесь: "Как создавать свои функции" (en.)
Записан
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

oryol

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 6
Re: Напоминание в EXCEL
« Ответ #41 : 26.06.2010, 10:43:45 »

nu tipa 4islo ia zdelal stobi fihadilo mne kogda nujen deni, no hotelasi sprositi kak zdelati 4tobi failik sam prokri4al ili dal o sebe znati, 4to sevodnia deni kotorii nujen?
Записан

ExDD

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 3
Re: Напоминание в EXCEL
« Ответ #42 : 23.05.2011, 21:55:01 »

Подскажите пожалуйста. Я в ВБА не в зуб ногой, но очень надо сделать нечто подобное вашей напоминалке в Экселе.
Есть даты в столбце A, кроме того номера договора (B), фамилия исполнителя (С), регион и телефон контакта(D).
Пытаюсь писать код как у вас, но после открытия файла, выдаётся только пустое окошко. В каких-то командах начал разбираться, но глубоко вникнуть не получается.
Получается вывести только значение одной ячейки с помощью offset, а уже более сложное - не осиливаю.
Мне хотелось бы, чтобы окошко выдавало все данные из строк с совпадающим значением даты. То есть:
25.05.2011 №... ФИО исполнителя и телефон. И так все совпадающие.
В идеале бы ещё и на ближайшие пару дней.
Надеюсь ветка ещё жива и помощь придёт)
Заранее спасибо.
Private Sub Workbook_Open()
  msgText = ""
  For Each i In Sheets("Лист1").[A2:A100]
    If InStr(2, i, Format(Now(), "dd.mm.yy")) Then
      If Len(msgText) > 0 Then msgText = msgText & Chr(10)
       msgText = msgText & Format(Now(), "dd.mm.yy") & Chr(10) & _
                Cells(i.Row, 1) & " " & Cells(i.Row, 2) & Chr(10) & _
                Replace(i, Format(Now(), "dd.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
P.S. Кстати, при отладке кода, заметил, что выполнение не входит в основной цикл.
то есть программа доходит до:

For Each i In Sheets("Лист1").[A2:A100]
    If InStr(1, i, Format(Now(), "dd.mm.yy")) Then
Условие не выполняется и он уходит в конец цикла, после чего история повторяется.
« Последнее редактирование: 24.05.2011, 10:46:36 от ExDD »
Записан

ExDD

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 3
Re: Напоминание в EXCEL
« Ответ #43 : 25.05.2011, 21:49:23 »

Спасибо, всё сделал сам)) Книжка по VBA и ваш код в помощь)
Записан

A_00016

  • Пользователь
  • **
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 67
  • Владимир
Re: Напоминание в EXCEL
« Ответ #44 : 28.08.2020, 11:06:36 »

Всем привет.
Очень актуальная тема для меня.
Подскажите как получить последние файлы с реализованными решениями? (если нет возможности, помогите с решением. Я в ВБА полный ноль).

У меня такая же необходимость в напоминалке.
Есть список Клиентов (название листа, порядок и расположение столбцов реальное) с:
1 названием компании
2 контактная инфа
3 дата созвона
4 дата тендера

Что хотелось бы:
напоминалку с закладками на 7 дней (на 1 дату (столбец K) одна закладка, в ней перечень компаний с короткой инфой. Друг от друга данные можно отделить как-то).

Короткая инфа по компании:
1 название компании (столбец D)
2 контактная инфа (столбец F)
3 дата тендера (столбец M)

Также было бы удобно вызывать напоминалку кнопкой на листе или сочетанием клавиш после обновления данных на листе.

Записан

A_00016

  • Пользователь
  • **
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 67
  • Владимир
Re: Напоминание в EXCEL
« Ответ #45 : 01.09.2020, 17:09:35 »

Что сейчас имеется:

В модуле книги ЭтаКнига:
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

В обычном модуле (Insert -> Module):
Public msgText As String
Создаём пользовательскую форму (Insert -> UserForm), размещаем на ней Надпись (Label) и модуле формы (F7) прописываем:
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


В результате:
Дата и текст напоминания берутся из одной ячейки – у меня дата в одной ячейке, данные в других ячейках.
В примере, дата в столбике D – у меня в столбике К
В примере данные берутся из столбиков «В», «А», «D» - у меня должны браться из столбиков «D», «F», «М»
Учитывая большое количество событий, нужна полоса прокрутки – не все помещается на экране.
После обновления данных в экселе для запуска напоминалки нужна кнопка – закрывать, а потом открывать файлик долго.
Записан
 



Темы без ответов

14.08.2020 15:13 Импорт из Эксель в Аксесс 294
24.01.2020 14:03 На диаграмме Ганта несоответствие оси Y 439
09.08.2019 14:09 Макрос для заполнения таблиц через форму 2134
18.07.2019 16:02 Рассылка почты из Excel при помощи почтовой программы TheBAT! 1782
09.07.2019 20:39 Кредит с уменьшением периода выплат 1899
28.05.2019 21:09 Сделать несколько скриптов для рабочей таблицы 2506
05.03.2019 17:00 Последовательный вывод таблиц Excel в один документ Word без шаблона 2511
05.03.2019 09:29 Нежелательные изменение размеров колонтитула при редактировании 2325
07.02.2019 01:36 Как удалить дубликаты из выпадающего связанного списка? 2394
20.01.2019 12:38 Все варианты частичного суммирования 2567





Яндекс цитирования msexcel.ru Яндекс.Метрика

Страница сгенерирована за 0.183 секунд. Запросов: 145.