Добрый день! Подскажите пожалуйста, как добавить условие в уже написанный код. Есть таблица:
ФИО
Дата обращения
Суть заявки
Статус
Дата смены статуса
Иванов
???
закончился картридж
Отправлено
24.10.2019 9:35
Макрос для заполнения даты смены статуса у меня прописан, но как дописать код так, чтобы при выборе сотрудника автоматически появлялись дата и время в ячейке дата обращения. Понимаю, что код должен выглядеть так же, как и для ячейки дата смены статуса, но как продублировать условие - не знаю, нет навыков работы с макросами.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target 'проходим по всем измененным ячейкам
If Not Intersect(cell, Range("D2:D1000")) Is Nothing Then 'если измененная ячейка попадает в диапазон D2:D100
With cell.Offset(0, 1) 'вводим в соседнюю справа ячейку дату
.Value = Now
.EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца E, чтобы дата умещалась в ячейке
End With
End If
Next cell
End Sub
Добрый день. Без файла примера непонятно, где расположена ячейка дата обращения Покажите в файле - при смене здесь надо получить вот такое вот тут, и объясните взаимосвязь. Если речь идет об отслеживании изменений в ячейке столбца А и указания даты изменения в соседней ячейке, то условие добавляется просто:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target 'проходим по всем измененным ячейкам
If Not Intersect(cell, Range("D2:D1000")) Is Nothing Then 'если измененная ячейка попадает в диапазон D2:D100
With cell.Offset(0, 1) 'вводим в соседнюю справа ячейку дату
.Value = Now
.EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца E, чтобы дата умещалась в ячейке
End With
ElseIf Not Intersect(cell, Range("A2:A1000")) Is Nothing Then
With cell.Offset(0, 1) 'вводим в соседнюю справа ячейку дату
.Value = Now
.EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца C, чтобы дата умещалась в ячейке
End With
End If
Next cell
End Sub
При выборе сотрудника из списка - должна появляться дата (и время), когда ячейка с фамилией была заполнена. А дата статуса должна заполняться при каждой смене статуса.
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target 'проходим по всем измененным ячейкам
If Not Intersect(cell, Range("D2:D1000")) Is Nothing Then 'если измененная ячейка попадает в диапазон D2:D100
With cell.Offset(0, 1) 'вводим в соседнюю справа ячейку дату
.Value = Now
.EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца E, чтобы дата умещалась в ячейке
End With
End If
If Not Intersect(cell, Range("A2:A1000")) Is Nothing Then 'если измененная ячейка попадает в диапазон D2:D100
With cell.Offset(0, 1) 'вводим в соседнюю справа ячейку дату
.Value = Now
.EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца E, чтобы дата умещалась в ячейке
End With
End If
Next cell
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target 'проходим по всем измененным ячейкам
If Not Intersect(cell, Range("B2:B1000")) Is Nothing Then 'если измененная ячейка попадает в диапазон D2:D100
With cell.Offset(0, 1) 'вводим в соседнюю справа ячейку дату
.Value = Now
.EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца E, чтобы дата умещалась в ячейке
End With
End If
Next cell
For Each cell In Target 'проходим по всем измененным ячейкам
If Not Intersect(cell, Range("D2:D1000")) Is Nothing Then 'если измененная ячейка попадает в диапазон А2:А100
With cell.Offset(0, 1) 'вводим в соседнюю справа ячейку дату
.Value = Now
.EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца В, чтобы дата умещалась в ячейке
End With
End If
Next cell
End Sub
Пытливый написал: Private Sub Worksheet_Change(ByVal Target As Range) For Each cell In Target 'проходим по всем измененным ячейкам If Not Intersect(cell, Range("D2:D1000")) Is Nothing Then 'если измененная ячейка попадает в диапазон D2:D100 With cell.Offset(0, 1) 'вводим в соседнюю справа ячейку дату .Value = Now .EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца E, чтобы дата умещалась в ячейке End With ElseIf Not Intersect(cell, Range("A2:A1000")) Is Nothing Then With cell.Offset(0, 1) 'вводим в соседнюю справа ячейку дату .Value = Now .EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца C, чтобы дата умещалась в ячейке End With End If Next cellEnd Sub
Спасибо большое, заработало. Я пыталась так делать, но видимо что-то неправильно указывала и итог был неутешительным. Еще раз спасибо!