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

Вход

Регистрация

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

 

= Мир MS Excel/Вывод позиций отчета исходя из условий - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вывод позиций отчета исходя из условий (Макросы/Sub)
Вывод позиций отчета исходя из условий
Maryasha Дата: Среда, 12.07.2017, 16:18 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день! Необходимо вывести индивидуальные номера на отдельный лист, исходя из следующих условий
1) Способ закупки - все, кроме ЕП
2) Планируемая дата - 1 квартал 2017
3) НМЦ договора - больше 50млн. рублей
4) Привлечение спец.орг. - нет
К сообщению приложен файл: 1186294.xlsx(26Kb)


Сообщение отредактировал Maryasha - Среда, 12.07.2017, 17:42
 
Ответить
СообщениеДобрый день! Необходимо вывести индивидуальные номера на отдельный лист, исходя из следующих условий
1) Способ закупки - все, кроме ЕП
2) Планируемая дата - 1 квартал 2017
3) НМЦ договора - больше 50млн. рублей
4) Привлечение спец.орг. - нет

Автор - Maryasha
Дата добавления - 12.07.2017 в 16:18
Gustav Дата: Среда, 12.07.2017, 16:33 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1391
Репутация: 540 ±
Замечаний: 0% ±

начинал с Excel 4.0...
Дык после наложения условий фильтра просто вручную выделить результат и скопировать в другое место, нет?
Или надо, чтобы еще и перечисленные условия сами включались макросом?

Иными словами - решается практическая задача или учебное задание?


Мой tip box - яд 41001663842605
 
Ответить
СообщениеДык после наложения условий фильтра просто вручную выделить результат и скопировать в другое место, нет?
Или надо, чтобы еще и перечисленные условия сами включались макросом?

Иными словами - решается практическая задача или учебное задание?

Автор - Gustav
Дата добавления - 12.07.2017 в 16:33
Maryasha Дата: Среда, 12.07.2017, 16:40 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
А учебное задание не может быть практической задачей?) Надо чтобы вывелись на отдельный лист номера по выделенным условиям, в реальности файлы содержат 500-1000 строчек и их довольно-таки много


Сообщение отредактировал Maryasha - Среда, 12.07.2017, 17:45
 
Ответить
СообщениеА учебное задание не может быть практической задачей?) Надо чтобы вывелись на отдельный лист номера по выделенным условиям, в реальности файлы содержат 500-1000 строчек и их довольно-таки много

Автор - Maryasha
Дата добавления - 12.07.2017 в 16:40
Manyasha Дата: Среда, 12.07.2017, 18:26 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 1896
Репутация: 780 ±
Замечаний: 0% ±

