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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2012, 02:20   #1
Hausedark3
Новичок
Джуниор
 
Регистрация: 02.04.2012
Сообщений: 2
Восклицание Сканирование Excel

Здраствуйте, помогите пожалуйста решить задачу, в файле будет думаю все понятнее но так в крации на словах, в этом документе 2 листа один с информацией другой якобы с таблицей, на первом лесте сама таблица с кнопкой, при нажатии на которою должно произойти якобы сканирование "листа2" с последующем заполнением таблици на "листе1", кнопка кабы должна понять какое значение стоит в какой либо строке и подставить определенную ячейку в таблицу, значение в виде цифр от 1 до 9, но и тут же есть один момент, строчка которая должна в нескольких ячейках таблици записатся в ней значение "123456" в общем нужно чтобы кнока понимала как будто в этой ячейке 6 разных чисел и соответственно записала некую ячейку в ячейки таблици "листа1"

Тут сама таблица и полная информация от куда должно идти заполнение, на втором листе пометил важные столбики.
Если не трудно помогите еще со столбиком "Кол-во часов" первого листа, оно должно заполнятся по столбику "ГОС" второго листа, "ГОС" должен делится на количество знаков столбиков "Желтого" цвета.
Ну к примеру Физическая культура ее семестры 123456 и ГОС ее 408, следовательно 408 нужно делить на 6, и записать результат в первой таблицы в первых 6-ти семестрах где стоит Физическая культура.
Вложения
Тип файла: rar post_322959.rar (39.8 Кб, 11 просмотров)
Hausedark3 вне форума Ответить с цитированием
Старый 02.04.2012, 10:06   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код с планеты добить не пытаетесь?
Эти Ваши объединённые ячейки...
Это тоже ещё только заготовка - для первой пары таблиц. И там есть шероховатось - нужно вероятно вводить доп. условия, или анализировать не массив, а данные непосредственно с листа в связке с форматом ячеек.
Код:
Private Sub CommandButton1_Click()
    Dim a(), i As Byte, ii As Byte, iii As Byte, x As Byte
    a = Sheets("Лист2").Range("A9").CurrentRegion.Value

    For i = 3 To 53 Step 10
        ReDim b(1 To 9, 1 To 1)
        ReDim bb(1 To 9, 1 To 1)
        iii = 0
        x = x + 1
        For ii = 3 To UBound(a)
            If InStr(a(ii, 3) & a(ii, 4), x) Then
                iii = iii + 1
                b(iii, 1) = a(ii, 2)
                bb(iii, 1) = a(ii, 10) / Len(a(ii, 3) & a(ii, 4))
            End If
        Next
        Cells(i, 3).Resize(9, 1) = b
        Cells(i, 13).Resize(9, 1) = bb
    Next
End Sub
P.S. Вообще-то по факту здесь всюду вместо 9 нужно писать 6 - т.к. цикл For i = 3 To 53 Step 10 имеет всего 6 шагов... в отличие от того первого примера.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 02.04.2012 в 10:35. Причина: Добавил деление часов
Hugo121 вне форума Ответить с цитированием
Старый 02.04.2012, 12:31   #3
Hausedark3
Новичок
Джуниор
 
Регистрация: 02.04.2012
Сообщений: 2
По умолчанию

К сожалению в VBA не селен, этот код работает хорошо, но ему как то ограничить видимость поиска нужно бы) чтобы он видел только дисциплины, а там что вы говорили изменить 9 на 6 это я так понял максимальное число какое в ячейке? это как бы идет номер семестра и дальше там должны быть 7 и 8) только как сделать чтобы он смог просматривать все те таблицы листа2 и то, ту часть где дисциплины, и вводил после также в 2 таблицы по номеру семестра.

Ну суть вы поняли)
Hausedark3 вне форума Ответить с цитированием
Старый 02.04.2012, 12:59   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Не вполне понял, но что-то сделал
Про 9 я ошибся - это число должно быть равно числу заполняемых строк семестра, т.е. количеству предметов, т.е. 10.
Лишние "жирные" строки откинул анализом столбца с КП - беру только те, где там пусто.
Таблицы второго листа берутся все (первые две строки листа откидываю, но можно и не откидывать - они проигнорируются по той же причине, что и "жирные" строки)
Но 85-я строка явно лишняя...

Код:
Private Sub CommandButton1_Click()
    Dim a(), i As Byte, ii As Byte, iii As Byte, x As Byte
    a = Sheets("Лист2").UsedRange.Value

    For i = 3 To 53 Step 10
        ReDim b(1 To 10, 1 To 1)
        ReDim bb(1 To 10, 1 To 1)
        iii = 0
        x = x + 1
        For ii = 1 To UBound(a)
            If Len(a(ii, 5)) = 0 Then
                If InStr(a(ii, 3) & a(ii, 4), x) Then
                    iii = iii + 1
                    b(iii, 1) = a(ii, 2)
                    bb(iii, 1) = a(ii, 10) / Len(a(ii, 3) & a(ii, 4))
                End If
            End If
        Next
        Cells(i, 3).Resize(10, 1) = b
        Cells(i, 13).Resize(10, 1) = bb
    Next

    For i = 66 To 97 Step 10
        ReDim b(1 To 10, 1 To 1)
        ReDim bb(1 To 10, 1 To 1)
        iii = 0
        x = x + 1
        For ii = 1 To UBound(a)
            If Len(a(ii, 5)) = 0 Then
                If InStr(a(ii, 3) & a(ii, 4), x) Then
                    iii = iii + 1
                    b(iii, 1) = a(ii, 2)
                    bb(iii, 1) = a(ii, 10) / Len(a(ii, 3) & a(ii, 4))
                End If
            End If
        Next
        Cells(i, 3).Resize(10, 1) = b
        Cells(i, 13).Resize(10, 1) = bb
    Next

End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сканирование памяти neeble Общие вопросы Delphi 15 01.11.2011 09:47
Сканирование клавиатуры. evgenen Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 14.01.2011 18:53
Сканирование директории D!zel Общие вопросы Delphi 8 22.12.2009 21:11
сканирование сети Sasuke-cun Работа с сетью в Delphi 2 06.12.2009 16:58
Сканирование директорий. Serious Общие вопросы Delphi 2 14.02.2009 15:17