Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.08.2010, 21:23   #1
eclat
Пользователь
 
Регистрация: 01.08.2010
Сообщений: 19
По умолчанию Макрос для формирования таблицы на отдельном листе по номеру ID

Проблема в следующем, никак не могу понять как сделать макрос так, чтобы при наборе определенного ID объекта на новом листе создавалась таблица из нужных столбцов, описывающих этот объект. То есть, к примеру, на листе 1 у меня массив данных по всем объектам, я хочу сделать так, чтобы при вызове макроса, описание определенного объекта выходило на новый лист причем не по столбцам как на листе 1, а по строчкам.
Должно работать в Excel 2003.
Помогите пожалуйста, добрые люди!!! Жуть как надо!
Вложения
Тип файла: rar База.rar (102.9 Кб, 18 просмотров)

Последний раз редактировалось eclat; 01.08.2010 в 21:26.
eclat вне форума Ответить с цитированием
Старый 01.08.2010, 22:06   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
чтобы при наборе определенного ID объекта
При наборе где?
  • На листе (в ячейке, выбор из выпадающего списка)?
  • В диалоговом окне (надо вводить текст)?
  • В форме (выбор из выпадающего списка)?

В примере файла все ID - уникальные.
В реальном файле будут повторяющиеся?

К примеру, пользователь выбрал ID #a00104.
Как дожна выглядеть таблица на новом листе?
Цитата:
таблица из нужных столбцов, описывающих этот объект
Какие столбцы - нужные?
В свой файл добавьте пример такого листа для какого-нибудь ID.
EducatedFool вне форума Ответить с цитированием
Старый 02.08.2010, 23:01   #3
eclat
Пользователь
 
Регистрация: 01.08.2010
Сообщений: 19
По умолчанию

Спасибо за отклик! Я уточнила свой запрос. Все, что нужно в прикрепленном файле!
Вложения
Тип файла: rar База1.rar (124.3 Кб, 17 просмотров)
eclat вне форума Ответить с цитированием
Старый 03.08.2010, 09:04   #4
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Можно так попробовать. Только не кнопка, а двойной клик по ячейке с ID objektu заполняет табличку и активизирует лист Popis.
Код:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [B7:B2005]) Is Nothing Then Exit Sub
Dim X As Variant
X = Range(Cells(Target.Row, 6), Cells(Target.Row, 21)).Value
With wshPopis
    .[G4].Value = Target.Value
    .[G5:G20].Value = WorksheetFunction.Transpose(X)
    .[F22].Value = Target.Offset(, 21).Value
    Target.Offset(1).Select: .Activate
End With
End Sub
Вложения
Тип файла: rar База1.rar (132.6 Кб, 30 просмотров)
nilem вне форума Ответить с цитированием
Старый 03.08.2010, 15:11   #5
eclat
Пользователь
 
Регистрация: 01.08.2010
Сообщений: 19
По умолчанию

Спасибо за помощь! Буду разбираться, что и как
eclat вне форума Ответить с цитированием
Старый 03.08.2010, 17:00   #6
eclat
Пользователь
 
Регистрация: 01.08.2010
Сообщений: 19
По умолчанию

nilem, извините возможно за глупый вопрос, я полный чайник в VBA. в вашем коде разобралась со всем, кроме строк .[F22].Value = Target.Offset(, 21).Value и Target.Offset(1).Select: .Activate.
Как они работают? Я понимаю, что здесь мы выбраем для ячейки F22 данные с wshByty, но почему там указывается номер 21, если на wshByty данные находятся в столбце 23?
eclat вне форума Ответить с цитированием
Старый 03.08.2010, 17:41   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Target.Offset(, 21) - на 21 ячейку вправо
Target.Offset(1) - на 1 вниз

и для ясности
Target.Offset(2, 4) - на 2 вниз и на 4 вправо
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 03.08.2010, 18:39   #8
eclat
Пользователь
 
Регистрация: 01.08.2010
Сообщений: 19
По умолчанию

Спасибо огромное!!! Все встало на свои места!!!
eclat вне форума Ответить с цитированием
Старый 03.08.2010, 21:39   #9
eclat
Пользователь
 
Регистрация: 01.08.2010
Сообщений: 19
По умолчанию

Есть еще один вопрос, который меня мучает. Пролистав форум, приемлимого варинта для себя не нашла.
Вопрос по поводу написания макроса для вставки фото. Более подробно я все описала в архиве, надеюсь на вашу поддержку и помощь!
Вложения
Тип файла: rar Рабочая v.1.2.rar (623.8 Кб, 18 просмотров)

Последний раз редактировалось eclat; 03.08.2010 в 21:43.
eclat вне форума Ответить с цитированием
Старый 03.08.2010, 21:50   #10
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Я считаю.что хранить картинки в файле Ексель-не правильный подход
2000 записей на листе.на 2 листах 4000.
одна картинка порядка 15 Кb/
итог -60 Mb. груза.
Проще картинки хранить в папке,а просмотр согласно ID
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для формирования таблицы в Excel konistra Microsoft Office Excel 6 28.05.2010 23:32
Выборка сумм по месяцу на отдельном листе (Excel 2003) Svetlana_zel Microsoft Office Excel 3 27.05.2010 17:26
Как создать кнопки с ссылками на другие листы Excel 2007 и разместить их на отдельном листе? footman Microsoft Office Excel 0 21.07.2009 00:21
Макрос для таблицы Radagest Microsoft Office Excel 3 17.07.2009 20:58
Макрос для обновления формул вручную только в одном листе Neo007 Microsoft Office Excel 7 26.09.2008 18:17