powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Зафиксировать время изменения ячейки
3 сообщений из 3, страница 1 из 1
Зафиксировать время изменения ячейки
    #40129305
VIKTOR0154
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте !
Помогите пожалуйста с отладкой макроса.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Private Sub Worksheet_Change(ByVal Target As Range)

        With Range("K:K") ' Цвет текста
        .Font.Color = vbBlack
        .Characters(1, 8).Font.Color = vbBlue
        
         Dim a As String
         End With
    
    If Intersect(Target, [H:H]) Is Nothing Then Exit Sub ' Запись новой даты к списку предыдущих
    
    On Error Resume Next
    
    With Application: .ScreenUpdating = False: .EnableEvents = False: End With
    
        a = ActiveCell().Offset(-1, 3).Value ' Чтение ячейки с датой
        'MsgBox (a)
    
    Intersect(Target, [H:H]).Offset(0, 3) = Time & " ; " & a
    With Application: .ScreenUpdating = True: .EnableEvents = True: End With
    
    End Sub


Модератор: Учимся использовать тэги оформления кода - FAQ

Он при изменении данных в любой ячейке столбца H записывает время в соответствующую ячейку столбца K.
Но ! правильно это делает только если нажать "стрелу вниз" или ENTER после изменения данных.
Если же нажать другую стрелку или мышью выбрать любую другую ячейку, получается ерунда.
Необходимо корректно записывать время в ячейку столбца K при изменении данных в соответствующей ячейки столбца H, независимо от того, какая ячейка какого столбца будет выбрана следующей.
ЗЫ: основа кода подсмотрена у KL(XL)
...
Рейтинг: 0 / 0
Зафиксировать время изменения ячейки
    #40129309
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIKTOR0154
Но ! правильно это делает только если нажать "стрелу вниз" или ENTER после изменения данных.
Что значит "правильно"?
Делает то, что и написано - берет данные из смещения от АКТИВНОЙ ячейки
VIKTOR0154
Код: vbnet
1.
ActiveCell().Offset(-1, 3)

а активная ячейка зависит от того, какую стрелку ты нажал или куда кликнул после редактирования.

Что мешает брать значение из ячейки Intersect(Target, [H:H]).Offset(0, 3)
...
Рейтинг: 0 / 0
Зафиксировать время изменения ячейки
    #40129324
VIKTOR0154
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, я не силен в программировании VBA, так заработало все как надо !
Спасибо огромное !
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Зафиксировать время изменения ячейки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]