Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 22.07.2013, 13:28   #1
konstantin1990
Пользователь
 
Регистрация: 20.07.2013
Сообщений: 63
По умолчанию работа на одном листе с данными из LISTBOX, данные на другом листе

Добрый день! Есть проблема, на неё мозга не хватает, посерфил в нэте конкретного ответа не нашел. В примере на листе 1 есть табличка с данными, загружая макрос (ctrl+shift+q в данном случае) на фоме отображается Listbox с этой таблицой, а если запускать макрос при открытом лист 2 то поле list box остается пустым! Как привязать код записанный у меня в форме к конкретному листу, т.е чтобы при запуске макроса даже с листа 2, он показывал таблицу из листа 1?
Вложения
Тип файла: rar пример 1.rar (15.1 Кб, 20 просмотров)
konstantin1990 вне форума Ответить с цитированием
Старый 22.07.2013, 14:05   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

например, так поправить:
Код:
Private Sub UserForm_Initialize()

Dim gMassiv(2 To 13, 1 To 17)
    With Sheets("Лист1")
    For iRow& = 2 To 13
    
        gMassiv(iRow&, 1) = .Cells(iRow&, 11)
        gMassiv(iRow&, 2) = .Cells(iRow&, 12)
        gMassiv(iRow&, 3) = .Cells(iRow&, 13)
        gMassiv(iRow&, 4) = .Cells(iRow&, 14)
        gMassiv(iRow&, 5) = .Cells(iRow&, 15)
        gMassiv(iRow&, 6) = .Cells(iRow&, 16)
        gMassiv(iRow&, 7) = .Cells(iRow&, 17)
    Next
    End With
    ListBox1.ColumnCount = 7
    ListBox1.List = gMassiv

End Sub
но можно сделать короче:
Код:
Private Sub UserForm_Initialize()
    A = Sheets("Лист1").Range("K2:Q15")
    ListBox1.ColumnCount = 7
    ListBox1.List = A
End Sub
Правильно поставленная задача - три четверти решения.

Последний раз редактировалось DiemonStar; 22.07.2013 в 14:11.
DiemonStar вне форума Ответить с цитированием
Старый 22.07.2013, 14:14   #3
konstantin1990
Пользователь
 
Регистрация: 20.07.2013
Сообщений: 63
По умолчанию

Класс! Большое спасибо!
konstantin1990 вне форума Ответить с цитированием
Старый 22.07.2013, 14:15   #4
IgorGO
МегаМодератор
СуперМодератор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,366
По умолчанию

konstantin1990, в Вашем вопросе как бы есть ответ надо:
Цитата:
привязать код ... к конкретному листу
Код:
Private Sub UserForm_Initialize()
  With Worksheets(1).[k1]
    ListBox1.ColumnCount = .CurrentRegion.Columns.Count
    ListBox1.List = .Offset(1, 0).Resize(.CurrentRegion.Rows.Count, .CurrentRegion.Columns.Count).Value
  End With
End Sub
41001804815208 - Яндекс-деньги благодарности за удачные советы и решения можно отправлять прямо сюда)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO на форуме Ответить с цитированием
Ответ
Купить рекламу на форуме от 7000 рублей в месяц



Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Список на другом листе Gamlex Microsoft Office Excel 7 26.03.2012 16:45
Изменение количества наименования на одном листе при вводе на другом Leito_07 Microsoft Office Excel 2 08.01.2012 22:41
Поиск на другом листе agregator Microsoft Office Excel 8 25.12.2010 19:41
ячейка на одном листе, в которую необходимо подставлять данные из столбца, находящегося на другом листе Ирина Водолагина Microsoft Office Excel 4 04.03.2009 23:38
Данные-проверка-список (список на другом листе) Inbox Microsoft Office Excel 7 26.12.2008 01:43


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Скидки на курсы GeekBrains 40%, выбирайте программу для себя