Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/35: Рейтинг темы: голосов - 35, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 22.02.2014
Сообщений: 5
1

Excel дата рождения

22.02.2014, 11:27. Показов 6491. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Народ, кто может-помогите. У меня следующая задача: Есть книга Exce, в ней указаны ФИО клиентов, их дата рождения dd.mm.gggg , номера телефонов и небольшой комментарий. Надо сделать так, чтобы при открытии книги выводилось сообщение, что у такого то сегодня день рождения, если его дата рождения совпадает с текущей. Помогите, пожалуйста- туплю...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.02.2014, 11:27
Ответы с готовыми решениями:

Создайте запись с именем Friend, содержащую следующие поля: фамилия и инициалы, дата рождения, адрес
1.Создайте запись с именем Friend, содержащую следующие поля: фамилия и инициалы, дата рождения,...

дата рождения = дата посещению
Добрый день! Пытаюсь сделать вот такой запрос выбрать и вывести только тех у кого совпадают...

Дата рождения
Всем добрый день! Такой вопрос появился. Есть БД и есть таблица Водители. В этой таблице есть 2...

Дата рождения студента
Помогите написать запрос, пожалуйста Дана Таблица. Составьте запрос для таблицы STUDENT таким...

19
7484 / 4148 / 474
Регистрация: 25.08.2012
Сообщений: 11,529
Записей в блоге: 11
22.02.2014, 11:33 2
При открытии запускаете макрос, который и "пробегает" по дням рождения, сравнивая с текущим.
0
0 / 0 / 0
Регистрация: 22.02.2014
Сообщений: 5
22.02.2014, 11:35  [ТС] 3
Это я знаю, я не могу вспомнить как написать, уже лет 5 не работала в VBA
0
7484 / 4148 / 474
Регистрация: 25.08.2012
Сообщений: 11,529
Записей в блоге: 11
22.02.2014, 12:33 4
Как запускать макрос - http://office.microsoft.com/ru... omatically
Сам макрос, что-то вроде этого. Поэкспериментируйте.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub ДеньРождения()
Dim i As Integer, n As Integer, n0 As Integer, D As Date
D = Date
' n - номер текущей записи листа. Первая колонка с датами взята условно
' Стартуем со строки n0, где должны начаться записи
n = 0: n0 = 0 'n0 на 1 меньше, чем начало записей
5: n = n0 + n + 1
If Cells(1, n) = Empty Then Exit Sub 'Должен быть флаг окончания записей
If Cells(1, n) = D Then Call MsgBox("Проставься!")
GoTo 5
End Sub
0
0 / 0 / 0
Регистрация: 22.02.2014
Сообщений: 5
22.02.2014, 12:44  [ТС] 5
Спасибо. Сейчас попробую
0
2618 / 548 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
22.02.2014, 22:28 6
Вариант решения этой задачи без макросов - во вложении.
Вложения
Тип файла: zip book2.zip (1.9 Кб, 62 просмотров)
1
OldFedor
22.02.2014, 22:32
  #7

Не по теме:

Цитата Сообщение от Dmitrii Посмотреть сообщение
Вариант решения этой задачи без макросов
Действительно. Коротко и ясно.

