Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Удаление строки в таблице по условию - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление строки в таблице по условию (Макросы/Sub)
Удаление строки в таблице по условию
Egider Дата: Пятница, 27.12.2019, 06:30 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Уважаемые специалисты, есть рабочий макрос по удалению строк, но необходимо его подправить и добиться чтобы:
1. При отсутствии заданных данных (не ввел случайно) или вводе данных, которые отсутствуют в строке 25 выдавалось сообщение "Проверьте правильность заданных данных". Еще, чтобы не удалялась пустая строка при не заданных условиях.
2. Если заданное условие обнаружено в строке 25, выдавалось сообщение "Данные удалены успешно".

[vba]
Код
Private Sub CommandButton4_Click() 'Удаление выбранной строки
    x = Application.InputBox("Введите условие для удаления", Type:=2)
    Application.ScreenUpdating = False
  For s = Cells(Rows.Count, 25).End(xlUp).Row To 2 Step -1
        If Cells(s, 25) = x Then Rows(s).Delete
    Next
    Application.ScreenUpdating = True
   UserForm1.Hide
Unload Me
End Sub
[/vba]

СПАСИБО


Пенсионер
 
Ответить
СообщениеУважаемые специалисты, есть рабочий макрос по удалению строк, но необходимо его подправить и добиться чтобы:
1. При отсутствии заданных данных (не ввел случайно) или вводе данных, которые отсутствуют в строке 25 выдавалось сообщение "Проверьте правильность заданных данных". Еще, чтобы не удалялась пустая строка при не заданных условиях.
2. Если заданное условие обнаружено в строке 25, выдавалось сообщение "Данные удалены успешно".

[vba]
Код
Private Sub CommandButton4_Click() 'Удаление выбранной строки
    x = Application.InputBox("Введите условие для удаления", Type:=2)
    Application.ScreenUpdating = False
  For s = Cells(Rows.Count, 25).End(xlUp).Row To 2 Step -1
        If Cells(s, 25) = x Then Rows(s).Delete
    Next
    Application.ScreenUpdating = True
   UserForm1.Hide
Unload Me
End Sub
[/vba]

СПАСИБО

Автор - Egider
Дата добавления - 27.12.2019 в 06:30
Egider Дата: Пятница, 27.12.2019, 16:32 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Прошу прощения в тексте ошибся. Естественно нужно читать не строке 25 а столбце 25:
.........отсутствуют в столбце 25.....
......Если заданное условие обнаружено в столбце 25,....


Пенсионер
 
Ответить
СообщениеПрошу прощения в тексте ошибся. Естественно нужно читать не строке 25 а столбце 25:
.........отсутствуют в столбце 25.....
......Если заданное условие обнаружено в столбце 25,....

Автор - Egider
Дата добавления - 27.12.2019 в 16:32
Pelena Дата: Пятница, 27.12.2019, 17:07 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19174
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
Без примера, конечно, плохо, но проверьте так
[vba]
Код
Private Sub CommandButton4_Click() 'Удаление выбранной строки
Dim rng as Range    
x = Application.InputBox("Введите условие для удаления", Type:=2)
Application.ScreenUpdating = False
For s = Cells(Rows.Count, 25).End(xlUp).Row To 2 Step -1
If Cells(s, 25) = x Then
If rng Is Nothing Then Set rng = Rows(s) Else Set rng = Union(rng, Rows(s))
End If
Next
If rng is Nothing Then Msgbox "Проверьте правильность заданных данных" Else rng.Delete
Application.ScreenUpdating = True
UserForm1.Hide
Unload Me
End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеБез примера, конечно, плохо, но проверьте так
[vba]
Код
Private Sub CommandButton4_Click() 'Удаление выбранной строки
Dim rng as Range    
x = Application.InputBox("Введите условие для удаления", Type:=2)
Application.ScreenUpdating = False
For s = Cells(Rows.Count, 25).End(xlUp).Row To 2 Step -1
If Cells(s, 25) = x Then
If rng Is Nothing Then Set rng = Rows(s) Else Set rng = Union(rng, Rows(s))
End If
Next
If rng is Nothing Then Msgbox "Проверьте правильность заданных данных" Else rng.Delete
Application.ScreenUpdating = True
UserForm1.Hide
Unload Me
End Sub
[/vba]

Автор - Pelena
Дата добавления - 27.12.2019 в 17:07
Egider Дата: Воскресенье, 29.12.2019, 19:10 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Polenna, большое новогоднее спасибо, работает. Для пустых строк добавил условие:
[vba]
Код
    If x = "" Then: Exit Sub
[/vba]
ВСЕ ОК. С НАСТУПАЮЩИМ!!!


Пенсионер
 
Ответить
СообщениеPolenna, большое новогоднее спасибо, работает. Для пустых строк добавил условие:
[vba]
Код
    If x = "" Then: Exit Sub
[/vba]
ВСЕ ОК. С НАСТУПАЮЩИМ!!!

Автор - Egider
Дата добавления - 29.12.2019 в 19:10
mulka45 Дата: Вторник, 07.01.2020, 12:33 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Спасибо! Тоже пригодилось!))
 
Ответить
СообщениеСпасибо! Тоже пригодилось!))

Автор - mulka45
Дата добавления - 07.01.2020 в 12:33
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление строки в таблице по условию (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!