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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2014, 09:13   #1
Ph0enix
 
Регистрация: 01.04.2014
Сообщений: 3
По умолчанию Макрос для сквозной нумерации с группами и подгруппами

Доброго времени суток. У меня имеется 2 столбца А и В, ячейки в столбце А я закрасил 3 разными цветами, то есть красный в соседней ячейке начинает отчет с 1 и т.д +1, желтый в соседней 1.1 + 0.1, синий в соседней 1.1.1 +0.1. Возникла у меня такого рода проблема, при написание макроса, не получается правильно вставить 3 счетчика. Файл приложил, задатки кода тоже внутри. Прошу вашей помощи, уж очень мне хочется разобраться в данном вопросе.
Код:
Sub nomer()
Dim ind%, I%
    For ind = 1 To 1000 Step 1
        If Cells(I, 1).Interior.ColorIndex = "3" Then
            I = I + 1
            Cells(I, 2).Value = ind
        End If
                
        If Cells(I, 1).Interior.ColorIndex = "6" Then
            Cells(I, 2).Value = "1.1"
        End If
        
        If Cells(I, 1).Interior.ColorIndex = "23" Then
            Cells(I, 2).Value = "1.1.1"
        End If
    Next
End Sub
Вложения
Тип файла: rar скрипт нумерации.rar (16.1 Кб, 11 просмотров)

Последний раз редактировалось Ph0enix; 16.04.2014 в 10:19.
Ph0enix вне форума Ответить с цитированием
Старый 16.04.2014, 10:22   #2
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Код:
Sub nomer()
    Dim ind%, I%
    For ind = 1 To 1000
        If Cells(ind, 1).Interior.Color = 255 Then
            I = I + 1
            Cells(ind, 2).Value = I
            myY = I & ".0"
        ElseIf Cells(ind, 1).Interior.Color = 65535 Then
            myY = Split(myY, ".")(0) & "." & Val(Split(myY, ".")(1)) + 1
            Cells(ind, 2).Value = myY
            myB = myY & ".0"
        ElseIf Cells(ind, 1).Interior.Color = 12611584 Then
            myB = Split(myB, ".")(0) & "." & Split(myB, ".")(1) & "." & Val(Split(myB, ".")(2)) + 1
            Cells(ind, 2).Value = myB
        End If
    Next
End Sub
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 16.04.2014, 10:26   #3
Ph0enix
 
Регистрация: 01.04.2014
Сообщений: 3
По умолчанию

Watcher_1, Спасибо вам огромное. Не ожидал такого быстрого и качественного ответа. Буду разбираться дальше. Еще раз спасибо!
Ph0enix вне форума Ответить с цитированием
Старый 16.04.2014, 10:33   #4
Ph0enix
 
Регистрация: 01.04.2014
Сообщений: 3
По умолчанию

А можно еще 1 вопрос? Возможно привязать нумерацию не к цвету ячеек, а к их стилю?
Ph0enix вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос, который копирует строку с одного листа на другой с присвоением нумерации и даты Edvardstrannik Microsoft Office Excel 5 10.04.2013 17:43
Операции с группами чисел kinderproc Microsoft Office Excel 6 04.09.2012 17:39
Сквозная сортировка в Excel (сквозной рубрикатор) DONBAS Microsoft Office Excel 23 31.10.2011 23:55
макрос для нумерации строк Olya1985 Microsoft Office Excel 5 07.01.2011 23:46