Страницы: 1
RSS
Вывод списка по заданному условию, Как можно вывести более одного значения при заданном условии
 
Добрый день. До сегодняшнего дня был читателем Вашего форума. Набрал смелости и зарегистрировался. Прошу сильно не винить за знания, стараюсь познать, но это не объятная наука не имеет границ!
Ближе к делу. Еммется планчик бюджета в разрезе статей и контрагентов. Вопрос в том, что как можно на отдельном листе увидеть всех указанных в таблице контрагентов при ВЫБОРЕ статьи. т.е. выбираю статью, а программа выдает список всех контрагентов, по которым указанна такая статья.
Спасибо за внимание!
 
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column <> 7 Then Exit Sub
    If Target.Cells(1).Text = "" Then Exit Sub
    
    Dim iY1 As Integer
    Dim iY2 As Integer
    
    With Sheets("1")
        .Cells.Clear
        iY2 = 1
        For iY1 = 1 To Cells(Rows.Count, 4).End(xlUp).Row
            If Cells(iY1, 7).Text = Target.Cells(1).Text Then
                .Cells(iY2, 1).Value = Cells(iY1, 4).Text
                iY2 = iY2 + 1
            End If
        Next
        .UsedRange.RemoveDuplicates Columns:=1, Header:=xlNo
    End With
    
End Sub

Лучше смотреть в двух окнах, как в приложенном файле.
 
Я так понимаю вы просто добавили окно (лист) для удобства?
 
К #3. Да, добавил для удобства. Список будет формироваться и в случае, если не будет второго окна.
 
Прошу простить. Не могу понять алгоритм.Как выбрать услугу чтобы высветился контрагент с сумами?
 
На листе "Октябрь_план" выберите любую ячейку в столбце G. Будем считать, что Вы выбрали G20 (ячейку, а не "клуб правительств и глав центральных банков государств с наиболее развитой и развивающейся экономикой).
На листе "1" сформируется список контрагентов, у которых в столбце G есть значение равное G20.
Петров и К
ТОО "Прогресс"
ООО "Друзья"
Изменено: МатросНаЗебре - 05.10.2016 13:02:54
 
Понял) Спасибо усложню условие. к каждому контрагенту должна быть присвоена сумма из толбца R итого.
И вопрос, без макросов можно обойтись?
 
Может сводная подойдет
 
Тогда код примет вид:
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column <> 7 Then Exit Sub
    If Target.Cells(1).Text = "" Then Exit Sub
    
    Dim iY1 As Integer
    Dim iY2 As Integer
    
    With Sheets("1")
        .Cells.Clear
        iY2 = 1
        For iY1 = 1 To Cells(Rows.Count, 4).End(xlUp).Row
            If Cells(iY1, 7).Text = Target.Cells(1).Text Then
                .Cells(iY2, 1).Value = Cells(iY1, 4).Text
                .Cells(iY2, 2).Value = Cells(iY1, 18).Value
                iY2 = iY2 + 1
            End If
        Next
'        .UsedRange.RemoveDuplicates Columns:=1, Header:=xlNo
    End With
    
End Sub

 
Цитата
Dim0703 написал:
И вопрос, без макросов можно обойтись?
вариант на втором листе в А1 выпадающий список
Лень двигатель прогресса, доказано!!!
 
И ещё вариант без макросов.
 
Огромное спасибо. Буду анализировать! Еще раз выражаю свое уважение к Вам и примите благодарность за решение возникшей задачи!!!
Страницы: 1
Читают тему
Наверх