Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как поставить текущую дату в ячейку при двойном клике на нее - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как поставить текущую дату в ячейку при двойном клике на нее (Макросы/Sub)
Как поставить текущую дату в ячейку при двойном клике на нее
Bigimoot27 Дата: Понедельник, 23.02.2015, 12:56 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день, постепенно начинаю изучение VBA (пока еще в этом совсем зеленый), слышал, что можно при двойном нажатии на ячейку вставить текущую дату (та что на компьютере). Подскажите, пожалуйста, как это сделать? :)
 
Ответить
СообщениеДобрый день, постепенно начинаю изучение VBA (пока еще в этом совсем зеленый), слышал, что можно при двойном нажатии на ячейку вставить текущую дату (та что на компьютере). Подскажите, пожалуйста, как это сделать? :)

Автор - Bigimoot27
Дата добавления - 23.02.2015 в 12:56
Manyasha Дата: Понедельник, 23.02.2015, 13:23 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
В модуль листа поместите код:
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      ActiveCell = Date
End Sub
[/vba]
Или в модуль книги (тогда дата будет вставляться на любом листе книги)
[vba]
Код
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
     Target.Value = Date
End Sub
[/vba]


ЯД: 410013299366744 WM: R193491431804

Сообщение отредактировал Manyasha - Понедельник, 23.02.2015, 13:26
 
Ответить
СообщениеВ модуль листа поместите код:
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      ActiveCell = Date
End Sub
[/vba]
Или в модуль книги (тогда дата будет вставляться на любом листе книги)
[vba]
Код
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
     Target.Value = Date
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 23.02.2015 в 13:23
Bigimoot27 Дата: Понедельник, 23.02.2015, 13:29 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Manyasha, спасибо)) И еще вопрос: а как сделать так, что бы в конкретной ячейки выполнялась эта задача (например только в ячейке B7)? ну и в каком то диапазоне (например только в столбце В)?


Сообщение отредактировал Bigimoot27 - Понедельник, 23.02.2015, 13:33
 
Ответить
СообщениеManyasha, спасибо)) И еще вопрос: а как сделать так, что бы в конкретной ячейки выполнялась эта задача (например только в ячейке B7)? ну и в каком то диапазоне (например только в столбце В)?

Автор - Bigimoot27
Дата добавления - 23.02.2015 в 13:29
Gustav Дата: Понедельник, 23.02.2015, 14:08 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2748
Репутация: 1138 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
например только в столбце В

Добавить первым оператором каждой процедуры проверку на принадлежность кликаемой ячейки заданному диапазону:
[vba]
Код
If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
[/vba]
P.S. И если кроме простановки даты с ячейкой более ничего не предполагается делать, то следует отменить переход в режим редактирования этой ячейки, который стандартно выполняется по дабл-клику. Для этого в конец процедуры следует включить оператор:
[vba]
Код
Cancel = True
[/vba]
Итого, например, для всей книги имеем:
[vba]
Код
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
     If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
     Target.Value = Date
     Cancel = True
End Sub
[/vba]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Понедельник, 23.02.2015, 14:22
 
Ответить
Сообщение
например только в столбце В

Добавить первым оператором каждой процедуры проверку на принадлежность кликаемой ячейки заданному диапазону:
[vba]
Код
If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
[/vba]
P.S. И если кроме простановки даты с ячейкой более ничего не предполагается делать, то следует отменить переход в режим редактирования этой ячейки, который стандартно выполняется по дабл-клику. Для этого в конец процедуры следует включить оператор:
[vba]
Код
Cancel = True
[/vba]
Итого, например, для всей книги имеем:
[vba]
Код
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
     If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
     Target.Value = Date
     Cancel = True
End Sub
[/vba]

Автор - Gustav
Дата добавления - 23.02.2015 в 14:08
SkyPro Дата: Понедельник, 23.02.2015, 14:38 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
А чем ctrl+; не угодил? (; = ж)


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Понедельник, 23.02.2015, 14:38
 
Ответить
СообщениеА чем ctrl+; не угодил? (; = ж)

Автор - SkyPro
Дата добавления - 23.02.2015 в 14:38
Bigimoot27 Дата: Понедельник, 23.02.2015, 23:49 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Gustav, Спасибо hands
 
Ответить
СообщениеGustav, Спасибо hands

Автор - Bigimoot27
Дата добавления - 23.02.2015 в 23:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как поставить текущую дату в ячейку при двойном клике на нее (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!