Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2009, 08:07   #1
mistx
Форумчанин
 
Регистрация: 30.09.2008
Сообщений: 104
По умолчанию автоматическая вставка даты в нужном падеже

Здравствуйте!
Необходимо вставить дату в диапазон ячеек E2:En в формате
05 ноября 2009г.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("D2:D100")) Is Nothing Then
With Target(1, 2)
.Value = Format(Now, "Long Date")
End With
End If
If IsEmpty(Target) Then
Target(1, 2) = Empty
End If
End Sub

при выполнении данного кода получаю 5 Ноябрь 2009 г.
mistx вне форума Ответить с цитированием
Старый 05.11.2009, 08:26   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("D2:D100")) Is Nothing Then
        Target(1, 2).Value = Format(Now, "DD MMMM YYYY г.")
        If IsEmpty(Target) Then Target(1, 2) = Empty
    End If
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 05.11.2009, 10:10   #3
mistx
Форумчанин
 
Регистрация: 30.09.2008
Сообщений: 104
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("D2:D100")) Is Nothing Then
        Target(1, 2).Value = Format(Now, "DD MMMM YYYY г.")
        If IsEmpty(Target) Then Target(1, 2) = Empty
    End If
End Sub
благодарю.
mistx вне форума Ответить с цитированием
Старый 05.11.2009, 11:37   #4
ХочуЗнать
Пользователь
 
Регистрация: 04.10.2009
Сообщений: 71
По умолчанию

Всем большой привет!
Ради Бога, извените меня за непрошенное вторжение! Но, все таки, как вставить месяц словом в падеже, с маленькой буквы да еще и на украинском языке. Например так: 05 листопада 2009 р.
Спасибо!

Последний раз редактировалось ХочуЗнать; 05.11.2009 в 11:43.
ХочуЗнать вне форума Ответить с цитированием
Старый 05.11.2009, 12:04   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Сообщение от ХочуЗнать Посмотреть сообщение
как вставить месяц словом в падеже, с маленькой буквы да еще и на украинском языке. Например так: 05 листопада 2009 р.
А если воспользоваться макрорекордером, и отформатировать ячейку?

Код:
Sub Макрос1()
    Selection.NumberFormat = "[$-FC22]d mmmm yyyy"" р."";@"
End Sub
Код:
Sub Макрос2()
    [a1] = Now
    [a1].NumberFormat = "[$-FC22]d mmmm yyyy"" р."";@"
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 05.11.2009, 12:40   #6
ХочуЗнать
Пользователь
 
Регистрация: 04.10.2009
Сообщений: 71
По умолчанию

Еще раз спасибо!
Но, На листе Эксель работает, а вот в коде ВБА почемуто не хочет. Коды привожу ниже
Private Sub Calendar1_Activate()
If Not IsEmpty(ActiveCell.Value) And IsDate(ActiveCell.Value) Then
Me.Calendar1.Value = ActiveCell.Value
Else
Me.Calendar1.Value = Date
End If
Me.Caption = "Сьогодні - " & Date & " року"
End Sub

Private Sub Calendar1_Click()
End Sub
Application.EnableEvents = False
ActiveCell = Me.frm_Calendar.Value
ActiveCell.NumberFormat = "dd.mm.yyyy р."
Unload Me
Application.EnableEvents = True
End Sub
ХочуЗнать вне форума Ответить с цитированием
Старый 05.11.2009, 13:17   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А что, нельзя было попробовать так:
Код:
Private Sub Calendar1_Activate()
    If Not IsEmpty(ActiveCell.Value) And IsDate(ActiveCell.Value) Then
        Me.Calendar1.Value = ActiveCell.Value
    Else
        Me.Calendar1.Value = Date
    End If
    Me.Caption = "Сьогодні - " & Date & " року"
End Sub

Private Sub Calendar1_Click()
    Application.EnableEvents = False
    ActiveCell = Me.frm_Calendar.Value
    ActiveCell.NumberFormat = "[$-FC22]d mmmm yyyy"" р."";@"
    Unload Me
    Application.EnableEvents = True
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 05.11.2009, 14:08   #8
ХочуЗнать
Пользователь
 
Регистрация: 04.10.2009
Сообщений: 71
По умолчанию

В том и дело, что пробовал, но ничего не получается. Пишет 5 Листопад 2009 р.
А нужно мне это для календарика, который нашел на Планета РУ и хочу приспособить на свою форму. Этот файл с календариком прикрепляю.А саму дату вы можете найти в шапке выпадающего календарика.
Вложения
Тип файла: rar post_67082 копия.rar (26.3 Кб, 16 просмотров)

Последний раз редактировалось ХочуЗнать; 05.11.2009 в 14:12.
ХочуЗнать вне форума Ответить с цитированием
Старый 05.11.2009, 14:33   #9
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Надо свой формат создать.
Через часик ,что нибудь придумаю
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 05.11.2009, 15:09   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
Надо свой формат создать.
сильно сомневаюсь. "[$-FC22]d mmmm yyyy"" р."";@"
у меня это давно и успешно работает: назви місяців українською мовою у родовому відмінку (починаються з маленької літери)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка даты в БД artemavd БД в Delphi 4 07.08.2009 18:06
вставка даты циклом из edit artemavd Общие вопросы Delphi 30 03.08.2009 18:44
автоматическая вставка результата поиска в прайсе в файл расчета ATTA Microsoft Office Excel 23 29.01.2008 14:07
Вставка текущей даты в БД! Oleg Romanchuk БД в Delphi 5 21.08.2007 19:59
Вставка даты в несколько DBDateTimeEditEh одновременно!? John_chek Компоненты Delphi 3 12.02.2007 16:34