Tenho alguns comentários sobre seu código:
-Declare as variáveis que utilizar. Variáveis sem declaração é o primeiro passo para um código falhar: http://ambienteoffice.com.br/officevba/ ... _variavel/
-Dê nomes que façam sentido às suas variáveis. Estou supondo que 'controle' seja uma Caixa de Texto (TextBox), mas não tenho certeza. Por que não nomeá-la como txtControle? O mesmo vale para a variável 'exemplo'. Por que não identificá-la como sExemplo, sendo o prefixo 's' uma dica de que se trata de uma String? http://ambienteoffice.com.br/officevba/ ... or_sufixos
-Você não postou o código pela metade.Não sei o que há depois da última linha, há o término de um laço?
-O trecho:
iI = XX.Row
If Not XX Is Nothing Then
Gera muitas dúvidas. Você não declarou a variável iI, que deveria ser um Long (ou Integer). Depois, você utiliza o comparador Nothing para testar o valor? Você só pode testar variáveis com Nothing quando a mesma é um objeto, como por exemplo os objetos Range e Worksheet.
O código abaixo apaga todas as linhas da coluna H da Planilha de nome sPlanilha cujo valor seja igual ao texto da Caixa de Texto frmControle:
Sub Exemplo()
Dim lRow As Long
Dim lLast As Long
Dim sPlanilha As String
Dim sColBusca As String
Application.ScreenUpdating = False
'Altere os valores abaixo, se necessário:
sPlanilha = "Exemplo"
sColBusca = "H"
With Worksheets(sPlanilha)
'Obtém a última linha da coluna de busca:
lLast = .Cells(.Rows.Count, sColBusca).End(xlUp).Row
'Considerando que a primeira linha é o cabeçalho:
For lRow = lLast To 2 Step -1
If .Cells(lRow, sColBusca) = txtControle.Text Then
.Rows(lRow).Delete
End If
Next lRow
End With
Application.ScreenUpdating = True
End Sub
Observe que o laço que percorre os valores da coluna e exclui linhas deve ser feito da última linha até a primeira. Isso acontece porque se fosse feito do primeiro ao último, ao excluir uma linha, a instrução Next pularia para uma superior à que foi apagada, mas como no ato de exclusão de linha as que estão abaixo sobem, o efeito real seria de pular duas linhas e então a linha imediatamente após a excluída não é verificada.
Felipe Costa Gualberto
Microsoft Excel MVP
http://www.ambienteoffice.com.br
Postado : 06/07/2012 1:30 pm