Всем доброго времени суток! Есть вот такая задачка. В файле под названием заказы имеется лист «Заказы» в нем 5 заказов с данными, №1,№2,№3,№4,№5 из них надо удалить №2 и №3 с данными. По типу ввел в ячейки заказ №2,№3 нажал на кнопочку не желанное улетело! Важно чтоб удалялись строчки! Если все это конечно возможно:)
Всем доброго времени суток! Есть вот такая задачка. В файле под названием заказы имеется лист «Заказы» в нем 5 заказов с данными, №1,№2,№3,№4,№5 из них надо удалить №2 и №3 с данными. По типу ввел в ячейки заказ №2,№3 нажал на кнопочку не желанное улетело! Важно чтоб удалялись строчки! Если все это конечно возможно:)dx84
Sub Macros() Dim zakaz As Long, i As Long zakaz = InputBox("Укажите № удаляемого заказа", "Удаление заказа") For i = Range("E" & Rows.Count).End(xlUp).Row To 1 Step -1 If Range("E" & i) = "№" & zakaz Then Rows(i).Resize(4).Delete Shift Next i End Sub
[/vba]
Еще вариант [vba]
Код
Sub Macros() Dim zakaz As Long, i As Long zakaz = InputBox("Укажите № удаляемого заказа", "Удаление заказа") For i = Range("E" & Rows.Count).End(xlUp).Row To 1 Step -1 If Range("E" & i) = "№" & zakaz Then Rows(i).Resize(4).Delete Shift Next i End Sub
Усовершенствованный код. Можно указывать несколько номеров заказов для удаления. [vba]
Код
Sub Macros() Dim zakaz, i As Long, j As Long zakaz = Split(InputBox("Укажите № удаляемого заказа" & Chr(10) _ & "или несколько № через запятую" & Chr(10) _ & "Пример: 1 или 2,3,4", "Удаление заказа"), ",") For j = 0 To UBound(zakaz) For i = Range("E" & Rows.Count).End(xlUp).Row To 1 Step -1 If Range("E" & i) = "№" & zakaz(j) Then Rows(i).Resize(4).Delete Shift Next i Next j End Sub
[/vba]
Усовершенствованный код. Можно указывать несколько номеров заказов для удаления. [vba]
Код
Sub Macros() Dim zakaz, i As Long, j As Long zakaz = Split(InputBox("Укажите № удаляемого заказа" & Chr(10) _ & "или несколько № через запятую" & Chr(10) _ & "Пример: 1 или 2,3,4", "Удаление заказа"), ",") For j = 0 To UBound(zakaz) For i = Range("E" & Rows.Count).End(xlUp).Row To 1 Step -1 If Range("E" & i) = "№" & zakaz(j) Then Rows(i).Resize(4).Delete Shift Next i Next j End Sub
AlexM, Все классно спасибо ! На последок маленький вопрос для далекого в этом деле, не могли бы вы расписать по какому условию работает ваш хитрый код тойсть как это у меня файл пример а в действующем файле столбцы будут смещены и строк будет больше куда что прописывать
AlexM, Все классно спасибо ! На последок маленький вопрос для далекого в этом деле, не могли бы вы расписать по какому условию работает ваш хитрый код тойсть как это у меня файл пример а в действующем файле столбцы будут смещены и строк будет больше куда что прописывать dx84
[/vba]так определяют последнюю заполненную ячейку в столбце Е с учетом пустых. Цикл делаем от последней строки к первой. Проверяем ячейки на номер. Если совпадает, то удаляем 4 строки, начиная со строки с индексом i Цикл с j перебирает введенные номера в InputBox
[vba]
Код
Range("E" & Rows.Count).End(xlUp).Row
[/vba]так определяют последнюю заполненную ячейку в столбце Е с учетом пустых. Цикл делаем от последней строки к первой. Проверяем ячейки на номер. Если совпадает, то удаляем 4 строки, начиная со строки с индексом i Цикл с j перебирает введенные номера в InputBoxAlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.