Notifications
Clear all

Varrer colunas, detectar célula colorida e copia-lá

4 Posts
2 Usuários
0 Reactions
978 Visualizações
(@geite)
Posts: 21
Eminent Member
Topic starter
 

Bom dia pessoal!

Estou com um problema irei anexar a planilha compactada para ter uma melhor noção. Necessito de varrer 3 colunas, detectar células com preenchimento vermelho ou azul, e se encontrar ao final da planilha copia-los na na respectiva coluna (dentro da celula copiada se possível inserir também a informação da respectiva linha da coluna B). isso é possível??

Obs: O PREENCHIMENTO DA COR NA CÉLULA DA PLANILHA ORIGINAL É FRUTO DE UMA FORMATAÇÃO CONDICIONAL.

Desde ja agradeco a ajuda!

 
Postado : 07/06/2013 8:14 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


Veja se é isso:


Sub Coloridas()

Dim slin As Integer
Dim elin As Integer
Dim col As Integer
Dim v As Boolean

slin = 4
elin = 15
flin = elin - 2
col = 3

Call Limpar

Do While slin < flin
Do While col <= 5
If Cells(slin, col).Interior.ColorIndex <> xlNone Then
v = True
Cells(slin, col).Copy
Cells(elin, col).Select
ActiveSheet.Paste
Cells(slin, 2).Copy
Cells(elin, 2).Select
ActiveSheet.Paste
col = col + 1
Else
col = col + 1
End If
Loop
col = 3
slin = slin + 1
If v = True Then
elin = elin + 1
End If
v = False
Loop

Application.CutCopyMode = False

End Sub

Sub Limpar()

With Range("B15:E100")
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
.Borders(xlInsideVertical).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
.Interior.ColorIndex = xlNone
.ClearContents
End With

End Sub

 
Postado : 07/06/2013 10:52 am
(@geite)
Posts: 21
Eminent Member
Topic starter
 

Isso mesmo Edson, o problema é que se a célula colorida for fruto de uma formatação condicional, o respectivo código não funciona.
Você tem alguma ideia em relação a isso?

 
Postado : 10/06/2013 2:23 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


geite, não havia me atentado a este detalhe.

Acredito que seja possível, com código mais sofisticado.

Vou tentar adaptar ao seu exemplo, porém, sugiro que leia o artigo no link abaixo:

http://dicaoffice.blogspot.com.br/2011/ ... tacao.html

 
Postado : 10/06/2013 4:12 pm