Excel 2010, 2016
Maryasha, здравствуйте, так подойдет?
[vba]
Код
Sub uniqNumbers()
    Dim lr&, i&, r&
    Dim sh1 As Worksheet, sh2 As Worksheet
    Set sh1 = ThisWorkbook.Sheets(1)
    Set sh2 = ThisWorkbook.Sheets(2)
    r = 2
    With sh2
        .Cells(2, 1).Resize(.Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
    End With
    With sh1
        lr = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 16 To lr
            If .Cells(i, "f") <> "ЕП" And _
                Month(.Cells(i, "m")) <= 3 And _
                .Cells(i, "w") > 50000000 And _
                .Cells(i, "ao") = "Нет" Then
                
                sh2.Cells(r, 1) = .Cells(i, 1)
                r = r + 1
            End If
        Next i
    End With
End Sub
[/vba]
К сообщению приложен файл: 1186294-1.xlsm(34Kb)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеMaryasha, здравствуйте, так подойдет?
[vba]
Код
Sub uniqNumbers()
    Dim lr&, i&, r&
    Dim sh1 As Worksheet, sh2 As Worksheet
    Set sh1 = ThisWorkbook.Sheets(1)
    Set sh2 = ThisWorkbook.Sheets(2)
    r = 2
    With sh2
        .Cells(2, 1).Resize(.Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
    End With
    With sh1
        lr = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 16 To lr
            If .Cells(i, "f") <> "ЕП" And _
                Month(.Cells(i, "m")) <= 3 And _
                .Cells(i, "w") > 50000000 And _
                .Cells(i, "ao") = "Нет" Then
                
                sh2.Cells(r, 1) = .Cells(i, 1)
                r = r + 1
            End If
        Next i
    End With
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 12.07.2017 в 18:26
Maryasha Дата: Четверг, 13.07.2017, 09:29 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Manyasha, все работает, спасибо большое!
 
Ответить
СообщениеManyasha, все работает, спасибо большое!

Автор - Maryasha
Дата добавления - 13.07.2017 в 09:29
Maryasha Дата: Четверг, 13.07.2017, 15:09 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Manyasha, добрый день :-)
выдает ошибку Type mismatch в этом куске
[vba]
Код
If .Cells(i, "f") <> "ЕП" And _
Month(.Cells(i, "m")) <= 3 And _
.Cells(i, "w") > 50000000 And _
.Cells(i, "ao") = "Нет" Then
[/vba]
Это может быть связано с тем, что на практике значения в данных ячейках вставляются формулами или с помощью фильтра?


Сообщение отредактировал Maryasha - Пятница, 14.07.2017, 12:58
 
Ответить
СообщениеManyasha, добрый день :-)
выдает ошибку Type mismatch в этом куске
[vba]
Код
If .Cells(i, "f") <> "ЕП" And _
Month(.Cells(i, "m")) <= 3 And _
.Cells(i, "w") > 50000000 And _
.Cells(i, "ao") = "Нет" Then
[/vba]
Это может быть связано с тем, что на практике значения в данных ячейках вставляются формулами или с помощью фильтра?

Автор - Maryasha
Дата добавления - 13.07.2017 в 15:09
Maryasha Дата: Четверг, 13.07.2017, 15:55 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Загвоздка была в месяце, а можно как-то сделать чтобы отдельный лист создавался под вывод результатов?
 
Ответить
СообщениеЗагвоздка была в месяце, а можно как-то сделать чтобы отдельный лист создавался под вывод результатов?

Автор - Maryasha
Дата добавления - 13.07.2017 в 15:55
_Boroda_ Дата: Четверг, 13.07.2017, 16:50 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 10829
Репутация: 4473 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Только после того, как Вы исправите свой пост согласно Правилам форума


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТолько после того, как Вы исправите свой пост согласно Правилам форума

Автор - _Boroda_
Дата добавления - 13.07.2017 в 16:50
Maryasha Дата: Пятница, 14.07.2017, 09:44 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, что конкретно?
 
Ответить
Сообщение_Boroda_, что конкретно?

Автор - Maryasha
Дата добавления - 14.07.2017 в 09:44
Pelena Дата: Пятница, 14.07.2017, 12:40 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11257
Репутация: 2502 ±
Замечаний: 0% ±

Excel 2010, 2016 & Mac Excel
Maryasha, код из шестого сообщения надо заключить в теги. В режиме правки поста выделите код и нажмите кнопку # на панели инструментов


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеMaryasha, код из шестого сообщения надо заключить в теги. В режиме правки поста выделите код и нажмите кнопку # на панели инструментов

Автор - Pelena
Дата добавления - 14.07.2017 в 12:40
Maryasha Дата: Пятница, 14.07.2017, 12:58 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Pelena, Done!
 
Ответить
СообщениеPelena, Done!

Автор - Maryasha
Дата добавления - 14.07.2017 в 12:58
Manyasha Дата: Пятница, 14.07.2017, 13:05 | Сообщение № 12
Группа: Модераторы
Ранг: Старожил
Сообщений: 1896
Репутация: 780 ±
Замечаний: 0% ±

Excel 2010, 2016
Maryasha, строчку [vba]
Код
Set sh2 = ThisWorkbook.Sheets(2)
[/vba]замените на
[vba]
Код
Set sh2 = Workbooks.Add.Sheets(1)
[/vba]


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеMaryasha, строчку [vba]
Код
Set sh2 = ThisWorkbook.Sheets(2)
[/vba]замените на
[vba]
Код
Set sh2 = Workbooks.Add.Sheets(1)
[/vba]

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

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