Mauro, achei curioso o fato de minha listbox excluir apenas os valores selecionados até a linha 10 da planilha.
Mas mudando essa linha
Call ExcluiLinhasPorCriterio(2, 10, 1, rStartCell)
Para:
Call ExcluiLinhasPorCriterio(2, 1000, 1, rStartCell)
Deu certo.
Mas uma vez muito obrigado pela ajuda.
Paulo, ainda bem que ajudou, como eu havia deletado as linhas e deixei somente algumas só para alguns testes, não me atentei a este fator, só para explicar o que ocorre na linha acima:
ExcluiLinhasPorCriterio é uma Function e nele temos :
Function ExcluiLinhasPorCriterio(ByVal linhaInicial As Integer, ByVal linhaFinal As Integer, ByVal colunaCriterio As Integer, ByVal criterio As String) As Integer
Nela está fácil de identificar devido aos nomes das variáveis, eu alteraria somente a última, mas tudo bem, então :
ExcluiLinhasPorCriterio(2, 10, 1, rStartCell) é interpretada na Function da seguinte forma :
ExcluiLinhasPorCriterio(linhaInicial, linhaFinal, colunaCriterio, criterio)
Acho que já deu para entender, sendo assim o nº 10 representa a última linha, por isto pesquisava até a linha 10, e qdo alterou para um num maior ele é interpretado até esta linha.
Uma pequena alteração que eu faria, seria utilizar uma variável que já temos neste modelo e trocar este numero pela mesma, ficando assim :
Na rotina que Inicializa com o Formulário temos a declaração a Variável :
Dim ultimaLin As Long - que armazena a ultima linha preenchida, então tire-a de dentro da rotina e declare no inicio do modulo logo abaixo da linha (Private TextoDigitado As String) :
Private ultimaLin As Long
e depois troque conforme abaixo :
Esta : Call ExcluiLinhasPorCriterio(2, 10, 1, rStartCell)
Por esta : Call ExcluiLinhasPorCriterio(2, ultimaLin, 1, rStartCell)
Assim evitamos se sua planilha tiver mais de 1000 itens você ter de alterar a rotina novamente.
Espero que consiga ter explicado.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 23/04/2015 4:39 pm