Страницы: 1
RSS
Дата создания документа
 
Текущая дата задается функцией "=СЕГОДНЯ()". Это неудобно - сохранив документ и потом открыв его через пару дней я не увижу даты создания документа, будет стоять текущая дата.  
Конечно, можно, проставить дату посредством "ctrl + 4" (в 2007), но по ряду причин, это неудобно.  
Вопрос, а как еще можно в документе поставить дату его создания и при необходимости ее обновить?
 
Можно макросом сохранять в удобную для Вас ячейку.  
 
Например, в ячейку "A1".  
-----------------------  
[A1].Value = Format(Now, "dd.mm.yyyy")
-----------------------
<FONT COLOR="CadetBlue">
 
Окажите любезность, подскажите, это прям так и вставить в лист? Или это надо в модуль?
 
Последнее :)  
 
-----------------------  
Sub ДатаCозданияДокумента()  
[A1].Value = Format(Now, "dd.mm.yyyy")
End Sub  
-----------------------
<FONT COLOR="CadetBlue">
 
Небольшое уточнение: таким способом мы получим текст. А если в ячейке нужна именно дата, то следует попробовать так:  
Sub ДатаCозданияДокумента()  
[A1].Value = Now
[A1].NumberFormat = "dd.mm.yyyy"
End Sub
 
Я вставил код в модуль, но ничего не происходит. Мне кажется, что еще надо и лист указывать, потому как в книге несколько листов. А как лист прописать?
 
{quote}{login=maragva}{date=31.01.2011 02:03}{thema=}{post}Я вставил код в модуль, но ничего не происходит. Мне кажется, что еще надо и лист указывать, потому как в книге несколько листов. А как лист прописать?{/post}{/quote}  
А ничего само собой и не произойдёт - нужно выполнить (запустить) этот макрос :-)
 
И как его запускать? Поставить кнопку? гм... кнопка - неудобно. Я, честно говоря, рассчитывал, что это будет проще - открыл шаблон документа и дата уже стоит.  
Так возможно сделать?
 
Можно вызывать на событие открытие книги, на активацию листа...
 
Ага, я тоже так думаю. Тока сформулировать не могу по причине незнания vba.    
Вы можете помочь?
 
В модуль книги:  
Private Sub Workbook_Open()  
With Sheets("Лист1")  
.Cells(1, 1).Value = Now  
.Cells(1, 1).NumberFormat = "dd.mm.yyyy"  
End With  
End Sub
 
А зачем это вообще нужно? Меню-Файл-Свойства - вкладка статистика, дата создания.
Я сам - дурнее всякого примера! ...
 
{quote}{login=Юрий М}{date=31.01.2011 02:49}{thema=}{post}В модуль книги:  
Private Sub Workbook_Open()  
With Sheets("Лист1")  
Cells(1, 1).Value = Now  
Cells(1, 1).NumberFormat = "dd.mm.yyyy"  
End With  
End Sub{/post}{/quote}  
 
Не показывает дату. Лист переименовал на свой.  
Cells(1, 1) - я правильно понимаю столбец, ячейка?
 
Cells(1, 1) - это аналог Range("A1") <BR>Книгу нужно сохранить, закрыть, и снова открыть. В указанной ячейке появится текущая дата в указанном формате. Также можете заглянуть в раздел "Приемы": http://www.planetaexcel.ru/tip.php?aid=28.
 
Ах нет, я ошибся, работает.  
Спасибо большое
 
{quote}{login=Юрий М}{date=31.01.2011 02:49}{thema=}{post}В модуль книги:  
Private Sub Workbook_Open()  
With Sheets("Лист1")  
Cells(1, 1).Value = Now  
Cells(1, 1).NumberFormat = "dd.mm.yyyy"  
End With  
End Sub{/post}{/quote}Юр, а ничего, что эта штука всегда будет втыкать дату и время последнего открытия? Вроде вопрос: "Дата создания документа".
Я сам - дурнее всякого примера! ...
 
А я знаю? Может так нужно :-) Можно ведь сделать проверку дополнительную - если ячейка пустая, то заносим дату...  
В конце концов я дал ссылку и на другой вариант.
 
Есть ещё такое:  
Sheets("Лист1").Range("A2")= ActiveWorkbook.BuiltinDocumentProperties("Creation Date")
 
Получается так, что практичнее оказывается кнопка. Пробовал и так и этак.    
А если автоматом ставить дату, то надо по условию, скажем, если в листе таком-то такая-то ячейка больше нуля, то дата ставится, иначе - нет. Правда не знаю, как сформулировать программно
 
Private Sub Workbook_Open()  
With Sheets("Лист1")  
if .cells(1,1) <> "" then .Cells(1, 1).Value = Now  
.Cells(1, 1).NumberFormat = "dd.mm.yyyy"  
End With  
End Sub  
Проверяется: если в ячейке ничего нет - заносим туда текущую дату.    
Также см. моё предыдущее сообщение.  
В "Приемы" ходили?
 
Я вообще, прежде, чем задать вопрос, пытаюсь сам решить свою проблему. Был я в приемах, и браузер юзал...  
 
Чет не выходит у меня... Вы извините, я в этом бестолковый  
 
If .Cells(I128) <> "" Then .Cells(H3).Value = Now  
.Cells(H3).NumberFormat = "dd.mm.yyyy"  
 
Я же правильно сделал?
 
Этот путь не совсем верный: Вам ведь нужно именно дату СОЗДАНИЯ документа. А при таком подходе в ячейку будет занесена ТЕКУЩАЯ дата (если ячейка пустая).  
Поэтому лучше использовать варианты:  
1. Использовать =ActiveWorkbook.BuiltinDocumentProperties("Creation Date") - будет отображаться именно дата создания документа.  
2. Который по ссылке в "Приемах" - когда вводятся данные в ячейку, а в соседней (или любой другой) появляется ТЕКУЩАЯ дата.
 
Ни хрена у меня не получается. Вконец запутался. Поэтому, оставлю-ка я дату на кнопке. Спасибо за участие
 
Private Sub Workbook_Open()  
With Sheets("Лист1")  
.Cells(1, 1)=ActiveWorkbook.BuiltinDocumentProperties("Creation Date")    
.Cells(1, 1).NumberFormat = "dd.mm.yyyy"  
End With
Страницы: 1
Читают тему
Наверх