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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2009, 12:50   #1
sosed
Пользователь
 
Аватар для sosed
 
Регистрация: 27.03.2009
Сообщений: 82
По умолчанию Помогите сделать макрос.

Здравствуйте.
Огромная просьба, - помогите сделать макрос в Excel по условию:
Даны 20 столбиков, без ограничения по количеству строк, которые заполнены
цифрами из диапазона от 1 по 80.
Необходимо чтоб программа могла указать количество последних строк, в которых
присутствуют все цифры данного диапазона (от 1 по 80).
К примеру - заполняем лист цифровым диапазоном в 120 строк (на 20 столбиков),
а программа должна указать (отделить или выделить) те 10,12 или 27...30 строк, в которых
присутствуют все 1,2,3.. ...80.
К сожаленью сам макросы писать не умею.
sosed вне форума Ответить с цитированием
Старый 02.07.2009, 13:24   #2
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Уточните условия. выделить толко те где все 1 или где хот одна 1.
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 02.07.2009, 13:50   #3
sosed
Пользователь
 
Аватар для sosed
 
Регистрация: 27.03.2009
Сообщений: 82
По умолчанию

Предположим у нас 120 строк (20 столбиков)
Предположим что числа всего диапазона уложились в 16 последних строках, тогда надо чтобы строки 104-120 выделялись, или только одна строка 104 выделялась.
Уточню. К примеру у нас в этих 16-ти строках число 2 встретилось 6 раз, а число 37 только оди раз, в строке 104. Предположим что все другие числа встречаются чаще чем число 2. Так вот мне надо, чтоб программа как бы отсекала, или выделяла строку 104, потому что в ней последней мы видим число 37, как самое редкое по частоте.

Последний раз редактировалось sosed; 02.07.2009 в 14:15. Причина: уточнение
sosed вне форума Ответить с цитированием
Старый 02.07.2009, 14:31   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Есть большое количество вариантов решения Вашей задачи.
Предлагаю, может не самое рациональное, но на мой взгляд, оригинальное решение.
Посмотрите вложение. Макрос "Заполнить" заполняет диапазон "A1:T120" (120 строк Х 20 столбцов) случайными целыми числами в диапазоне от 1 до 80. Макрос "Main" помечает цветом интересующие Вас строки.
Вложения
Тип файла: rar Книга1.rar (11.4 Кб, 65 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 02.07.2009, 14:49   #5
sosed
Пользователь
 
Аватар для sosed
 
Регистрация: 27.03.2009
Сообщений: 82
По умолчанию

SAS888 Великолепно! Огромное спасибо!
sosed вне форума Ответить с цитированием
Старый 02.07.2009, 15:38   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вот ещё один из вариантов:
Код:
Sub Заполнить()
    Dim i As Integer, j As Integer
    Application.ScreenUpdating = False: Cells.Interior.ColorIndex = xlNone
    For i = 1 To 20
        For j = 1 To 120: Cells(j, i) = Int(80 * Rnd(j) + 1): Next
    Next
    Application.ScreenUpdating = True
End Sub

Sub Main()
    Dim i As Integer, s As String: For i = 1 To 80: s = s & Chr(i): Next
    Cells.Interior.ColorIndex = xlNone: Application.ScreenUpdating = True
    For j = 120 To 1 Step -1
        For i = 1 To 20: s = Replace(s, Chr(Cells(j, i)), "z"): Next
        Debug.Print j, Len(Replace(s, "z", ""))
        If Len(Replace(s, "z", "")) = 0 Then
            Range(Cells(j, "A"), Cells(120, "T")).Interior.ColorIndex = 6
            End
        End If
    Next
    MsgBox "В диапазоне нет всех чисел"
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 04.07.2009, 22:41   #7
otto_diesel
Новичок
Джуниор
 
Регистрация: 03.07.2009
Сообщений: 2
Печаль

Ребята когдато была тема о построении макросов для заполнения договоров 300 шт. по 2 екземпляра : есть в екселе список фамилий, паспортных данных, идентификационных кодов нужно чтобы программа вставляла имя другие данные в вердовском документе в нужных местах.
Был ответ как все это сделать но у меня чего-то не выходит пишет ошибка компеляции.
Подскажите как решить мою проблему , а то рука отпадет пока напишу все договора вручную.Excel to Word.rar
otto_diesel вне форума Ответить с цитированием
Старый 04.07.2009, 22:46   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

2 otto_diesel

Вероятно, Вы используете Office 2007.
Решение Вашей проблемы описано здесь:
http://www.programmersforum.ru/showp...78&postcount=6

Откройте редактор VBA, в меню Tools->References ищите ссылки на библиотеки, помеченные словом "MISSING", и замените их на соответствующие более ранних/новых версий.

На будущее - либо задавайте вопрос в той же теме, либо создавайте новую.
Не надо задавать свой вопрос в первой попавшейся теме.

Последний раз редактировалось EducatedFool; 04.07.2009 в 22:51.
EducatedFool вне форума Ответить с цитированием
Старый 22.01.2010, 13:26   #9
sosed
Пользователь
 
Аватар для sosed
 
Регистрация: 27.03.2009
Сообщений: 82
По умолчанию Помогите сделать макрос.

Как сделать макрос по такому условию:
дана таблица из 20-ти столбцов, каждый из которых заполнен числами от 1 до 80; необходимо чтобы программа могла численно показывать в каком столбце сколько раз появлялось каждое из чисел указанного диапазона.
sosed вне форума Ответить с цитированием
Старый 22.01.2010, 14:00   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
чтобы программа могла численно показывать
Если Вы переведёте процитированную фразу на русский язык, то, возможно, поможем.

Как именно программа должна это показать?
Почему именно макрос? (формулами это сделать намного удобнее и проще)
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос постоянно обрабатывает события. При открытии другой книги макрос обрывается. Ples Microsoft Office Excel 8 17.12.2016 18:15
В Word на VBA сделать макрос Генерал_Касетр Фриланс 4 15.06.2009 17:38
Как сделать макрос в WORD и описать его алгоритм ещё prikolist Microsoft Office Word 2 21.11.2008 13:19
Как сделать макрос для ComboBoxa anahronism Microsoft Office Excel 0 28.05.2008 15:40
Как сделать чтобы макрос выполнялся сам каждые 10 минут? Град SQL, базы данных 0 26.05.2008 16:12