0
2618 / 548 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
22.02.2014, 22:40 8
Исправленный вариант (учитывается возможность выпадения дня рождения на 29 февраля).
Вложения
Тип файла: zip book3.zip (1.9 Кб, 65 просмотров)
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
22.02.2014, 23:43 9
Прошедшие/наступающие выходные/праздники учли?
0
2618 / 548 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
23.02.2014, 14:20 10
Цитата Сообщение от Hugo121 Посмотреть сообщение
Прошедшие/наступающие выходные/праздники учли?
Зачем? Во-первых, какое отношение эти условия имеют ко дню рождения? Во-вторых, автор темы задал единственное условие:
Цитата Сообщение от Ан_Korob Посмотреть сообщение
... у такого то сегодня день рождения, если его дата рождения совпадает с текущей.
0
0 / 0 / 0
Регистрация: 22.02.2014
Сообщений: 5
23.02.2014, 14:30  [ТС] 11
Это, конечно, все хорошо, но мне надо именно через макрос. Тем более в книге не один лист, а 33- и надо чтобы результат выводился в диалоговое окно
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
23.02.2014, 17:46 12
Dmitrii, если у Вас день рождения сегодня (в воскресенье) - значит Вас не будут поздравлять завтра вместе с теми, у кого день рождения в понедельник. И в пятницу (заранее) тоже не рассчитывайте.
А вообще конечно зависит от задачи - если это клиенты, то конечно пофиг праздники/выходные...
0
0 / 0 / 0
Регистрация: 22.02.2014
Сообщений: 5
23.02.2014, 19:51  [ТС] 13
это для кафе,поэтому день недели значения не имет вообще
0
2618 / 548 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
23.02.2014, 19:59 14
Цитата Сообщение от Ан_Korob Посмотреть сообщение
... в книге не один лист, а 33...
Укажите сразу все условия. От их совокупности может зависеть способ решения задачи.
Цитата Сообщение от Hugo121 Посмотреть сообщение
... не будут поздравлять завтра <...> И в пятницу (заранее) тоже...
Это уже другая задача. Для её полноценного решения, кстати, потребуется табель-календарь на текущий год. Никаким алгоритмом невозможно предусмотреть, например, возникшую в этом году ситуацию с переносом выходного дня с 24 февраля на 3 ноября.
0
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
25.02.2014, 10:38 15
Цитата Сообщение от Dmitrii Посмотреть сообщение
с переносом выходного дня с 24 февраля на 3 ноября.
Извиняюсь за офтоп, но что?
0
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
25.02.2014, 11:22 16
Решение из поста #4 работать в кафе не будет - только в роддоме , так как для дня рождения надо сравнить месяц и дату, без учета совпадения года.

Добавлено через 8 минут
Ан_Korob, если хотите помощь с макросом, а не только моральную поддержку, то выкладывайте данные, которые должен обрабатывать марос - приближенный к реальности пример записей, где должна проводиться проверка дня рождения.
0
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
25.02.2014, 11:39 17
Тут помоему самый простой вариант пойдёт лучше всего. Если макросом то
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub ДеньРождения()
Dim i As Integer, D As String
D = Left(Date, 5)
 
i = 1
Do While Cells(i, 1).Value <> ""
    If Cells(i, 2).Value Like "*" & D & "*" Then dr = dr & Cells(i, 1) & Chr(10)
i = i + 1
Loop
 
If dr <> "" Then MsgBox (dr)
End Sub
Работает при условии, что регион на компе настроен русский или с нашим форматом dd.mm.yyyy. Соответственно даты рождения в том же формате. Рассчитано на то, что в первой колонке ФИО, во второй даты рождения. Поменять не беда
1
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
25.02.2014, 12:15 18
korvindeson,
Так-то да, если ещё объявить и инициализировать переменную dr.
0
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
25.02.2014, 12:58 19
нет, это было бы слишком
0
Dmitrii
25.02.2014, 23:01     Excel дата рождения
  #20

Не по теме:

Цитата Сообщение от korvindeson Посмотреть сообщение
Извиняюсь за офтоп, но что?
О чём вопрос?

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2014, 23:01

Введена дата рождения
Введена дата рождения сколько дней прошло с последнего дня рождения

дата рождения в регистрации
подскажите код добавки &quot;дата рождения&quot; в регистрации

Не записывается дата рождения
&lt;select size=&quot;1&quot; name=&quot;DR&quot;&gt;&lt;option value=&quot;0&quot;&gt;Год&lt;option...

Дата рождения и знак задиака
Привет. Помогите пж написать сценарий, который по дате рождения человека определяет знак его...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru