Страницы: 1
RSS
Не правильное отображение даты
 
Добрый день уважаемые форумчане.
Есть код:

Код
Private Sub Workbook_Open()
Sheets("Форма").Range("I2").Value = Format(Date, "dd.mm.yyyy")
End Sub
который при открытии книги проставляет в ячейку дату. Если в эту ячейку внести дату вручную, то все красиво, все идеально, но дату вставленную макросом, сводная таблица напрочь отказывается видеть ее как дату. Соответственно не могу установить временную шкалу, пишет: не удается установить временную шкалу, так как отсутствует поле "Дата".
Дата исправляется двойным кликом в ячейке Базы откуда сводная берет данные. Но таких ячеек много и в каждой делать двойной клик займет много времени. Подскажите как можно это побороть.
 
если xl рускоязычный - попробуйте рус яз по коду - "ДД.ММ.ГГГГ"
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Спасибо вроде бы помогло. Дата теперь вставляется правильно. Но как теперь исправить те даты, которые были внесены в базу ранее. Таких ячеек больше 5000 и во всех делать даблклик займет уйму времени.
 
попробуйте вашим кодом (код в общий модуль)
Код
Sub test ()
Sheets("Форма").Range("I2:I50").Value = Format(Date, "ДД.ММ.ГГГГ")   'диапазон укажите нужный !!!!!!!
End Sub
(если база в одной книге)
Изменено: JeyCi - 18.02.2015 10:30:46
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Не получилось. В ячейках появилась запись вида: ДД42053,ММ.ГГГГ
 
попробуйте выделить столбик, затем "Данные - Текст по столбцам - Готово"
 
а так?
Код
Sub test ()
Dim cl As Range
    For Each cl In Sheets("Форма").Range("I2:I500")  
     cl.NumberFormat = "ДД.ММ.ГГГГ"           'или cl.Value = Format(cl.Value, "ДД.ММ.ГГГГ")
    Next
End Sub
приложите файл - быстрее можете получить ответ...
Изменено: JeyCi - 18.02.2015 11:03:14
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Sheets("Форма").Range("I2:I50").Value = Date
Изменено: alexthegreat - 18.02.2015 11:01:29
 
JeyCi ваш вариант не сработал. Все правильные даты, т.е. те которые вводились вручную и имели правильный формат даты, превратились в запись вида: ДД42053,ММ.ГГГГ, а вот те даты которые имели неправильный формат и которые собственно и нужно было привести к правильному, остались прежние и при даблклике меняются на запись вида: ДД42053,ММ.ГГГГ, т.е. в неправильные.
alexthegreat ваш код сработал, все поменяло, спасибо.
v.fix86 всего-навсего??? и без макросов, спасибо получилось. Всем большая благодарочка.
 
значит в моём последнем коде (№7) правильнее использовать "dd.mm.yyyy" (на моём xl)
- был бы пример - проверила бы сама  ;)  
(xl как-то по-своему ориентируется в языках - то по-русски, то по-англ)
Изменено: JeyCi - 18.02.2015 11:53:29
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
А почему просто нельзя:
Код
Private Sub Workbook_Open()
Sheets("Форма").Range("I2").Value = Date
End Sub

?
 
Михаил С. Как раз это и предложил
alexthegreat что и было сделано впоследствии. Но проблема была не только в этом. Это решило проблему со вновь создаваемыми датами. А нужно было еще исправить бока по ранее созданным датам, которые уже были внесены неправильными в базу. Макрос на  Private Sub Workbook_Open() работает на вновь создаваемые даты , а вот старые нужно было как-то поправить, то-ли в ручную, то-ли макросом, в чем собственно и помог разобраться v.fix86. Вручную надо было лопатить больше 5000 ячеек двойным кликом на каждой. Поэтому в принципе проблема решилась.
Изменено: antal10 - 18.02.2015 19:37:18
Страницы: 1
Наверх