Добрый день! Столкнулся с проблемой. Прошу помощи у вас, участники форума. Пользуюсь макросом [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 4 And Target.Count = 1 And Target.Cells(1) = "0" Then Target.EntireRow.Cells(1).Resize(, 3).Copy Лист2.Range("a65000").End(xlUp).Offset(1) Target.EntireRow.Delete End If End Sub
[/vba]
Он работает. Только хотелось бы, чтобы срабатывал не на ввод значения 0 в столбец D, а на ввод значения в форме. К примеру вводим в форме значение 09008 нажимаем подтвердить, происходит поиск этого значения в столбце A, происходит копирование этой строки на ЛИСТ2 и удаление с этого листа
Добрый день! Столкнулся с проблемой. Прошу помощи у вас, участники форума. Пользуюсь макросом [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 4 And Target.Count = 1 And Target.Cells(1) = "0" Then Target.EntireRow.Cells(1).Resize(, 3).Copy Лист2.Range("a65000").End(xlUp).Offset(1) Target.EntireRow.Delete End If End Sub
[/vba]
Он работает. Только хотелось бы, чтобы срабатывал не на ввод значения 0 в столбец D, а на ввод значения в форме. К примеру вводим в форме значение 09008 нажимаем подтвердить, происходит поиск этого значения в столбце A, происходит копирование этой строки на ЛИСТ2 и удаление с этого листаBoris_krd
Private Sub ToggleButton1_Click() If TextBox1.Value Then Set art = Columns(1).Find(TextBox1.Value, , xlValues, xlWhole) If Not art Is Nothing Then _ art.Resize(, 3).Copy Лист2.Cells(Rows.Count, 1).End(xlUp).Offset(1) End If End Sub
[/vba]
ToggleButton можно заменить на commandButton, чтобы кнопка не оставалась "вдавленной"
Boris_krd, вот так можно: [vba]
Код
Private Sub ToggleButton1_Click() If TextBox1.Value Then Set art = Columns(1).Find(TextBox1.Value, , xlValues, xlWhole) If Not art Is Nothing Then _ art.Resize(, 3).Copy Лист2.Cells(Rows.Count, 1).End(xlUp).Offset(1) End If End Sub
[/vba]
ToggleButton можно заменить на commandButton, чтобы кнопка не оставалась "вдавленной"Manyasha
Private Sub ToggleButton1_Click() If TextBox1.Value Then Set art = Columns(1).Find(TextBox1.Value, , xlValues, xlWhole) If Not art Is Nothing Then _ art.Resize(, 3).Copy Ëèñò2.Cells(Rows.Count, 1).End(xlUp).Offset(1) art.EntireRow.Delete
End If End Sub
[/vba]
Не много изменил, не удалялась с листа
Спасибо! [vba]
Код
Private Sub ToggleButton1_Click() If TextBox1.Value Then Set art = Columns(1).Find(TextBox1.Value, , xlValues, xlWhole) If Not art Is Nothing Then _ art.Resize(, 3).Copy Ëèñò2.Cells(Rows.Count, 1).End(xlUp).Offset(1) art.EntireRow.Delete
Только у Вас теперь удаление строки за пределами оператора If. Нужно либо подрисовать двоеточие с черточкой (это своего рода склеивание нескольких строк в одну) [vba]
Private Sub ToggleButton1_Click() If TextBox1.Value Then Set art = Columns(1).Find(TextBox1.Value, , xlValues, xlWhole) If Not art Is Nothing Then art.Resize(, 3).Copy Лист2.Cells(Rows.Count, 1).End(xlUp).Offset(1) art.EntireRow.Delete End If End If End Sub
Только у Вас теперь удаление строки за пределами оператора If. Нужно либо подрисовать двоеточие с черточкой (это своего рода склеивание нескольких строк в одну) [vba]
Private Sub ToggleButton1_Click() If TextBox1.Value Then Set art = Columns(1).Find(TextBox1.Value, , xlValues, xlWhole) If Not art Is Nothing Then art.Resize(, 3).Copy Лист2.Cells(Rows.Count, 1).End(xlUp).Offset(1) art.EntireRow.Delete End If End If End Sub
Добрый день! Хочу поднять тему, так как задача немного изменилась. Спасибо Manyasha. Код помог. Но тепрь нужно чтобы к примеру вводим в форме значение 09008 нажимаем подтвердить, происходит поиск этого значения в столбце A, происходит копирование этой строки на ЛИСТ2 и и происходило уменьшение значения в столбце D ровно на 1, а если значение в столбце D станет равным 0 то удаление этой строки [vba]
Код
Private Sub ToggleButton1_Click() If TextBox1.Value Then Set art = Columns(1).Find(TextBox1.Value, , xlValues, xlWhole) If Not art Is Nothing Then _ art.Resize(, 3).Copy Лист2.Cells(Rows.Count, 1).End(xlUp).Offset(1): _ art.EntireRow.Delete
End If End Sub
[/vba]
Добрый день! Хочу поднять тему, так как задача немного изменилась. Спасибо Manyasha. Код помог. Но тепрь нужно чтобы к примеру вводим в форме значение 09008 нажимаем подтвердить, происходит поиск этого значения в столбце A, происходит копирование этой строки на ЛИСТ2 и и происходило уменьшение значения в столбце D ровно на 1, а если значение в столбце D станет равным 0 то удаление этой строки [vba]
Код
Private Sub ToggleButton1_Click() If TextBox1.Value Then Set art = Columns(1).Find(TextBox1.Value, , xlValues, xlWhole) If Not art Is Nothing Then _ art.Resize(, 3).Copy Лист2.Cells(Rows.Count, 1).End(xlUp).Offset(1): _ art.EntireRow.Delete
Private Sub ToggleButton1_Click() If TextBox1.Value Then Set art = Columns(1).Find(TextBox1.Value, , xlValues, xlWhole) If Not art Is Nothing Then art.Resize(, 3).Copy Лист2.Cells(Rows.Count, 1).End(xlUp).Offset(1) With art.Offset(0, 3) .Value = .Value - 1 If .Value = 0 Then art.EntireRow.Delete End With End If End If End Sub
[/vba]
Boris_krd, так? [vba]
Код
Private Sub ToggleButton1_Click() If TextBox1.Value Then Set art = Columns(1).Find(TextBox1.Value, , xlValues, xlWhole) If Not art Is Nothing Then art.Resize(, 3).Copy Лист2.Cells(Rows.Count, 1).End(xlUp).Offset(1) With art.Offset(0, 3) .Value = .Value - 1 If .Value = 0 Then art.EntireRow.Delete End With End If End If End Sub