Boa noite JNEXCEL, é estranho chamar alguém assim rsrs
Conforme o colega Prudencio informou talvez seria mais fácil utilizar um critério único para pintar e copiar e colar as células, porém talvez algumas das células seja pintada manualmente.
Então elaborei o seguinte código:
Segue link com download da sua planilha modificada:
https://www.sendspace.com/file/hwbgrc
Segue o código que realiza a tarefa desejada:
Sub teste()
Dim B As Worksheet, G As Worksheet, E As Worksheet
Dim ULg As Integer, ULe As Integer, Z As Integer, Y As Integer, Contar As Integer
Dim CorCriterio As Long
Set B = Sheets("BD") 'na sua planilha exemplo criei uma nova aba chamada "BD"
Set G = Sheets("geral")
Set E = Sheets("errados")
Application.ScreenUpdating = False
CorCriterio = B.Cells(1, 2).Interior.ColorIndex
ULg = G.Cells(Rows.Count, 1).End(xlUp).Row
For x = 2 To ULg
ULe = E.Cells(Rows.Count, 1).End(xlUp).Row
Contar = 0
For Y = 2 To 3
If G.Cells(x, Y).Interior.ColorIndex = CorCriterio Then
Contar = Contar + 1
End If
Next Y
If Contar > 0 Then
G.Range("A" & x & ":C" & x).Select
Selection.Copy
E.Select
E.Range("A" & ULe + 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
G.Select
End If
Next x
Application.ScreenUpdating = True
End Sub
Segue uma explicação do que fiz:
1 - Vamos dizer que você enjoe de amarelo e apartir da data X você queira mudar a cor que a macro avalia para copiar e colar para azul;
Para isto você teria que mudar o código e não acho isto prático, pois muitas vezes esquecemos o que significa o código que nós mesmo criamos.
Por isto foi criada uma nova aba chamada "BD" na pasta de trabalho e na célula "A2" basta pintar a cor que deseja que a macro realizará a sua ação.
Obs: Não era necessário criar uma nova aba, é mais por questão de estética...
2 - Fiz uma variável "Contar" para contar caso a cor desejada apareça na coluna 2 ou 3 da aba "geral", caso ocorra em uma das células é adicionado 1 a "Contar", cujo valor inicial é 0.
3 - E por fim um IF para caso "Contar" seja maior que 0 em alguma linha, então copia e cola esta linha abaixo da última linha preenchida na aba "errados".
Caso tenha dificuldades em adaptar o código a sua rotina é so se manifestar.
Espero ter ajudado!
Postado : 30/09/2019 6:08 pm