Добрый день! При добавлении сведений в ячейку, в соседней появляется дата и время. Используется следующее: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target If Not Intersect(cell, Range("W9:W3000")) Is Nothing Then With cell.Offset(0, -1) .Value = Now .EntireColumn.AutoFit End With End If Next cell End Sub
[/vba] Подскажите, пожалуйста, что необходимо изменить или добавить, чтобы в ячейке отражалась только дата. На эту ячейку есть ссылка из другой таблицы, но значения не показывает. А, если удалить время и оставить дату, то значения показывает
Добрый день! При добавлении сведений в ячейку, в соседней появляется дата и время. Используется следующее: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target If Not Intersect(cell, Range("W9:W3000")) Is Nothing Then With cell.Offset(0, -1) .Value = Now .EntireColumn.AutoFit End With End If Next cell End Sub
[/vba] Подскажите, пожалуйста, что необходимо изменить или добавить, чтобы в ячейке отражалась только дата. На эту ячейку есть ссылка из другой таблицы, но значения не показывает. А, если удалить время и оставить дату, то значения показываетkazityrs
Сообщение отредактировал kazityrs - Среда, 04.06.2014, 13:10
Private Sub Worksheet_Change(ByVal Target As Range) For Each cell In Target If cell <> "" Then If Not Intersect(cell, Range("W9:W3000")) Is Nothing Then With cell.Offset(0, -1) .Value = Date .EntireColumn.AutoFit End With End If End If Next cell End Sub
[/vba]
Отчего ж, поможем. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) For Each cell In Target If cell <> "" Then If Not Intersect(cell, Range("W9:W3000")) Is Nothing Then With cell.Offset(0, -1) .Value = Date .EntireColumn.AutoFit End With End If End If Next cell End Sub
Спасибо, способ хорошо работает, а можно сделать так чтоб дата которая там появляется была запрещена для редактирования пользователю, а то хитрецов много.
Спасибо, способ хорошо работает, а можно сделать так чтоб дата которая там появляется была запрещена для редактирования пользователю, а то хитрецов много.systema404
чтоб дата которая там появляется была запрещена для редактирования пользователю
тогда так [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) For Each cell In Target If cell <> "" Then If Not Intersect(cell, Range("W9:W3000")) Is Nothing Then With cell.Offset(0, -1) .Value = Date .EntireColumn.AutoFit End With End If End If Next cell End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) For Each cell In Target If cell.Column = 22 Then If cell <> "" Then Application.EnableEvents = 0 cell.Offset(, 1).Select Application.EnableEvents = 1 Exit Sub End If End If Next cell End Sub
чтоб дата которая там появляется была запрещена для редактирования пользователю
тогда так [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) For Each cell In Target If cell <> "" Then If Not Intersect(cell, Range("W9:W3000")) Is Nothing Then With cell.Offset(0, -1) .Value = Date .EntireColumn.AutoFit End With End If End If Next cell End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) For Each cell In Target If cell.Column = 22 Then If cell <> "" Then Application.EnableEvents = 0 cell.Offset(, 1).Select Application.EnableEvents = 1 Exit Sub End If End If Next cell End Sub
Нет, Саш, твой код копипастом на раз обходится. Этот обойти сложнее. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("W9:W3000")) Is Nothing Then If Target <> "" Then With Target.Offset(0, -1) .Value = Date .EntireColumn.AutoFit End With End If End If If Not Intersect(Selection, Columns(22)) Is Nothing Then Application.EnableEvents = 0 Application.Undo Application.EnableEvents = 1 End If End Sub
[/vba]
Нет, Саш, твой код копипастом на раз обходится. Этот обойти сложнее. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("W9:W3000")) Is Nothing Then If Target <> "" Then With Target.Offset(0, -1) .Value = Date .EntireColumn.AutoFit End With End If End If If Not Intersect(Selection, Columns(22)) Is Nothing Then Application.EnableEvents = 0 Application.Undo Application.EnableEvents = 1 End If End Sub
А под мой код подделеть могли бы пожалуйста. Мне надо чтоб колонку R была не изменяема.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) For Each cell In Target If Not Intersect(cell, Range("B6:Q4368")) Is Nothing Then With Range("R" & cell.Row) .Value = Now .EntireColumn.AutoFit End With End If Next cell End Sub
[/vba]
А под мой код подделеть могли бы пожалуйста. Мне надо чтоб колонку R была не изменяема.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) For Each cell In Target If Not Intersect(cell, Range("B6:Q4368")) Is Nothing Then With Range("R" & cell.Row) .Value = Now .EntireColumn.AutoFit End With End If Next cell End Sub
Практически то же самое, что и в кодf[ выше. Nолько столбцы поменять/ Короче, симбиоз из двух кодов. Вроде так. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) For Each cell In Target If cell <> "" Then If Not Intersect(cell, Range("B6:Q4368")) Is Nothing Then With Range("R" & cell.Row) .Value = Date .EntireColumn.AutoFit End With End If End If Next cell If Not Intersect(Selection, Range("R6:R4368")) Is Nothing Then Application.EnableEvents = 0 Application.Undo Application.EnableEvents = 1 End If End Sub
[/vba] подправил косяк в 09:27.
Практически то же самое, что и в кодf[ выше. Nолько столбцы поменять/ Короче, симбиоз из двух кодов. Вроде так. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) For Each cell In Target If cell <> "" Then If Not Intersect(cell, Range("B6:Q4368")) Is Nothing Then With Range("R" & cell.Row) .Value = Date .EntireColumn.AutoFit End With End If End If Next cell If Not Intersect(Selection, Range("R6:R4368")) Is Nothing Then Application.EnableEvents = 0 Application.Undo Application.EnableEvents = 1 End If End Sub
Что-то я не понимаю, наверное... Из Вашего вопроса следует, что Вы хотите чтобы в ячейках столбца R фиксировалась дата, но при этом хотите чтобы столбец R не изменялся? Как Вы себе это представляете?
Что-то я не понимаю, наверное... Из Вашего вопроса следует, что Вы хотите чтобы в ячейках столбца R фиксировалась дата, но при этом хотите чтобы столбец R не изменялся? Как Вы себе это представляете?Alex_ST