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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2011, 18:44   #11
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Доброго всем времени суток.

Помогите немного в решении маленькой проблемки.

В прикрепленном файле есть небольшая табличка.

столбцы - маки авто
строки - месяца реализации

Возможно ли как то загрузить это в Array???

Только что бы в при выгрузки с него я мог задать параметр на строку и на столбец и получить цыфру из-за груженной табличке.


Заранее благодарен.
Вложения
Тип файла: rar двойной Array.rar (3.5 Кб, 8 просмотров)
sasha_prof вне форума Ответить с цитированием
Старый 25.03.2011, 20:12   #12
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Какой параметр - не сказали

Код:
Sub tt()
Dim a, x As Long, y As Long
a = [e6:i17]
x = InputBox("Строка?")
y = InputBox("Столбец?")
MsgBox a(x, y)
End Sub
Если хотите вводить названия и даты - берите в массив всю область, делайте цикл по первым столбцу и строке...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 25.03.2011, 22:19   #13
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Какой параметр - не сказали

Код:
Sub tt()
Dim a, x As Long, y As Long
a = [e6:i17]
x = InputBox("Строка?")
y = InputBox("Столбец?")
MsgBox a(x, y)
End Sub
Если хотите вводить названия и даты - берите в массив всю область, делайте цикл по первым столбцу и строке...

Спасибо за быстрый ответ.

Немного не правильно задал вопрос((

Тут вот дело в чем:

Есть страничка база - столбцы (марка, месяц, и количество)
Хочу чтоб как то загрузить её в массив в током виде как на страничке свод.

Просто следующий шаг макроса у меня выгрузка на разные странички в зависимости от марки и в последовательности по месяцам.


Заранее благодарен
Вложения
Тип файла: rar двойной Array.rar (8.0 Кб, 7 просмотров)
sasha_prof вне форума Ответить с цитированием
Старый 25.03.2011, 23:03   #14
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Месяцы у Вас своеобразно заданы...
Можно сделать так - берёте весь диапазон в массив - тут примеров уже много было.
Далее перебором перекладываете все данные по нужному наименованию в другой массив, его сортируете пузырьком по месяцу.
Вот неадаптированный пример:
Код:
'Процедура для сортировки массива методом пузырька
Function BubbleSort(ByRef Arr)
    Dim i&
    Dim J&, n%
    Dim Tmp(1 To 4)

    For i = 0 To UBound(Arr) Step 1
        For J = 1 To UBound(Arr) - 1 - i Step 1
            If DateSerial(2000, Month(Arr(J, 3)), Day(Arr(J, 3))) > DateSerial(2000, Month(Arr(J + 1, 3)), Day(Arr(J + 1, 3))) Then
                For n = 1 To 4
                    Tmp(n) = Arr(J, n)
                    Arr(J, n) = Arr(J + 1, n)
                    Arr(J + 1, n) = Tmp(n)
                Next
            End If
        Next J
    Next i
    BubbleSort = Arr
End Function


Public Sub www()
    Dim Lr&, a, i%
    Lr = Cells(Rows.Count, 4).End(xlUp).Row
    a = Range([a6], Cells(Lr, 4))
    a = BubbleSort(a)
    Range([a6], Cells(Lr, 4)) = a
End Sub
получите что-то вроде
Код:
Жигули	04_2010	5
Жигули	05_2010	23
Жигули	08_2010	45
Жигули	11_2010	78
Если нужно выбрать конкретно данные по модели за определённые месяц - перекладывать и сортировать не нужно, сразу перебором из первого массива выбираете нужное по двум параметрам.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 25.03.2011, 23:23   #15
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Я просто в макросах не силен.

Тут не очень понимаю что к чему.

Нужно чтоб пробегая по базе взял например во внимание БМВ, месяц и количество проданных. Нашел в арее эту марку и по этой марке в конретный взятый месяц вставил количество проданных.
И так далее по всей базе пробегая симуривать в арее.

Может это не реальное я придумал?
sasha_prof вне форума Ответить с цитированием
Старый 25.03.2011, 23:32   #16
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

А мне не очень понятно, что именно нужно.
У Вас в базе исходные данные или в своде?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 25.03.2011, 23:33   #17
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
А мне не очень понятно, что именно нужно.
У Вас в базе исходные данные или в своде?
База содержит и пополняется данными регулярно.
Свод это просто то как я вижу это в арее.
Так я себе это представил.
sasha_prof вне форума Ответить с цитированием
Старый 25.03.2011, 23:49   #18
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Примерно понятно, только непонятно, зачем нужно в такую таблицу переводить. Для наглядности?
В принципе сделать можно, но проще было бы сделать сводной, или в Ацессе. Но это не ко мне, я сводные не понимаю...
Можно и на словарях и массивах сформировать такой новый массив, но не сейчас...
Пока вот, может пригодится - вытягивает количество для введённой марки и месяца (если правильно введёте):
Код:
Sub tt()
    Dim a, x As String, y As String, i As Long
    'a = [A2:C24].Value
    With Worksheets("база")
        a = .Range(.[a2], .Cells(.Rows.Count, 3).End(xlUp))
    End With
    
    x = InputBox("Модель?")
    y = InputBox("Месяц?")
    
    For i = 1 To UBound(a)
        If a(i, 1) = x Then
            If a(i, 2) = y Then MsgBox "Количество: " & a(i, 3): Exit For
        End If
    Next

End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 25.03.2011, 23:55   #19
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Хотя сводная элементарно получается из таких правильно расположенных данных. В файле.
Вложения
Тип файла: zip двойной Array2.zip (11.8 Кб, 7 просмотров)
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 26.03.2011, 00:02   #20
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Спасибо.

Просто то что вы написали при выборе марки и месяца оно показывает первую запись в базе. А мне нужна сумма.

Я вставил малую базу, а на практике она велика очень. Вот поэтому я и хочу сначала в арей перекрестно по месяцам и по маркам разложить, что бы потом пробежаться по листкам другой книге и разложить в нужные ячейки в зависимости от марки и от месяца.


Заранее благодарен
sasha_prof вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TImage Array? Vigilante Компоненты Delphi 18 03.02.2010 10:40
Array CrystaLize Паскаль, Turbo Pascal, PascalABC.NET 7 29.09.2009 21:33
Array Devikss Помощь студентам 4 19.06.2008 22:45
Array BETONOMESHALKA Общие вопросы Delphi 2 24.11.2007 22:49
Array или не array Димарик Общие вопросы Delphi 4 18.06.2007 15:16