есть файл excelс общим доступом и лежит в папке локальной сети/ файл с макросом: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("W:W;AB:AB")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False newval = Target Application.Undo oldval = Target If IsError(Application.WorksheetFunction.Match(newval, Range(Replace(Target.Validation.Formula1, "=", "")), 0)) Then Target = newval Else If Len(oldval) <> 0 And oldval <> newval Then Target = Target & ";" & Chr(10) & " " & newval Else Target = newval End If End If If Len(newval) = 0 Then Target.ClearContents Application.EnableEvents = True End If End Sub
[/vba]
после внесения изменений в какую-либо ячейку, вернуться через ctr+z уже не получается: файл сохраняется видимо уже сразу после внесения данных в ячейку.
как можно сделать чтоб оставалась возможность в случае неверного внесения данных в таблице можно было вернуться на несколько шагов назад?
добрый день.
есть файл excelс общим доступом и лежит в папке локальной сети/ файл с макросом: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("W:W;AB:AB")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False newval = Target Application.Undo oldval = Target If IsError(Application.WorksheetFunction.Match(newval, Range(Replace(Target.Validation.Formula1, "=", "")), 0)) Then Target = newval Else If Len(oldval) <> 0 And oldval <> newval Then Target = Target & ";" & Chr(10) & " " & newval Else Target = newval End If End If If Len(newval) = 0 Then Target.ClearContents Application.EnableEvents = True End If End Sub
[/vba]
после внесения изменений в какую-либо ячейку, вернуться через ctr+z уже не получается: файл сохраняется видимо уже сразу после внесения данных в ячейку.
как можно сделать чтоб оставалась возможность в случае неверного внесения данных в таблице можно было вернуться на несколько шагов назад?lok888
Сообщение отредактировал lok888 - Понедельник, 13.03.2017, 03:02
я вам уже писал, что он не сохраняется - из него можно выйти без сохранения изменений
ну а если например вносятся изменения в десять ячеек. в десятой случайно или удалил все или еще что-то накосячил и нужно на шаг вернуться. получается что только закрывать весь файл без сохранения и потом по новой все десять ячеек обрабатывать ???? мои коллеги убьют меня если я им сообщу такую новость )))))
эмм... не знаю что такое STACK и UNDO =) по читаю))) если есть хоть маленькая возможность попробую сделать.
еще проблема возникла с тем что бывает копируешь ячейку и пытаешься в ставить в другую, но вставляет пустоту.. с нескольких попыток получается только (( тож из-за подправленного исходного текста. блин, вот хочешь упростить работу с эксель, но выходит наоборот )))
я вам уже писал, что он не сохраняется - из него можно выйти без сохранения изменений
ну а если например вносятся изменения в десять ячеек. в десятой случайно или удалил все или еще что-то накосячил и нужно на шаг вернуться. получается что только закрывать весь файл без сохранения и потом по новой все десять ячеек обрабатывать ???? мои коллеги убьют меня если я им сообщу такую новость )))))
эмм... не знаю что такое STACK и UNDO =) по читаю))) если есть хоть маленькая возможность попробую сделать.
еще проблема возникла с тем что бывает копируешь ячейку и пытаешься в ставить в другую, но вставляет пустоту.. с нескольких попыток получается только (( тож из-за подправленного исходного текста. блин, вот хочешь упростить работу с эксель, но выходит наоборот )))lok888
Михаил, Если вопрос по "не совсем верно" ко мне ,то я имел в виду что категорически нельзя наверно не уместно, так как есть вариант уйти в собственный обработчик, но в самом конце я и написал " в этом случае Михаил прав." именно иходя из сложности, целесообразности ....
Михаил, Если вопрос по "не совсем верно" ко мне ,то я имел в виду что категорически нельзя наверно не уместно, так как есть вариант уйти в собственный обработчик, но в самом конце я и написал " в этом случае Михаил прав." именно иходя из сложности, целесообразности ....bmv98rus
Замечательный Временно просто медведь , процентов на 20.
согласен, но тогда это касается любого софта - всегда можно написать свой - потому как одно дело макрос откатить, а другое дело мониторить, что на листе творится на несколько шагов назад
[offtop]
Цитата
категорически нельзя наверно не уместно
согласен, но тогда это касается любого софта - всегда можно написать свой - потому как одно дело макрос откатить, а другое дело мониторить, что на листе творится на несколько шагов назадbuchlotnik
из статьи понял что можно прописать действия, которые возможно откатить. Type SaveRange vFormula As Variant sAddr As String lColor As Long
вот есть ли список где-нибудь таких пользовательских типов, чтоб прописать их в коде как в той статье на всевозможные случаи жизни ? =))) ну какие основные ошибки могут быть при заполнении отчета в котором у нас макрос: цифру не ту прописал, дату, слово с ошибкой, не туда скопировал текст или ячейку в целом, заливка, строку вставил не туда или столбец. - ну вот основные, если в код прописать эти несколько пользовательских типов, то можно ж будет создать некую ... ну е совсем полноценную модель но с возможностью отката изменений ? )))
из статьи понял что можно прописать действия, которые возможно откатить. Type SaveRange vFormula As Variant sAddr As String lColor As Long
вот есть ли список где-нибудь таких пользовательских типов, чтоб прописать их в коде как в той статье на всевозможные случаи жизни ? =))) ну какие основные ошибки могут быть при заполнении отчета в котором у нас макрос: цифру не ту прописал, дату, слово с ошибкой, не туда скопировал текст или ячейку в целом, заливка, строку вставил не туда или столбец. - ну вот основные, если в код прописать эти несколько пользовательских типов, то можно ж будет создать некую ... ну е совсем полноценную модель но с возможностью отката изменений ? )))lok888