Excel автоматическое сохранение предыдущих значений ячейки при изменениях
Помогите пожалуйста , как сделать так чтобы когда меняешь значение одной ячейки, предыдущее значение сохранялось в новой ячейке, например я в день несколько раз могу менять значение ячейки С3 ее предыдущее значение записывается в D3, итак каждый раз
Помогите пожалуйста , как сделать так чтобы когда меняешь значение одной ячейки, предыдущее значение сохранялось в новой ячейке, например я в день несколько раз могу менять значение ячейки С3 ее предыдущее значение записывается в D3, итак каждый раз mergin07
и отключить автоматическое вычисление. Также не забыть нажать F9 перед вводом в С3 нового значения.
Гемор полнейший
и отключить автоматическое вычисление. Также не забыть нажать F9 перед вводом в С3 нового значения.
Гемор полнейший ShAM
и отключить автоматическое вычисление. Также не забыть нажать F9 перед вводом в С3 нового значения.
Гемор полнейший Автор - ShAM
Дата добавления - 16.03.2014 в 06:03
Private Previous_Value
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count = 1 And Target.Address(0, 0) = "C3" Then Previous_Value = [C3]
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 And Target.Address(0, 0) = "C3" Then [D3] = Previous_Value
End Sub
Private Previous_Value
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count = 1 And Target.Address(0, 0) = "C3" Then Previous_Value = [C3]
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 And Target.Address(0, 0) = "C3" Then [D3] = Previous_Value
End Sub
Private Previous_Value
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count = 1 And Target.Address(0, 0) = "C3" Then Previous_Value = [C3]
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 And Target.Address(0, 0) = "C3" Then [D3] = Previous_Value
End Sub
Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
В код модуля листа надо было вставить то что в рамке.
Уберите из модуля строку "код в модуле листа " AlexM
Private Previous_Value
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Range("C3:C10"), Target) Is Nothing Then Previous_Value = Target
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Range("C3:C10"), Target) Is Nothing Then Target.Offset(0, 1) = Previous_Value
End Sub
Private Previous_Value
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Range("C3:C10"), Target) Is Nothing Then Previous_Value = Target
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Range("C3:C10"), Target) Is Nothing Then Target.Offset(0, 1) = Previous_Value
End Sub
Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
Private Previous_Value
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Range("C3:C10"), Target) Is Nothing Then Previous_Value = Target
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Range("C3:C10"), Target) Is Nothing Then Target.Offset(0, 1) = Previous_Value
End Sub
Спасибо за помощь!, благодарю, все сделал
Спасибо за помощь!, благодарю, все сделал mergin07
Спасибо за помощь!, благодарю, все сделал Автор - mergin07
Дата добавления - 16.03.2014 в 15:54
По хорошему надо модуль "Эта книга" дополнить кодом, который при открытии книги переместит курсор со столбца С, например на А1.
Для чего это нужно. Переменная запоминается по событию выбора ячейки. Если при открытии книги курсор находится на С3, и вы будете менять в этой ячейке значение, то переменная окажется пустой и в D3 ничего не запишется.
По хорошему надо модуль "Эта книга" дополнить кодом, который при открытии книги переместит курсор со столбца С, например на А1.
Для чего это нужно. Переменная запоминается по событию выбора ячейки. Если при открытии книги курсор находится на С3, и вы будете менять в этой ячейке значение, то переменная окажется пустой и в D3 ничего не запишется. AlexM
ее, а там курсора не будет, данные в первом столбце берутся из другой ячейки, а как сделать чтобы данные со столбца с сохранялись в выбранный мною столбец , а не в соседний как в вашем случае?
ее, а там курсора не будет, данные в первом столбце берутся из другой ячейки, а как сделать чтобы данные со столбца с сохранялись в выбранный мною столбец , а не в соседний как в вашем случае? mergin07
Среднее значение сместил в столбец D, а предыдущее значение столбца В помещается в столбец С
Код в модуле листа[vba]
Private Previous_Value
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Range("E3:E16,H3:H16,K3:K16,N3:N16,Q3:Q16,T3:T16"), Target) Is Nothing Then Previous_Value = Range("B" & Target.Row)
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Range("E3:E16,H3:H16,K3:K16,N3:N16,Q3:Q16,T3:T16"), Target) Is Nothing Then
ActiveSheet.Unprotect
Range("C" & Target.Row) = Previous_Value
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End Sub
Среднее значение сместил в столбец D, а предыдущее значение столбца В помещается в столбец С
Код в модуле листа[vba]
Private Previous_Value
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Range("E3:E16,H3:H16,K3:K16,N3:N16,Q3:Q16,T3:T16"), Target) Is Nothing Then Previous_Value = Range("B" & Target.Row)
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Range("E3:E16,H3:H16,K3:K16,N3:N16,Q3:Q16,T3:T16"), Target) Is Nothing Then
ActiveSheet.Unprotect
Range("C" & Target.Row) = Previous_Value
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End Sub
Private Previous_Value
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Range("E3:E16,H3:H16,K3:K16,N3:N16,Q3:Q16,T3:T16"), Target) Is Nothing Then Previous_Value = Range("B" & Target.Row)
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Range("E3:E16,H3:H16,K3:K16,N3:N16,Q3:Q16,T3:T16"), Target) Is Nothing Then
ActiveSheet.Unprotect
Range("C" & Target.Row) = Previous_Value
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End Sub
А куда девать среднее значение, которое формулой считается в С5?
Полагаю, в этой таблице еще нет столбца для записи предыдущих значений столбца В
А куда девать среднее значение, которое формулой считается в С5?
Полагаю, в этой таблице еще нет столбца для записи предыдущих значений столбца В
А куда девать среднее значение, которое формулой считается в С5?
Полагаю, в этой таблице еще нет столбца для записи предыдущих значений столбца В
Еще раз объясню более подробно.
после того как я поменяю все значения каждого столбца расчитывается среднее значение в столбец В - это 1цикл
через некоторое время я снова меняю все данные (нужно чтобы когда я начинаю менять ексель подождал меня пока я все 6 столбцов поменяю) и как только заканчиваю, то есть 6 столбцов сначала первую сверху вниз, потом вторую сверху вниз и т д и заканчивая ячейкой Т15 все , пред. данные столбца в как бы копируются в с
Еще раз объясню более подробно.
после того как я поменяю все значения каждого столбца расчитывается среднее значение в столбец В - это 1цикл
через некоторое время я снова меняю все данные (нужно чтобы когда я начинаю менять ексель подождал меня пока я все 6 столбцов поменяю) и как только заканчиваю, то есть 6 столбцов сначала первую сверху вниз, потом вторую сверху вниз и т д и заканчивая ячейкой Т15 все , пред. данные столбца в как бы копируются в с mergin07
Как запомнить или сохранить предыдущее значение измененной ячейки в Excel?
Обычно при обновлении ячейки новым содержимым предыдущее значение будет закрыто, если не отменить операцию в Excel. Однако, если вы хотите сохранить предыдущее значение для сравнения с обновленным, сохранение предыдущего значения в другой ячейке или в комментарии к ячейке будет хорошим выбором. В этом вам поможет метод, описанный в этой статье.
Сохранить предыдущее значение ячейки с кодом VBA в Excel
Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!
Предположим, у вас есть таблица, как показано на скриншоте ниже. Если какая-либо ячейка в столбце C изменилась, вы хотите сохранить ее предыдущее значение в соответствующей ячейке столбца G или автоматически сохранить в комментарии. Для этого сделайте следующее.
1. На рабочем листе содержится значение, которое вы сохраните при обновлении, щелкните правой кнопкой мыши вкладку листа и выберите Просмотреть код из контекстного меню. Смотрите скриншот:
2. В дебюте Microsoft Visual Basic для приложений Скопируйте приведенный ниже код VBA в окно кода.
Следующий код VBA помогает сохранить предыдущее значение ячейки указанного столбца в другой столбец.
Код VBA: сохранить предыдущее значение ячейки в другую ячейку столбца
Чтобы сохранить предыдущее значение ячейки в комментарии, примените приведенный ниже код VBA.
Код VBA: сохранить предыдущее значение ячейки в комментарии
Внимание: В коде цифра 7 указывает столбец G, в который вы сохраните предыдущую ячейку, а C: C - столбец, в котором вы сохраните предыдущее значение ячейки. Пожалуйста, измените их в соответствии с вашими потребностями.
3. Нажмите Инструменты > Рекомендации для открытия Ссылки - VBAProject диалоговое окно, проверьте Среда выполнения сценариев Microsoft поле и, наконец, щелкните OK кнопка. Смотрите скриншот:
4. нажмите другой + Q ключи, чтобы закрыть Microsoft Visual Basic для приложений окно.
С этого момента, когда значение ячейки в столбце C обновляется, предыдущее значение ячейки будет сохранено в соответствующие ячейки в столбце G или будет сохранено в комментариях, как показано на скриншотах ниже.
Kutools for Excel - это мощная надстройка, которая освобождает вас от выполнения трудоемких операций в Excel, таких как быстрое объединение листов, объединение ячеек без потери данных, вставка только в видимые ячейки, подсчет ячеек по цвету и так далее. Более 300 мощных функций / функций для Excel 2021, 2019, 2016, 2013, 2010, 2007 или Office 365!
Вкладка Office 14.50 ГОРЯЧИЙ
Добавление интерфейса с вкладками для Office
Он обеспечивает просмотр с вкладками, редактирование и управление приложениями Microsoft Office. Вы можете открывать несколько документов/файлов в одном окне с вкладками, например, используя браузер IE 8/9/10, Firefox и Google Chrome. Он совместим с Office 2021, 2019, 2016, 2013, 2010, 2007, 2003 или Office 365. Демо
Kutools для Outlook 15.00 НОВИНКИ
100+ мощных функций для Outlook
Kutools for Outlook — это мощная надстройка, которая освобождает вас от трудоемких операций, которые большинству пользователей Outlook приходится выполнять ежедневно! Это может сэкономить ваше время при использовании Microsoft Outlook 2021, 2019, 2016, 2013, 2010 или Office 365!
Kutools для Word 10.00 НОВИНКИ
100+ мощных функций для Word
Kutools for Word - это мощная надстройка, которая освобождает вас от трудоемких операций, которые большинству пользователей Word приходится выполнять ежедневно! Это может сэкономить ваше время при использовании Microsoft Word / Office 2021, 2019, 2016, 2013, 2010, 2007, 2003 или Office 365!
Советы и хитрости
Excel
- Как сравнить две рабочие тетради на предмет различий?
- Как использовать НОВУЮ и РАСШИРЕННУЮ функцию XLOOKUP в Excel (10 примеров)
- Как посчитать ячейки с текстом в Excel
- Excel добавляет текст и число в указанную позицию ячейки
- Excel удаляет символы, слова, числа из текстовых строк
- Учебник по Excel — извлечение текста или числа по определенной позиции
- Учебное пособие по Excel: разделение ячеек текста, чисел и даты (разделенных на несколько столбцов)
- Учебное пособие по Excel: объединение нескольких книг / листов в одну
- Случайные данные Excel: генерируйте случайные числа, тексты, даты, время в Excel
- Как использовать ИНДЕКС и ПОИСКПОЗ вместе в Excel
- Поиск и замена текстов в документе Word, верхнем и нижнем колонтитулах
- Как удалить все изображения из документа Word?
- Как одновременно просматривать две страницы в документе Word?
- Как удалить водяной знак с одной определенной страницы в документе Word?
- Как разместить водяные знаки в документе Word по вертикали?
- Как вставить водяной знак на определенные страницы вместо всех страниц в документе Word?
- Как перейти на конкретную страницу, щелкнув в документе Word?
- Как щелкнуть, чтобы увеличить или увеличить изображение в документе Word?
- Как изменить шрифт и размер шрифта во всех текстовых полях в документе Word?
- Как конвертировать файлы формата .doc в .docx в Word?
Outlook
Учебники по функциям
Kutools for Excel
Kutools for Word
Kutools для Outlook
Как запомнить или сохранить предыдущее значение измененной ячейки в Excel?
Обычно при обновлении ячейки новым содержимым предыдущее значение будет закрыто, если не отменить операцию в Excel. Однако, если вы хотите сохранить предыдущее значение для сравнения с обновленным, сохранение предыдущего значения в другой ячейке или в комментарии к ячейке будет хорошим выбором. В этом вам поможет метод, описанный в этой статье.
Сохранить предыдущее значение ячейки с кодом VBA в Excel
Предположим, у вас есть таблица, как показано на скриншоте ниже. Если какая-либо ячейка в столбце C изменилась, вы хотите сохранить ее предыдущее значение в соответствующей ячейке столбца G или автоматически сохранить в комментарии. Для этого сделайте следующее.
1. На рабочем листе содержится значение, которое вы сохраните при обновлении, щелкните правой кнопкой мыши вкладку листа и выберите Просмотреть код из контекстного меню. Смотрите скриншот:
2. В дебюте Microsoft Visual Basic для приложений Скопируйте приведенный ниже код VBA в окно кода.
Следующий код VBA помогает сохранить предыдущее значение ячейки указанного столбца в другой столбец.
Код VBA: сохранить предыдущее значение ячейки в другую ячейку столбца
Чтобы сохранить предыдущее значение ячейки в комментарии, примените приведенный ниже код VBA.
Код VBA: сохранить предыдущее значение ячейки в комментарии
Внимание: В коде цифра 7 указывает столбец G, в который вы сохраните предыдущую ячейку, а C: C - столбец, в котором вы сохраните предыдущее значение ячейки. Пожалуйста, измените их в соответствии с вашими потребностями.
3. Нажмите Инструменты > Рекомендации для открытия Ссылки - VBAProject диалоговое окно, проверьте Среда выполнения сценариев Microsoft поле и, наконец, щелкните OK кнопка. Смотрите скриншот:
4. нажмите другой + Q ключи, чтобы закрыть Microsoft Visual Basic для приложений окно.
С этого момента, когда значение ячейки в столбце C обновляется, предыдущее значение ячейки будет сохранено в соответствующие ячейки в столбце G или будет сохранено в комментариях, как показано на скриншотах ниже.
Нужно, чтобы в столбец D сохранялась вся история изменений ячейки В1, т.е. так:
В этом примере макроса описывается сохранение изменения ячейки B1 в столбец D.
Дело в том, что в примере значения сохраняются только, если они были изменены вручную. А нужно, чтобы сохранения происходили и тогда, когда изменения значений ячеек происходит автоматически. Помогите, как это сделать?
Изменения формата ячейки в зависимости от значения другой ячейки
Здравствуйте, помогите решить такой вопрос. Задача, которая в принципе решается средствами.
Изменения формата ячейки Excel средствами VBA в зависимости от значения другой ячейки
Здравствуйте. Столкнулся с проблемой. Необходимо на листе Excel Залить, предположим, ячейку "C4".
Получение значения ячейки DataGridView до ее изменения
В программе в DataGridView применяется метод DataGridView.CellValueChanged, который позволяет.
Сохранение значения ячейки в переменную
У меня есть таблица из нескольких столбцов и строк, использую DBGrid и Query для работы с ней.
Может тут кто-то еще есть живой и ответит на вопрос как сделать чтобы числа новые сохранялись не в столбик, а в строку и чтобы если автоматически значение меняется,то старое автоматом менялось
ак сделать чтобы числа новые сохранялись не в столбик, а в строку и чтобы если автоматически значение меняется,то старое автоматом менялось
Формула в ячейке D1,
строка с результатами - сам попробуй.
В D1--формула. По моим понятиям - измененние в ячейках B1 и B2 приведет к изменению значения в D1.
поэтому ,полагаясь на адекватную логику ТС я сразу и написал изменить значение D1, что автоматически означает изменения в В1 и В2 (в моем примере). , а если и в В! и В2 -формула - то Бог знает где.
Narimanych, ваш макрос в таком виде будет выполняться при пересчете любой формулы на листе,поскольку выражение Not Intersect([D1], Range("D1")) Is Nothing всегда истинно. Сейчас на листе только одна формула в ячейке D1, ссылающаяся на аргументы в ячейках B1 и B2, поэтому макрос сработает только при изменении значений а этих ячейках. При изменении значения в D1 формула будет заменена константой и макрос не будет работать.
AlexOld,
Формула в ячейке D1 сама меняет значение.
Добавлено через 13 минут
В ячейке может быть формула ,и которая при вычислении генерирует какое-то значение, чтобы изменить значение в ячейке с формулой необходимо изменить значения аргументов функции.
Если вам в математике скажут: измените значение функции, вы стираете ее и пишите вместо нее константу?
Так почему же изменение значения функции в ячейке D1 вызывает у вас бурю ?
Я нигде не сказал заменить функцию константой. изменение значения функции подразумевает изменение значений аргументов.
Читайте также: