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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2010, 10:53   #1
Tai
 
Аватар для Tai
 
Регистрация: 03.12.2010
Сообщений: 3
По умолчанию вложенные циклы, заполнение матрицы при выполнении условия (vba excel)

Здравствуйте!
Пытаюсь разобраться с следующей задачей: есть список заявок, для каждой дано: номер, дата заезда, дата выезда, число человек в группе. Дана таблица, в которой для каждого номера, на весь период планирования указан статус 0- свободен, 1 - занят. Заявка принимается, если номеров на нужные даты хватает на всех людей в заявке.
В общем алгоритм решения такой:
для каждой заявки (s)
счетчик = 0
для каждого человека в заявке (v)
по всем номерам
своб. = 0
на нужные даты :
если а = 0, то число своб. + 1,
в ячейку а номер группы (s),
переход к след дате,
если своб. = нужному кол-ву дней, то счетчик + 1,
переход к след номеру
переход к следующему человеку в заявке
если счетчик = числу человек в заявке, то отмечаем заявку принятой
иначе на нужные даты
где а = s, a = 0
след заявка

В файле то, что у меня пока получилось и таблицы, которые нужно использовать и заполнять.
Буду благодарна, если кто-то сможет помочь!=)
Вложения
Тип файла: rar greedy_alg.rar (11.8 Кб, 16 просмотров)
Tai вне форума Ответить с цитированием
Старый 03.12.2010, 14:37   #2
gsg
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 108
По умолчанию

если, конечно правильно понял задачу
Вложения
Тип файла: zip Graphics.zip (993.4 Кб, 19 просмотров)
-Возьмите лучших их лучщих!
-Лучшие из лучших зализывают раны...
-Тогда, возьмите лучших из худших!
gsg вне форума Ответить с цитированием
Старый 03.12.2010, 19:04   #3
Tai
 
Аватар для Tai
 
Регистрация: 03.12.2010
Сообщений: 3
По умолчанию

Извините, не очень поняла, что за файлы в приложении... нужен просто экселевский с макросом в нем

Это пока всё, что я смогла придумать:
Код:
Sub greedy()
Dim s As Range, v As Variant
Dim free As Variant, ch As Variant, i As Integer
Dim d As Variant
Dim q As Variant, w As Variant, b As Range
Dim n As Variant
Dim c As Range
Set s1 = Range("A12:A20")
Set a1 = Range("B2:K8")
For Each s In s1
Worksheets("Лист3").Cells(s).Activate
ActiveCell.Offset(0, 1).Select
Set c = Application.ActiveCell.Value
Worksheets("Лист3").Cells(s).Activate
ActiveCell.Offset(0, 2).Select
Set b = ActiveCell.Value
Worksheets("Лист3").Cells(s).Activate
ActiveCell.Offset(0, 3).Select
Set v = ActiveCell.Value
Set n1 = Range("A2:A8")
    ch = 0
        For i = 1 To v
            For Each n In n1
            free = 0
            For d = c To b
ActiveSheet.Range("B2").Offset(0, c).Select
Set q = Worksheets("Лист3").ActiveCell.Address
ActiveSheet.Range("B8").Offset(0, b).Select
Set w = Worksheets("Лист3").ActiveCell.Address
Set a2 = Worksheets("Лист3").Range("q:w")
                        For Each a In a2
                        If a = 0 Then free = free + 1
                        Worksheets("Лист3").Cells(a).Value = s
                        Next
                            Next d
 If free = (b - c) Then ch = ch + 1
                            Next n
                               Next i
                               If ch = v Then Worksheets("Лист3").Range.Cells(s, 7).Value = 1
                                    For Each a In a2
                                    If a.Value = s Then Set a.Value = 0
                                                        Next
Next s
End Sub
ругается уже на "Set c = Application.ActiveCell.Value"

Последний раз редактировалось Stilet; 06.12.2010 в 09:17.
Tai вне форума Ответить с цитированием
Старый 06.12.2010, 08:48   #4
gsg
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 108
По умолчанию

прошу прощения, перепутал файл
Вложения
Тип файла: zip greedy_alg.zip (14.0 Кб, 29 просмотров)
-Возьмите лучших их лучщих!
-Лучшие из лучших зализывают раны...
-Тогда, возьмите лучших из худших!
gsg вне форума Ответить с цитированием
Старый 07.12.2010, 02:23   #5
Tai
 
Аватар для Tai
 
Регистрация: 03.12.2010
Сообщений: 3
По умолчанию

я так и подумала
спасибо за помощь!
Tai вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчет суммы ячеек с разных страниц при выполнении условия sttafi Microsoft Office Excel 27 07.12.2012 17:50
Вывести данные первой ячейки столбца при выполнении условия kipish_lp Microsoft Office Excel 7 17.03.2010 14:44
Двумерные массивы, вложенные циклы, матрицы denis12345 Паскаль, Turbo Pascal, PascalABC.NET 1 15.06.2009 03:09
Ошибка и падение (выход) Excel при выполнении сложной программы на VBA Serge_Bliznykov Microsoft Office Excel 6 13.08.2008 16:50
Удалить строку листа Excel при выполнении условия Gennady Microsoft Office Excel 14 18.12.2007 13:54