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

Вход

Регистрация

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

 

= Мир MS Excel/Выбор нескольких значений и скрыть пустые ячейки. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выбор нескольких значений и скрыть пустые ячейки. (Макросы/Sub)
Выбор нескольких значений и скрыть пустые ячейки.
filla2007 Дата: Пятница, 08.05.2015, 13:46 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
MBT, Создал вот такой вот макрос. Огромное спасибо ему и Nic70y за то что поделился им со мной. Вопрос следующий, как вписать ещё одну строку для поиска вводимого мною значения. Т.е. сейчас текст для поиска вводится в 3 строчку первой вкладки, как сделать чтобы ещё и во вторую и в первую строчку можно было вписывать необходимый для поиска текст, эти строчки будут служить своеобразным фильтром.
И как убрать пустые ячейки после применения фильтра искомых данных. А вот собственно и сам макрос:

[vba]
Код
Sub Runa()
Dim StartRow As Long: StartRow = 5
Dim LastRow As Long
Dim Name As String: Name = "*" & Cells(3, 1).Value & "*"
Application.ScreenUpdating = False
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
If LastRow > StartRow Then Range(Cells(StartRow, 1), Cells(LastRow, 2)).Clear
With Sheets("Отчёт")
For I = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(I, 1).Value Like Name Then
Range("A" & StartRow + I - 1 & ":B" & StartRow + I - 1).Value = .Range("A" & I & ":B" & I).Value
End If
Next I
End With
With Range("A" & StartRow & ":B" & (StartRow + I - 2))
.WrapText = True
.Borders.LineStyle = 1
End With
Application.ScreenUpdating = True
End Sub
[/vba]
[moder]Оформляйте код тегами (кнопка #)[/moder]


Сообщение отредактировал Pelena - Пятница, 08.05.2015, 13:53
 
Ответить
СообщениеMBT, Создал вот такой вот макрос. Огромное спасибо ему и Nic70y за то что поделился им со мной. Вопрос следующий, как вписать ещё одну строку для поиска вводимого мною значения. Т.е. сейчас текст для поиска вводится в 3 строчку первой вкладки, как сделать чтобы ещё и во вторую и в первую строчку можно было вписывать необходимый для поиска текст, эти строчки будут служить своеобразным фильтром.
И как убрать пустые ячейки после применения фильтра искомых данных. А вот собственно и сам макрос:

[vba]
Код
Sub Runa()
Dim StartRow As Long: StartRow = 5
Dim LastRow As Long
Dim Name As String: Name = "*" & Cells(3, 1).Value & "*"
Application.ScreenUpdating = False
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
If LastRow > StartRow Then Range(Cells(StartRow, 1), Cells(LastRow, 2)).Clear
With Sheets("Отчёт")
For I = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(I, 1).Value Like Name Then
Range("A" & StartRow + I - 1 & ":B" & StartRow + I - 1).Value = .Range("A" & I & ":B" & I).Value
End If
Next I
End With
With Range("A" & StartRow & ":B" & (StartRow + I - 2))
.WrapText = True
.Borders.LineStyle = 1
End With
Application.ScreenUpdating = True
End Sub
[/vba]
[moder]Оформляйте код тегами (кнопка #)[/moder]

Автор - filla2007
Дата добавления - 08.05.2015 в 13:46
alex77755 Дата: Суббота, 09.05.2015, 05:54 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

filla2007, По первой части вопроса можно так
[vba]
Код
'..........
Dim Name1 As String: Name1 = "*" & Cells(1, 1).Value & "*"
Dim Name2 As String: Name2 = "*" & Cells(2, 1).Value & "*"
'...............
If .Cells(I, 1).Value Like Name Then
     If .Cells(I, 1).Value Like Name1 Or Name1 = "**" Then
         If .Cells(I, 1).Value Like Name2 Or Name2 = "**" Then
          Range("A" & StartRow + I - 1 & ":B" & StartRow + I - 1).Value = .Range("A" & I & ":B" & I).Value
         End If
     End If
End If
'................
[/vba]
По второй не понятно о каких пустых ячейках речь.
Хотите более реальной помощи - нужен пример файла


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщениеfilla2007, По первой части вопроса можно так
[vba]
Код
'..........
Dim Name1 As String: Name1 = "*" & Cells(1, 1).Value & "*"
Dim Name2 As String: Name2 = "*" & Cells(2, 1).Value & "*"
'...............
If .Cells(I, 1).Value Like Name Then
     If .Cells(I, 1).Value Like Name1 Or Name1 = "**" Then
         If .Cells(I, 1).Value Like Name2 Or Name2 = "**" Then
          Range("A" & StartRow + I - 1 & ":B" & StartRow + I - 1).Value = .Range("A" & I & ":B" & I).Value
         End If
     End If
End If
'................
[/vba]
По второй не понятно о каких пустых ячейках речь.
Хотите более реальной помощи - нужен пример файла

Автор - alex77755
Дата добавления - 09.05.2015 в 05:54
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выбор нескольких значений и скрыть пустые ячейки. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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