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

Вход

Регистрация

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

 

= Мир MS Excel/Фильтр таблицы по признаку и перенос ее на другой лист - Мир MS Excel

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

Excel 2007
Здравствуйте.
Нужна помощь специалистов по экселю.
Есть мастер таблица на Лист 1. В ней 10 столбцов. Надо автоматически отфильтровать ее по Фамилии (в некоторых ячейках 2 фамилии, но они тоже должны попадать в итоговую, так как один из исполнителей нам нужен). В результате хотелось бы получить таблицу как на листе "Результат". Написала макрос, но в нем ошибки есть:
1. Копируется вся строка, не знаю как сделать, чтобы копировался только массив столбцов от B до E. На основе столбцов H,I,J будут логически выставляться 0 или 1 в результирующую таблицу (0,2 и 0,3 на листе Результат)
2. Если 2 фамилии, то строка не копируется.

Макрос такой (кривенький, первый в жизни)

[vba]
Код

Sub Макрос
Priznak = Application.InputBox("Укажите признак переноса строки", "Признак", "Фамилия")
For Each iCell In Range("C2", [C2].End(xlDown)) 'цикл по всем ячейкам C2 и ниже
If iCell = Priznak Then
With Sheets("Итоговый") 'копируем на Итоговый
iCell.EntireRow.Copy Destination:=.Cells(.Cells(Rows.Count, "С").End(xlUp).Row + 1, "С")
End With
End If
Next iCell
MsgBox "Строки содержащие " & Priznak & " в столбце С скопированы на другой лист!", vbInformation, ""
End Sub
[/vba]
Помогите, пожалуйста. Файл во вложении.
Спасибо!
К сообщению приложен файл: 4534289.xlsm (22.3 Kb)


Сообщение отредактировал IStepanova - Среда, 12.08.2015, 11:02
 
Ответить
СообщениеЗдравствуйте.
Нужна помощь специалистов по экселю.
Есть мастер таблица на Лист 1. В ней 10 столбцов. Надо автоматически отфильтровать ее по Фамилии (в некоторых ячейках 2 фамилии, но они тоже должны попадать в итоговую, так как один из исполнителей нам нужен). В результате хотелось бы получить таблицу как на листе "Результат". Написала макрос, но в нем ошибки есть:
1. Копируется вся строка, не знаю как сделать, чтобы копировался только массив столбцов от B до E. На основе столбцов H,I,J будут логически выставляться 0 или 1 в результирующую таблицу (0,2 и 0,3 на листе Результат)
2. Если 2 фамилии, то строка не копируется.

Макрос такой (кривенький, первый в жизни)

[vba]
Код

Sub Макрос
Priznak = Application.InputBox("Укажите признак переноса строки", "Признак", "Фамилия")
For Each iCell In Range("C2", [C2].End(xlDown)) 'цикл по всем ячейкам C2 и ниже
If iCell = Priznak Then
With Sheets("Итоговый") 'копируем на Итоговый
iCell.EntireRow.Copy Destination:=.Cells(.Cells(Rows.Count, "С").End(xlUp).Row + 1, "С")
End With
End If
Next iCell
MsgBox "Строки содержащие " & Priznak & " в столбце С скопированы на другой лист!", vbInformation, ""
End Sub
[/vba]
Помогите, пожалуйста. Файл во вложении.
Спасибо!

Автор - IStepanova
Дата добавления - 12.08.2015 в 10:46
Manyasha Дата: Среда, 12.08.2015, 11:22 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
IStepanova, замените строчку копирования строки на
[vba]
Код
Range(iCell.Offset(0, -1), iCell.Offset(0, 2)).Copy Destination:=.Cells(.Cells(Rows.Count, 3).End(xlUp).Row + 1, 3)
[/vba]
Почитайте справку про Cells и Range. При использовании Cells нужно указывать номер строки и номер столбца, т.е не Cells(i, "c"), а Cells(i, 3) (i - номер строчки).


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеIStepanova, замените строчку копирования строки на
[vba]
Код
Range(iCell.Offset(0, -1), iCell.Offset(0, 2)).Copy Destination:=.Cells(.Cells(Rows.Count, 3).End(xlUp).Row + 1, 3)
[/vba]
Почитайте справку про Cells и Range. При использовании Cells нужно указывать номер строки и номер столбца, т.е не Cells(i, "c"), а Cells(i, 3) (i - номер строчки).

Автор - Manyasha
Дата добавления - 12.08.2015 в 11:22
RAN Дата: Среда, 12.08.2015, 19:47 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Cells(i, "c") - синтаксис абсолютно верный.
[vba]
Код
Sub Макрос()
     Priznak = Application.InputBox("Укажите признак переноса строки", "Признак", "МО")
     For Each iCell In Range("c2", [c2].End(xlDown)) 'цикл по всем ячейкам c2 и ниже
         If iCell Like "*" & Priznak & "*" Then
'        If iCell = Priznak Then
             With Sheets("Итоговый") 'копируем на Итоговый
                 iCell.EntireRow.Cells(1).Offset(, 1).Resize(, 9).Copy Destination:=.Cells(.Cells(Rows.Count, "b").End(xlUp).Row + 2, "b")
'                iCell.EntireRow.Copy Destination:=.Cells(.Cells(Rows.Count, "b").End(xlUp).Row + 2, "b")
             End With
         End If
     Next iCell
         MsgBox "Строки содержащие " & Priznak & " в столбце с скопированы на другой лист!", vbInformation, ""
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеCells(i, "c") - синтаксис абсолютно верный.
[vba]
Код
Sub Макрос()
     Priznak = Application.InputBox("Укажите признак переноса строки", "Признак", "МО")
     For Each iCell In Range("c2", [c2].End(xlDown)) 'цикл по всем ячейкам c2 и ниже
         If iCell Like "*" & Priznak & "*" Then
'        If iCell = Priznak Then
             With Sheets("Итоговый") 'копируем на Итоговый
                 iCell.EntireRow.Cells(1).Offset(, 1).Resize(, 9).Copy Destination:=.Cells(.Cells(Rows.Count, "b").End(xlUp).Row + 2, "b")
'                iCell.EntireRow.Copy Destination:=.Cells(.Cells(Rows.Count, "b").End(xlUp).Row + 2, "b")
             End With
         End If
     Next iCell
         MsgBox "Строки содержащие " & Priznak & " в столбце с скопированы на другой лист!", vbInformation, ""
End Sub
[/vba]

Автор - RAN
Дата добавления - 12.08.2015 в 19:47
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Фильтр таблицы по признаку и перенос ее на другой лист (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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