Страницы: 1
RSS
Как выбрать нужные данные и преобразовать их в выпадающий список
 
Здравствуйте!
Нужна помощь в форматировании данных таблицы.
Необходимо к каждому Product выпадающим списком снизу добавить соответствующие значения со столбиков Site которые не равны "-"
Пример таблиц исходник и результат добавил.
Спасибо за помощь!
 
sapovatov, а где у вас тут выпадающий список?  (это он у вас точно такой вопрос? https://www.planetaexcel.ru/techniques/1/40/)
Тема: "Список товаров преобразовать из плоской таблицы в список"
Код
Sub dd()
Dim r As Long, c As Long, lr As Long, lr2 As Long, lcol As Long, lcol2 As Long
Dim sh As Worksheet, sh1 As Worksheet
Set sh = Worksheets(1)
Set sh2 = Worksheets(2)
Application.ScreenUpdating = False
sh.Range("A:D").Clear
lr = sh2.Cells(Rows.Count, 1).End(xlUp).Row
sh.Cells(1, 1) = sh2.Cells(1, 1)
sh.Cells(1, 3) = sh2.Cells(1, 2)
sh.Cells(1, 4) = sh2.Cells(1, 3)
For r = 2 To lr
    lr2 = sh.Cells(Rows.Count, 1).End(xlUp).Row + 1
    sh.Cells(lr2, 1) = sh2.Cells(r, 1)
    sh.Cells(lr2, 3) = sh2.Cells(r, 2)
    sh.Cells(lr2, 4) = sh2.Cells(r, 3)
    lcol = sh2.Cells(r, Columns.Count).End(xlToLeft).Column
        For n = 4 To lcol
        If IsNumeric(sh2.Cells(r, n)) Then
            lr2 = sh.Cells(Rows.Count, 1).End(xlUp).Row + 1
            sh.Cells(lr2, 2) = sh2.Cells(r, n)
            sh.Cells(lr2, 1) = sh2.Cells(1, n)
        End If
        Next n
Next r
Application.ScreenUpdating = True
End Sub
Изменено: Mershik - 14.08.2020 19:32:04
Не бойтесь совершенства. Вам его не достичь.
 
sapovatov, ну вот зачем два файла? Ведь можно же показать в одном файле на разных листах.
 
Юрий М, извините, не учел таких нюансов
 
Mershik, спасибо за помощь. Буду тестировать.
 
Mershik, Спасибо. Работает, но как я писал выше очень важно чтобы сайты складивались под продуктом были скрупированы как в примере, так как сайтов может быть и 20, это очень осложнит работу с данными.
 
sapovatov,
на сайте в ПРИЁМАХ есть целый раздел, посвященный выпадающим спискам - весьма вероятно, что там найдутся идеи, которые помогут Вам серьезно продвинутся решение своей задачи... или несколько переформулировать её для большего соответствия возможностям MS Excel  
 
Группировать каждый перечень сайтов получилось.
Код
Sub dd()
Dim r As Long, c As Long, lr As Long, lr2 As Long, lcol As Long, lcol2 As Long
Dim sh As Worksheet, sh1 As Worksheet
Set sh = Worksheets(1)
Set sh2 = Worksheets(2)
Application.ScreenUpdating = False
sh.Range("A:D").Clear
lr = sh2.Cells(Rows.Count, 1).End(xlUp).Row
sh.Cells(1, 1) = sh2.Cells(1, 1)
sh.Cells(1, 3) = sh2.Cells(1, 2)
sh.Cells(1, 4) = sh2.Cells(1, 3)
For r = 2 To lr
    lr2 = sh.Cells(Rows.Count, 1).End(xlUp).Row + 1
    sh.Cells(lr2, 1) = sh2.Cells(r, 1)
    sh.Cells(lr2, 3) = sh2.Cells(r, 2)
    sh.Cells(lr2, 4) = sh2.Cells(r, 3)
    lcol = sh2.Cells(r, Columns.Count).End(xlToLeft).Column
        For n = 4 To lcol
            If IsNumeric(sh2.Cells(r, n)) Then
                lr2 = sh.Cells(Rows.Count, 1).End(xlUp).Row + 1
                sh.Cells(lr2, 2) = sh2.Cells(r, n)
                sh.Cells(lr2, 1) = sh2.Cells(1, n)
                sh.Cells(lr2, n).Rows.Group
            End If
        Next n
Next r
Application.ScreenUpdating = True
End Sub

А может мне кто-нибудь подсказать, как сделать так, чтобы при группировании сама группа была закрытой (свернутой)? А то они все создаются открытыми
Изменено: sapovatov - 17.08.2020 17:43:22
 
Вопрос для отдельной темы
Страницы: 1
Наверх