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

Вход

Регистрация

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

 

= Мир MS Excel/Сбор данных из двух таблиц в listbox - Мир MS Excel

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

Excel 2010
Доброго времени суток!
Необходимо собрать в listbox данные с двух таблиц: с листа "Журнал ИБ" и "reestr" для дальнейшей обработки. С одной таблицы без проблем получилось, но как подвязать вторую не догоняю. Думал справлюсь с помощью Find, но на выделенную строку эксель ругается:
[vba]
Код
i = 5
    Do While Sheets("Журнал ИБ").Cells(i, 1) <> 0
       If Sheets("Журнал ИБ").Cells(i, 13) = "У" And Sheets("Журнал ИБ").Cells(i, 15) = "" Then
       With ListBox1
            .AddItem Sheets("Журнал ИБ").Cells(i, 1)
            j = .ListCount - 1
            .List(j, 0) = Sheets("Журнал ИБ").Cells(i, 1)
            .List(j, 1) = Sheets("Журнал ИБ").Cells(i, 7)
            .List(j, 2) = Sheets("Журнал ИБ").Cells(i, 21)
            .List(j, 3) = Sheets("Журнал ИБ").Cells(i, 22)
            [b].List(j, 4) = Sheets("reestr").Range("D2", "F" & Row).Find(What:=.List(j, 1), LookAt:=xlWhole).Row[/b]
           
        End With
        End If
        i = i + 1
    Loop
[/vba]
В листбокс берутся изначально данные из "Журнала ИБ" с буквой "У" в 13 столбце и незаполненной ячейкой в 15 столбце. Необходимо по данным из .List(j, 1) подтянуть соответствующее значение с листа "reestr" из столбца F.
P.S. не обращайте внимание на заголовки в листбоксе, их меньше, чем реальных столбцов.
К сообщению приложен файл: __v2-0__25-10-1.xlsm (72.6 Kb)
 
Ответить
СообщениеДоброго времени суток!
Необходимо собрать в listbox данные с двух таблиц: с листа "Журнал ИБ" и "reestr" для дальнейшей обработки. С одной таблицы без проблем получилось, но как подвязать вторую не догоняю. Думал справлюсь с помощью Find, но на выделенную строку эксель ругается:
[vba]
Код
i = 5
    Do While Sheets("Журнал ИБ").Cells(i, 1) <> 0
       If Sheets("Журнал ИБ").Cells(i, 13) = "У" And Sheets("Журнал ИБ").Cells(i, 15) = "" Then
       With ListBox1
            .AddItem Sheets("Журнал ИБ").Cells(i, 1)
            j = .ListCount - 1
            .List(j, 0) = Sheets("Журнал ИБ").Cells(i, 1)
            .List(j, 1) = Sheets("Журнал ИБ").Cells(i, 7)
            .List(j, 2) = Sheets("Журнал ИБ").Cells(i, 21)
            .List(j, 3) = Sheets("Журнал ИБ").Cells(i, 22)
            [b].List(j, 4) = Sheets("reestr").Range("D2", "F" & Row).Find(What:=.List(j, 1), LookAt:=xlWhole).Row[/b]
           
        End With
        End If
        i = i + 1
    Loop
[/vba]
В листбокс берутся изначально данные из "Журнала ИБ" с буквой "У" в 13 столбце и незаполненной ячейкой в 15 столбце. Необходимо по данным из .List(j, 1) подтянуть соответствующее значение с листа "reestr" из столбца F.
P.S. не обращайте внимание на заголовки в листбоксе, их меньше, чем реальных столбцов.

Автор - Паштет
Дата добавления - 30.10.2018 в 11:07
_Boroda_ Дата: Вторник, 30.10.2018, 11:33 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Добавил кусок
[vba]
Код
    With Sheets("reestr")
        r1_ = .Cells(.Rows.Count, 1).End(3).Row
        ar = .Cells(2, 4).Resize(r1_ - 1, 3)
    End With
    Set slov = CreateObject("Scripting.Dictionary")
    With slov
        For i = 1 To UBound(ar)
            .Item(ar(i, 1)) = ar(i, 3)
        Next i
    End With
[/vba]
Тогда
[vba]
Код
.List(j, 4) = slov(.List(j, 1))
[/vba]
К сообщению приложен файл: _v2-0_25-10-1_1.xlsm (71.8 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДобавил кусок
[vba]
Код
    With Sheets("reestr")
        r1_ = .Cells(.Rows.Count, 1).End(3).Row
        ar = .Cells(2, 4).Resize(r1_ - 1, 3)
    End With
    Set slov = CreateObject("Scripting.Dictionary")
    With slov
        For i = 1 To UBound(ar)
            .Item(ar(i, 1)) = ar(i, 3)
        Next i
    End With
[/vba]
Тогда
[vba]
Код
.List(j, 4) = slov(.List(j, 1))
[/vba]

Автор - _Boroda_
Дата добавления - 30.10.2018 в 11:33
Паштет Дата: Вторник, 30.10.2018, 11:55 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
Борода, вы настоящий профи! Еще Вы и телепат, тк догадались о какой из 4 форм я говорил.
Спасибо огромное!!!
 
Ответить
СообщениеБорода, вы настоящий профи! Еще Вы и телепат, тк догадались о какой из 4 форм я говорил.
Спасибо огромное!!!

Автор - Паштет
Дата добавления - 30.10.2018 в 11:55
Паштет Дата: Вторник, 30.10.2018, 14:55 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
А можно еще вопросик?
Как можно вставить номер акта из формы Util в столбец 15 "Журнала ИБ" по выбранным элементам листбоксе (по первому столбцу) при нажатии на кнопку "сформировать акт"?
Попробовал сам включить кусок:
[vba]
Код
Y = 5
    Do While Sheets("Журнал ЗС").Cells(Y, 1) <> 0
       If Sheets("Журнал ЗС").Cells(Y, 1) = ListBox1.List(k, 0) Then
        Sheets("Журнал ЗС").Cells(Y, 15) = Val(akt)
    End If
        Y = Y + 1
    Loop
[/vba]Идет какая-то обработка, но результата нет.
 
Ответить
СообщениеА можно еще вопросик?
Как можно вставить номер акта из формы Util в столбец 15 "Журнала ИБ" по выбранным элементам листбоксе (по первому столбцу) при нажатии на кнопку "сформировать акт"?
Попробовал сам включить кусок:
[vba]
Код
Y = 5
    Do While Sheets("Журнал ЗС").Cells(Y, 1) <> 0
       If Sheets("Журнал ЗС").Cells(Y, 1) = ListBox1.List(k, 0) Then
        Sheets("Журнал ЗС").Cells(Y, 15) = Val(akt)
    End If
        Y = Y + 1
    Loop
[/vba]Идет какая-то обработка, но результата нет.

Автор - Паштет
Дата добавления - 30.10.2018 в 14:55
_Boroda_ Дата: Вторник, 30.10.2018, 15:07 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Это другой вопрос, и другой файл с листом Журнал ЗС, которого в этом файле вообще нет, и другим макросоом


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

Автор - _Boroda_
Дата добавления - 30.10.2018 в 15:07
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сбор данных из двух таблиц в listbox (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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