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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.08.2009, 18:03   #1
Facet
 
Регистрация: 31.07.2009
Сообщений: 3
По умолчанию Ценник в Excel

Задача.
на листе 1 расположенна табличка 1.
В шапке (сверху в строку) количество товара, справа в стобик - номер товарной группы. В ячейках таблички - цена товара в зависимости от количества, т.е. по принципу игры морской бой, сверху выбираем цену, справа товарную группу, на пересечении соответствующих строки и столбца - цена товара из данной товарной группы при определенном количестве.
Под этой табличкой расположена табличка 2 со списком всех товаров и информацией к какой товарной группе относится этот товар.

Нужно.
на листе 2 ввести в первую ячейку - название товара (не товарной группы), во вторую - количество товара, а в третьей должна автоматом появляться цена. Excel должен проверить к какой товарной группе относится данный товар в таблице 2 а потом, используя данные из таблицы 1, показать соответствующую товарной группе и количеству цену.
Как реализовать? Помогите, пожалуйста!
Facet вне форума Ответить с цитированием
Старый 01.08.2009, 18:04   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Никто Вам не поможет, пока не будет примера файла с исходными данными на 1-м листе, и желаемым результатом на втором.
EducatedFool вне форума Ответить с цитированием
Старый 01.08.2009, 20:49   #3
Facet
 
Регистрация: 31.07.2009
Сообщений: 3
По умолчанию

Вот файл с примером. Надеюсь, что будет понятно, какой необходим результат. Спасибо!
Вложения
Тип файла: zip Cennik.zip (5.4 Кб, 45 просмотров)
Facet вне форума Ответить с цитированием
Старый 01.08.2009, 22:28   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Попробуйте такой вариант:



Обратите внимание, что количество именованных диапазонов увеличилось.

Вот весь код:
Код:
Const Отступ = 2    ' количество пустых строк между ценниками

Sub СозданиеЦенников()
    Application.ScreenUpdating = False: On Error Resume Next
    Dim sh2 As Worksheet: Set sh2 = Worksheets.Add: sh2.Tab.Color = vbGreen
    Dim cell As Range, ra As Range, СтолбецВТаблице2 As Range
    Dim cell1 As Range, cell2 As Range, cell3 As Range

    For Each cell1 In [ГРУППА].Cells
        For Each cell2 In [КОЛИЧЕСТВО].Cells
            Set cell = Intersect(cell1.EntireRow, cell2.EntireColumn)
            Set СтолбецВТаблице2 = Intersect([ГруппыВтаблице2].Find(cell1).EntireColumn, [Таблица2])
            For Each cell3 In СтолбецВТаблице2.Cells
                If Len(cell3) Then СоздатьЦенник sh2, cell3, cell2, cell
            Next cell3
        Next cell2
    Next cell1
    sh2.UsedRange.EntireColumn.AutoFit
End Sub

Sub СоздатьЦенник(ByRef sh2 As Worksheet, ByVal Товар, ByVal Количество, ByVal Цена)
    Dim МестоДляНовогоЦенника As Range
    Set МестоДляНовогоЦенника = sh2.Range("b" & sh2.Rows.Count).End(xlUp).Offset(Отступ + 1) _
                                .Resize([ШаблонЦенника].Rows.Count, [ШаблонЦенника].Columns.Count)
    [ШаблонЦенника].Copy МестоДляНовогоЦенника
    МестоДляНовогоЦенника(1, 2) = Товар
    МестоДляНовогоЦенника(2, 2) = Количество
    МестоДляНовогоЦенника(3, 2) = Цена
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 01.08.2009, 23:28   #5
Facet
 
Регистрация: 31.07.2009
Сообщений: 3
По умолчанию

Спасибо за пример!
Хотелось бы реализовать это с выпадающим списком (так как в файле, который я закачал), т.е. чтобы на втором листе из выпадающего списка вместо "Группа 1", "Группа 2", итд. появлялось "Молоко", "Яйца" итд.
Изображения
Тип файла: jpg 1.jpg (15.9 Кб, 99 просмотров)
Тип файла: jpg 2.jpg (19.2 Кб, 90 просмотров)

Последний раз редактировалось Facet; 01.08.2009 в 23:33.
Facet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запретить запуск программы на VBA Excel 2003 в Excel 2007 kovalevskivf Microsoft Office Excel 2 15.05.2009 16:47
Экспорт из Access в Excel, Экспорт из отчётов в таблицу Excel Kissedbythegod Microsoft Office Access 1 31.05.2008 22:15
очень громоздкие финансовые модели в Excel, а Excel не тянет Ragazza Microsoft Office Excel 7 03.10.2007 20:08
Формирование из excel в ASCII, у меня он формирует по одному клиенту а в Excel нескол Askat Общие вопросы Delphi 0 18.07.2007 06:28
Как вытащить данные из Excel в бд dephi, а потом (после работы с данными) сформировать новый файл excel. Геля БД в Delphi 1 10.04.2007 15:11