Форум программистов, компьютерный форум, киберфорум
Наши страницы

VBA

Войти
Регистрация
Восстановить пароль
 
Алекса589
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 8
#1

Присвоить группам строк номера в зависимости от цвета ячеек - VBA

20.04.2017, 06:29. Просмотров 207. Ответов 4
Метки нет (Все метки)

На листе строки разного цвета: зеленые, желтые, белые.
Необходимо в крайнем левом пустом столбце присвоить всем строкам номера по следующему критерию:
Проверяем столбец D.
Если первая строка зеленая, то все белые после нее составляют вместе с ней группу - этой группе должно соответствовать одно значение, например 1.
Если строка желтая - она не имеет группы, т.е. каждая желтая нумеруется отдельно - 2,3, и тд.
Помогите, пожалуйста, как это можно реализовать?
Для примера вручную пронумеровала первые строки.
0
Вложения
Тип файла: xlsx Исходный файл2-2.xlsx (67.5 Кб, 4 просмотров)
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2017, 06:29
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Присвоить группам строк номера в зависимости от цвета ячеек (VBA):

Как присвоить массиву значения из ячеек и наоборот? - VBA
как присвоить массиву значения из ячеек и наоборот ?

Изменение цвета ячеек макросом - VBA
Помогите, пожалуйста, необходимо следующее: если данные в столбике А не изменяются, то цвет зеленый, если изменились красный

Цикличное изменение цвета ячеек - VBA
Здравствуйте. Как сделать, чтобы ячейка меняла свой цвет с интервалом, к примеру, в 3 секунды. число возможных цветов 2. 1....

Закрашивание ячеек в зависимости от даты - VBA
Здравствуйте, имеется макрос, который закрашивает ячейки в зависимости от дат. Прошу помочь исправить код, так чтобы он ориентировался в...

Быстрая смена цвета и значений ячеек - VBA
Есть такая необходимость - быстро (порядка десяти раз в секунду) менять текст (один символ) и, возможно, цвет 25х80 ячеек. Проблема с...

Подсказки для цвета выделения ячеек - VBA
Если кто то знает то подскажите как решить следующюу задачу: есть лист в Экселе на котором разными цветами (до 5 штук) отмечены различные...

4
D1973
Модератор
3125 / 2191 / 873
Регистрация: 21.01.2014
Сообщений: 8,876
Записей в блоге: 3
Завершенные тесты: 1
20.04.2017, 08:29 #2
Цитата Сообщение от Алекса589 Посмотреть сообщение
Проверяем столбец D... Если строка желтая...
А "желтые" - все в столбце E...
Да и вообще, "зеленым" и "желтым" эти цвета можно назвать с о-очень большой натяжкой... А если цвета чуть-чуть, даже незаметно для глаза, поменяются - точного совпадения уже не будет - и привет! Может быть есть более удобные критерии отбора, чем цвет ячеек?

Добавлено через 6 минут
Да и версию Дельфи не худо бы указать...
0
Алекса589
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 8
20.04.2017, 09:01  [ТС] #3
На самом деле создала тему не в том разделе (нужен был раздел vba), а как изменить раздел не знаю.. косорукая

Добавлено через 26 минут
спасибо, что переместили )
0
aequit
59 / 59 / 15
Регистрация: 08.09.2012
Сообщений: 145
20.04.2017, 12:32 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Пробуйте:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub tyuei()
    Dim i As Long
    Dim d As Long
    Dim lLastRow As Long
    lLastRow = Cells(Rows.Count, 5).End(xlUp).Row
    d = 1
    For i = 4 To lLastRow
        If Cells(i, 5).Interior.ColorIndex = 36 Then
            Cells(i, 2) = d
            d = d + 1
        ElseIf Cells(i, 5).Interior.ColorIndex = 35 Then
            Cells(i, 2) = d
            If Cells(i + 1, 5).Interior.ColorIndex = 36 Then
               d = d + 1
            End If
        ElseIf Cells(i, 5).Interior.ColorIndex = -4142 Then
            Cells(i, 2) = d
            If Cells(i + 1, 5).Interior.ColorIndex = 36 Or Cells(i + 1, 5).Interior.ColorIndex = 35 Then
               d = d + 1
            End If
        End If
    Next i
End Sub
0
Алекса589
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 8
21.04.2017, 03:06  [ТС] #5
спасибо большое!) я уже решила вопрос, отдельно определила код цветов, и почти как у вас:

Dim konc, konr, i, j, n As Long

konc = list1.Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
konr = list1.Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row

For i = 1 To konc
If Trim(list1.Cells(3, i).Text) = "Номер документа" Then n = i
Next i

j = 1
i = 4
For i = 4 To konr
If (list1.Cells(i, n).Interior.Color = 10092543 Or list1.Cells(i, n).Interior.Color = 12379351) Then
list1.Cells(i, 1).Value = j
j = j + 1
Else
list1.Cells(i, 1).Value = list1.Cells(i - 1, 1).Value
End If
Next i
0
21.04.2017, 03:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2017, 03:06
Привет! Вот еще темы с ответами:

Защита ячеек определенного цвета макросом - VBA
Добрый день! Подскажите пожалуйста как сделать с помощью ВБА запрет на редактирование всех ячеек кроме синих и белых? Ячейки могут быть...

Подсчитать количество ячеек каждого цвета - VBA
Рабочий лист раскрашен в 3 цвета. Внести в ячейки значения: в красные - 5, в желтые - 10, синие - 15. Подсчитать количество ячеек каждого...

Скрипт поиска и замены цвета ячеек - VBA
Добрый день. Помогите со скриптом поиска и замены цвета ячеек. Нужно найти все зеленые, желтые и черные ячейки и заменить их цвет на серый.

Сценарий на запись ячеек в зависимости от списка - VBA
Здравствуйте! Требуется VBA код со сценарием, который будет заполнять ячейки в зависимости от значения, выбранного из списка. VBA как бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru