Página 1 de 1
Deletar linhas mediante condição
Enviado: 12 Ago 2021 às 21:32
por Domingsp
Opa, nessa planilha tenho a coluna C com alguns números e na coluna E tem :
0890
8789
9194
9994
A macro precisa calcular a diferença entre o numero formado pelo 1º e 2º e o número formado pelo 3º e 4º da coluna E.
Se a diferença entre esses números for diferente dos números na coluna C, então a célula em questão em coluna E é excluída. O resultado correto seria permanecer os valores 9194 e 9994, mas a macro deleta tudo e dá erro de tipos incompatíveis. Desde já, obrigado
TESTE.xlsm
Re: Deletar linhas mediante condição
Enviado: 13 Ago 2021 às 11:04
por Foxtri
Bom dia.
Não sei se entendi a sua necessidade.
Fiz uma opção, veja se serve.
Sub Teste()
Application.ScreenUpdating = False
Dim Dif1 As Integer
UlinC = Cells(Rows.Count, "C").End(xlUp).Row
UlinE = Cells(Rows.Count, "E").End(xlUp).Row
For m1 = 2 To UlinE
E = Cells(m1, "E")
If E = "" Then Exit Sub
Tt_1 = (Mid(E, 1, 1) & Mid(E, 2, 1)) * 1
Tt_2 = (Mid(E, 3, 1) & Mid(E, 4, 1)) * 1
Dif1 = Abs(Tt_1 - Tt_2)
If Evaluate("=IfError(match(" & Dif1 & ",$C$2:$C$5 ,0),0)") = 0 Then Cells(m1, "E") = ""
Next m1
Application.ScreenUpdating = True
End Sub
Até
Foxtri
Re: Deletar linhas mediante condição
Enviado: 13 Ago 2021 às 14:27
por Domingsp
Ficou show, Foxtri! Só ia te pedir a gentileza de me explicar os comandos:
If E = "" Then Exit Sub
e
Evaluate("=IfError(match(" & Dif1 & ",$C$2:$C$5 ,0),0)") = 0
Obrigado
Re: Deletar linhas mediante condição
Enviado: 13 Ago 2021 às 14:50
por Foxtri
Olá
Respondendo:
"If E = "" Then Exit Sub"
Tenho que , E = Cells(m1, "E") e se E = "" ,
Então se vc voltar a acionar a macro, vai sair da função , para evitar erros
"Evaluate("=IfError(match(" & Dif1 & ",$C$2:$C$5 ,0),0)") = 0"
A função Evaluate é para calcular formulas como as usadas diretamente nas células , neste caso o VBA faz o calculo
Se desejar mais detalhes sobre esta função, por favor verifique no Famoso GOOGLE .
Espero que tenha ajudado.
T+
Foxtri