Есть файл в котором подрядчик цветами обозначает версии и распределяет их по месяцу. Цель с помощью макроса в аналогичную таблицу справа вместо заливки ячейки. прописать название версии.
Как я понимаю, в этом случае необходимо использовать цикл по столбцу с версиями и по таблице где подрядчик показывает график.
Подскажите пожалуйста, можно ли как то сослаться с помощью макроса на цвет ячейки из одной таблицы, найти этот цвет в другой таблице и соотнеся данные внести их в третью таблицу?
Заранее спасибо)
Добрый день!
Есть файл в котором подрядчик цветами обозначает версии и распределяет их по месяцу. Цель с помощью макроса в аналогичную таблицу справа вместо заливки ячейки. прописать название версии.
Как я понимаю, в этом случае необходимо использовать цикл по столбцу с версиями и по таблице где подрядчик показывает график.
Подскажите пожалуйста, можно ли как то сослаться с помощью макроса на цвет ячейки из одной таблицы, найти этот цвет в другой таблице и соотнеся данные внести их в третью таблицу?
Sub Button1_Click() Application.ScreenUpdating = False For Z = 6 To Cells(Rows.Count, "A").End(xlUp).Row For i = 1 To 30 For j = 2 To Cells(Rows.Count, "AP").End(xlUp).Row If Cells(Z, i).Interior.Pattern = xlPatternRectangularGradient Or Cells(Z, i).Interior.Pattern = xlPatternLinearGradient Then If Cells(Z, i).Interior.Gradient.ColorStops(1).Color = Cells(j, "AK").Interior.Gradient.ColorStops(1).Color _ And Cells(Z, i).Interior.Gradient.ColorStops(2).Color = Cells(j, "AK").Interior.Gradient.ColorStops(2).Color Then Cells(Z, i + 50) = Cells(j, "AP").Value Exit For End If End If Next Next Next Application.ScreenUpdating = True End Sub
[/vba]
Решение [vba]
Код
Sub Button1_Click() Application.ScreenUpdating = False For Z = 6 To Cells(Rows.Count, "A").End(xlUp).Row For i = 1 To 30 For j = 2 To Cells(Rows.Count, "AP").End(xlUp).Row If Cells(Z, i).Interior.Pattern = xlPatternRectangularGradient Or Cells(Z, i).Interior.Pattern = xlPatternLinearGradient Then If Cells(Z, i).Interior.Gradient.ColorStops(1).Color = Cells(j, "AK").Interior.Gradient.ColorStops(1).Color _ And Cells(Z, i).Interior.Gradient.ColorStops(2).Color = Cells(j, "AK").Interior.Gradient.ColorStops(2).Color Then Cells(Z, i + 50) = Cells(j, "AP").Value Exit For End If End If Next Next Next Application.ScreenUpdating = True End Sub
Как я понимаю, код работает только с градиентной заливкой, но подрядчик присылает иногда и простую заливку, и какую-то так сказать точечную. см вложение. Подскажите пожалуйста, как обозначить такой тип заливки?
skais, спасибо)
Как я понимаю, код работает только с градиентной заливкой, но подрядчик присылает иногда и простую заливку, и какую-то так сказать точечную. см вложение. Подскажите пожалуйста, как обозначить такой тип заливки?eboryaeva
Sub Button1_Click() '.Range("BA6:CE59").ClearContents Application.ScreenUpdating = False For Z = 6 To Cells(Rows.Count, "A").End(xlUp).Row For i = 1 To 30 For j = 2 To Cells(Rows.Count, "AP").End(xlUp).Row If Cells(Z, i).Interior.Pattern = Cells(j, "AK").Interior.Pattern Then If (Cells(Z, i).Interior.Pattern = xlPatternRectangularGradient Or Cells(Z, i).Interior.Pattern = xlPatternLinearGradient) Then If Cells(Z, i).Interior.Gradient.ColorStops(1).Color = Cells(j, "AK").Interior.Gradient.ColorStops(1).Color _ And Cells(Z, i).Interior.Gradient.ColorStops(2).Color = Cells(j, "AK").Interior.Gradient.ColorStops(2).Color Then Cells(Z, i + 50) = Cells(j, "AP").Value Exit For End If ElseIf Cells(Z, i).Interior.Color = Cells(j, "AK").Interior.Color And Cells(Z, i).Font.Color = Cells(j, "AK").Font.Color Then Cells(Z, i + 50) = Cells(j, "AP").Value Exit For End If End If Next Next Next Application.ScreenUpdating = True End Sub
[/vba]
[vba]
Код
Sub Button1_Click() '.Range("BA6:CE59").ClearContents Application.ScreenUpdating = False For Z = 6 To Cells(Rows.Count, "A").End(xlUp).Row For i = 1 To 30 For j = 2 To Cells(Rows.Count, "AP").End(xlUp).Row If Cells(Z, i).Interior.Pattern = Cells(j, "AK").Interior.Pattern Then If (Cells(Z, i).Interior.Pattern = xlPatternRectangularGradient Or Cells(Z, i).Interior.Pattern = xlPatternLinearGradient) Then If Cells(Z, i).Interior.Gradient.ColorStops(1).Color = Cells(j, "AK").Interior.Gradient.ColorStops(1).Color _ And Cells(Z, i).Interior.Gradient.ColorStops(2).Color = Cells(j, "AK").Interior.Gradient.ColorStops(2).Color Then Cells(Z, i + 50) = Cells(j, "AP").Value Exit For End If ElseIf Cells(Z, i).Interior.Color = Cells(j, "AK").Interior.Color And Cells(Z, i).Font.Color = Cells(j, "AK").Font.Color Then Cells(Z, i + 50) = Cells(j, "AP").Value Exit For End If End If Next Next Next Application.ScreenUpdating = True End Sub
bmv98rus, Подскажите пожалуйста. как можно считать формат ячейки при условном форматировании с помощью макроса? А то в интернете информации о том как создать уловное форматирование с помощью макроса полно. а о том как его считать найти не могу...
bmv98rus, Подскажите пожалуйста. как можно считать формат ячейки при условном форматировании с помощью макроса? А то в интернете информации о том как создать уловное форматирование с помощью макроса полно. а о том как его считать найти не могу...eboryaeva