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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2013, 01:10   #1
Slavatron1984
Форумчанин
 
Аватар для Slavatron1984
 
Регистрация: 04.12.2011
Сообщений: 148
По умолчанию Сортировка по шаблону Exel

Добрый день.
В первом листе "Шаблон" список все существующих код товара и наименовании товара. В втором листе "отчет продаж полученных" с программы. В 3 листе показал нужный мне результат... Возможно ли отсортировать список товара с листа 2, согласно расположению товара, как в листе 1 шаблон и результат получился,как в листе 3... Если существует дополнительный товар в отчете лист 2, который отсутствует в листе шаблон(лист 1), то в листе 3 ниже после сортировки показать его...

Решение через макрос

Windows 2007 office 2013

Для меня траур, т.к. данный код утерял вместе с винчестером, восстановить не получается... С данным макросом мне помогли здесь вроде бы... Но уже 3 часа ищу по своим сообщением и в поиске, без результата...
Вложения
Тип файла: rar Сортировка по шаблону.rar (9.0 Кб, 36 просмотров)
Slavatron1984 вне форума Ответить с цитированием
Старый 16.08.2013, 06:16   #2
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Код:
Public Sub www()
    Dim a, b, c, d, i&, j&, n&, m&
    a = Sheets("Шаблон").[b5].CurrentRegion.Columns(1)
    d = a
    b = Sheets("данные с отчета").[b5].CurrentRegion
    ReDim Preserve a(1 To UBound(a), 1 To UBound(b, 2))
    ReDim c(1 To UBound(a), 1 To UBound(b, 2))
    On Error Resume Next
    For i = 1 To UBound(b)
        n = Application.Match(b(i, 1), d, 0)
        If Err Then
            Err.Clear: m = m + 1
            For j = 1 To UBound(b, 2)
                c(m, j) = b(i, j)
            Next
        Else
            For j = 2 To UBound(b, 2)
                a(n, j) = b(i, j)
            Next
        End If
    Next
    On Error GoTo 0
    Stop
    Sheets("нужный результат").[i5].Offset(UBound(a)) = "отсутствует"
    Sheets("нужный результат").[i5].Resize(UBound(a), UBound(a, 2)) = a
    If m Then Sheets("нужный результат").[i5].Offset(UBound(a) + 1).Resize(m, UBound(a, 2)) = c
End Sub
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 16.08.2013, 09:23   #3
Slavatron1984
Форумчанин
 
Аватар для Slavatron1984
 
Регистрация: 04.12.2011
Сообщений: 148
По умолчанию

Спасибо kuklp все работает...
Slavatron1984 вне форума Ответить с цитированием
Старый 16.08.2013, 09:26   #4
Slavatron1984
Форумчанин
 
Аватар для Slavatron1984
 
Регистрация: 04.12.2011
Сообщений: 148
По умолчанию

Stop в коде какую функцию выполняет... код на нем часто зависает... Я его стер, но понимаю,что он там не зря вписан...
Slavatron1984 вне форума Ответить с цитированием
Старый 16.08.2013, 09:34   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код на нём должен "зависать" всегда - это же стоп!
Правильно что убрали - вероятно это была шутка
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 16.08.2013, 13:05   #6
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Я просто спешил. Надо было уезжать и забыл убрать.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 16.08.2013, 13:09   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

А зачем ставил?
Я обычно обхожусь большой жирной красной точкой!
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 16.08.2013, 13:16   #8
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Для отладки.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 16.08.2013, 13:21   #9
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Можно было не отвечать
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 16.08.2013, 13:22   #10
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Ну как же тебе не ответить! Кому другому можно, а тебе...
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива (Exel, метод прямого включения) esage Microsoft Office Excel 5 14.01.2014 18:48
Интерфейс к шаблону Komediant C# (си шарп) 0 23.05.2013 11:37
VBA Exel 2010. Сортировка таблицы и закрашивание ячеек mextako Помощь студентам 0 31.10.2012 02:27
Вопрос по шаблону Richmon-d JavaScript, Ajax 0 11.07.2011 14:27
Итератор к шаблону Crucian Общие вопросы C/C++ 5 29.10.2007 16:52