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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2011, 18:45   #1
Jduck
Новичок
Джуниор
 
Регистрация: 25.03.2011
Сообщений: 1
По умолчанию Жеребьевка (раскидать по парам и по тройкам)

Есть макрос, который раскидывать случайно по парам числа, слова, имена не суть.
Что нужно изменить, что бы раскидывалось с критерием: т.е. допустим 16 ячеек и необходимо, что бы 1 по 8 ячейки не попали в себя в пару и с 8 по 16, тоже, а остальные варианты приемлимы.

И хотелось бы знать по тройкам можно так раскидать? Смысл ясен к примеру 15 ячеек и нужно чтобы 1 по 5, 5 по 10, 10 по 15, не попали в одну строку.

Это как футбольная жеребьевка с корзинами.


Sub РаскидатьПоПарам()
Dim iI, iAllRecordsCount, iFirstRow, iFirstColumn As Integer
Dim iItogColumn, iItogRow, iRestCount As Integer
iAllRecordsCount = Selection.Count
'Response = MsgBox(iAllRecordsCount)
iFirstRow = Selection.Row
iFirstColumn = Selection.Column
'Response = MsgBox(iFirstRow)
'Response = MsgBox(iFirstColumn)
iRestCount = iAllRecordsCount
iItogColumn = 1
iItogRow = 1
While iRestCount > 0
Randomize
iI = Int((iAllRecordsCount * Rnd) + 1)
'Response = MsgBox(Selection.Cells(iI, 1).Value)
If Selection.Cells(iI, 1).Value <> "" Then

Range(Cells(iFirstRow + iItogRow, iFirstColumn + iItogColumn), _
Cells(iFirstRow + iItogRow, iFirstColumn + iItogColumn)).Value _
= Selection.Cells(iI, 1).Value
Selection.Cells(iI, 1).Value = ""
iRestCount = iRestCount - 1
If iItogColumn = 2 Then
iItogColumn = 1
iItogRow = iItogRow + 1
Else
iItogColumn = 2
End If
End If

'Response = MsgBox(Selection.Cells(iI, iFirstColumn))
'Response = MsgBox(Selection.Cells(iI, 1))
'Dim MyValue
'Randomize ' Initialize random-number generator.
'MyValue = Int((6 * Rnd) + 1) ' Generate random value between 1 and 6.


Wend


End Sub
Jduck вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Раскидать 2 формы на 2 монитора ArtGrek Общие вопросы Delphi 19 08.03.2011 22:12
Раскидать данные по ячейкам BoRRuS Microsoft Office Excel 3 20.05.2010 23:48
Цикл по тройкам RamilFaz Общие вопросы C/C++ 1 08.04.2010 01:00
Диапазон раскидать по ячейкам bysteps Microsoft Office Excel 7 20.03.2010 23:31