luke002,
Adicione um novo módulo em sua pasta de trabalho e cole o que segue :
Declaração de variáveis
'Declaramos as variáveis
Dim linhaAtual As Long
Dim ultimaLinha As Long
Dim novaLinha As Long
Dim moveSelecao As Boolean
Rotina para validar TUDO de uma só vez
'Rotina para validar TUDO de uma só vez
Sub validarTUDO()
'Selecionamos a aba TASKS
With ThisWorkbook.Sheets("TASKS")
.Activate
'Definimos a linha inicial
linhaAtual = 54
'Definimos a ultima linha
ultimaLinha = .Cells(65535, 1).End(xlUp).Row
'Definimos o modo moverSelecao para FALSO
moveSelecao = False
'Selecionamos a linha inicial
.Cells(linhaAtual, 1).Select
'Enquanto a linha atual for menor / igual a ultima linha preenchida
While linhaAtual <= ultimaLinha
'Se o valor da celula na linha atual, na coluna STATUS
'for igual a DONE
If .Cells(linhaAtual, 12) = "DONE" Then
'Selecionamos toda a linha
.Cells(linhaAtual, 1).EntireRow.Select
'Copiamos a seleção
Selection.Copy
'Habilitamos o modo moverSelecao
moveSelecao = True
'Selecionamos a aba DONE
With ThisWorkbook.Sheets("DONE")
.Activate
'Definimos qual será a linha á ser utilizada
'que no caso é a primeira em branco
novaLinha = .Cells(65535, 1).End(xlUp).Row + 1
'Selecionamos a linha na coluna A
.Cells(novaLinha, 1).Select
'Colamos a seleção
ActiveSheet.Paste
'Ajustamos todas as colunas da planilha
.Cells.Select
Selection.EntireColumn.AutoFit
End With
End If
'Se o valor da celula na linha atual, na coluna STATUS
'for igual a PROGRESS
If .Cells(linhaAtual, 12) = "PROGRESS" Then
'Selecionamos toda a linha
.Cells(linhaAtual, 1).EntireRow.Select
'Copiamos a seleção
Selection.Copy
'Habilitamos o modo moverSelecao
moveSelecao = True
'Selecionamos a aba PROGRESS
With ThisWorkbook.Sheets("PROGRESS")
.Activate
'Definimos qual será a linha á ser utilizada
'que no caso é a primeira em branco
novaLinha = .Cells(65535, 1).End(xlUp).Row + 1
'Selecionamos a linha na coluna A
.Cells(novaLinha, 1).Select
'Colamos a seleção
ActiveSheet.Paste
'Ajustamos todas as colunas da planilha
.Cells.Select
Selection.EntireColumn.AutoFit
End With
End If
'Se o modo moverSelecao estiver habilitado
If moveSelecao = True Then
'Selecionamos a aba TASKS
With ThisWorkbook.Sheets("TASKS")
.Activate
'Deletamos toda a linha selecionada
ActiveCell.EntireRow.Delete
'Desabilitamos o modo de cópia do Excel
Application.CutCopyMode = False
End With
'Desabilitamos o modo moverSelecao
moveSelecao = False
End If
'Incrementamos e passamos para a próxima linha
linhaAtual = linhaAtual + 1
'Selecionamos a próxima linha
.Cells(linhaAtual, 1).Select
Wend
'Ao término, notificamos o usuário
MsgBox "Validação TO DO realizada com sucesso!", vbInformation, "Validação TO DO"
End With
End Sub
Rotina para validar apenas status DONE
'Rotina para validar apenas status DONE
Sub validarDONE()
'Selecionamos a aba TASKS
With ThisWorkbook.Sheets("TASKS")
.Activate
'Definimos a linha inicial
linhaAtual = 54
'Definimos a ultima linha
ultimaLinha = .Cells(65535, 1).End(xlUp).Row
'Definimos o modo moverSelecao para FALSO
moveSelecao = False
'Selecionamos a linha inicial
.Cells(linhaAtual, 1).Select
'Enquanto a linha atual for menor / igual a ultima linha preenchida
While linhaAtual <= ultimaLinha
'Se o valor da celula na linha atual, na coluna STATUS
'for igual a DONE
If .Cells(linhaAtual, 12) = "DONE" Then
'Selecionamos toda a linha
.Cells(linhaAtual, 1).EntireRow.Select
'Copiamos a seleção
Selection.Copy
'Habilitamos o modo moverSelecao
moveSelecao = True
'Selecionamos a aba DONE
With ThisWorkbook.Sheets("DONE")
.Activate
'Definimos qual será a linha á ser utilizada
'que no caso é a primeira em branco
novaLinha = .Cells(65535, 1).End(xlUp).Row + 1
'Selecionamos a linha na coluna A
.Cells(novaLinha, 1).Select
'Colamos a seleção
ActiveSheet.Paste
'Ajustamos todas as colunas da planilha
.Cells.Select
Selection.EntireColumn.AutoFit
End With
End If
'Se o modo moverSelecao estiver habilitado
If moveSelecao = True Then
'Selecionamos a aba TASKS
With ThisWorkbook.Sheets("TASKS")
.Activate
'Deletamos toda a linha selecionada
ActiveCell.EntireRow.Delete
'Desabilitamos o modo de cópia do Excel
Application.CutCopyMode = False
End With
'Desabilitamos o modo moverSelecao
moveSelecao = False
End If
'Incrementamos e passamos para a próxima linha
linhaAtual = linhaAtual + 1
'Selecionamos a próxima linha
.Cells(linhaAtual, 1).Select
Wend
'Ao término, notificamos o usuário
MsgBox "Validação DONE realizada com sucesso!", vbInformation, "Validação DONE"
End With
End Sub
Rotina para validar apenas status PROGRESS
'Rotina para validar apenas status PROGRESS
Sub validarPROGRESS()
'Selecionamos a aba TASKS
With ThisWorkbook.Sheets("TASKS")
.Activate
'Definimos a linha inicial
linhaAtual = 54
'Definimos a ultima linha
ultimaLinha = .Cells(65535, 1).End(xlUp).Row
'Definimos o modo moverSelecao para FALSO
moveSelecao = False
'Selecionamos a linha inicial
.Cells(linhaAtual, 1).Select
'Enquanto a linha atual for menor / igual a ultima linha preenchida
While linhaAtual <= ultimaLinha
'Se o valor da celula na linha atual, na coluna STATUS
'for igual a PROGRESS
If .Cells(linhaAtual, 12) = "PROGRESS" Then
'Selecionamos toda a linha
.Cells(linhaAtual, 1).EntireRow.Select
'Copiamos a seleção
Selection.Copy
'Habilitamos o modo moverSelecao
moveSelecao = True
'Selecionamos a aba PROGRESS
With ThisWorkbook.Sheets("PROGRESS")
.Activate
'Definimos qual será a linha á ser utilizada
'que no caso é a primeira em branco
novaLinha = .Cells(65535, 1).End(xlUp).Row + 1
'Selecionamos a linha na coluna A
.Cells(novaLinha, 1).Select
'Colamos a seleção
ActiveSheet.Paste
'Ajustamos todas as colunas da planilha
.Cells.Select
Selection.EntireColumn.AutoFit
End With
End If
'Se o modo moverSelecao estiver habilitado
If moveSelecao = True Then
'Selecionamos a aba TASKS
With ThisWorkbook.Sheets("TASKS")
.Activate
'Deletamos toda a linha selecionada
ActiveCell.EntireRow.Delete
'Desabilitamos o modo de cópia do Excel
Application.CutCopyMode = False
End With
'Desabilitamos o modo moverSelecao
moveSelecao = False
End If
'Incrementamos e passamos para a próxima linha
linhaAtual = linhaAtual + 1
'Selecionamos a próxima linha
.Cells(linhaAtual, 1).Select
Wend
'Ao término, notificamos o usuário
MsgBox "Validação PROGRESS realizada com sucesso!", vbInformation, "Validação PROGRESS"
End With
End Sub
Espero ter ajudado.
Abs
Espero ter ajudado.
Abs.
Saulo Robles
Postado : 22/02/2018 7:20 pm