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

Купить рекламу на форуме 15-35 тыс рублей в месяц

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2013, 14: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, 15: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 в 15:11.
DiemonStar вне форума Ответить с цитированием
Старый 22.07.2013, 15:14   #3
konstantin1990
Пользователь
 
Регистрация: 20.07.2013
Сообщений: 63
По умолчанию

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

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
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Список на другом листе Gamlex Microsoft Office Excel 7 26.03.2012 17:45
Изменение количества наименования на одном листе при вводе на другом Leito_07 Microsoft Office Excel 2 08.01.2012 23: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