Ir para conteúdo
Fórum Script Brasil
  • 0

LOOPING INFINITO


DANYY

Pergunta

Ola pessoal, estou com o seguinte problema, montei a macro a seguir onde preciso que ela pegue o valor somente do que esta definido como TARIFA e TAR, na coluna B e salve no arquivo texto o valor correspondente a essa tarifa:

Sub tarifa()

Dim valor As String

Dim tarifa As String

Dim arquivo As String

arquivo = "c:\teste.txt"

Open arquivo For Append As #1

Columns("A:E").Select

Selection.AutoFilter

ActiveSheet.Range("$A$1:$E$54").AutoFilter Field:=2, Criteria1:="=*TAR*", _

Operator:=xlAnd, Criteria2:="=*TARIFA*"

Do While ActiveCell.Offset(1, 0).Value <> ""

Cells.Find(What:="TAR", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _

xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _

, SearchFormat:=False).Activate

valor = ActiveCell.Offset(0, 2).Range("A1").Value * -1

Print #1, valor

Loop

Close #1

End Sub

Só que ao rodar ela da um looping infinito pois como estou filtrando a informacao que eu desejo a proxima linha não é vazia então ela inicia todo processo novamente... não sei como proceder para que seja feita a busca somente do que esta definido como tarifa no arquivo sem ter o looping infinito.

Obrigada!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Amiga,

Não sei o objetivo e nem o tamanho do seu arquivo mais acho que deste jeito é mais facil.

Sub tarifa()

Dim valor As String
Dim arquivo As String
Dim cont As Integer

cont = 2

arquivo = "c:\teste.txt"

Open arquivo For Append As #1

Do While Cells(cont, 1).Value <> ""

If UCase(Left(Cells(cont, 1).Value, 3)) = "TAR" Then
valor = Cells(cont, 2).Value * -1
Print #1, valor
End If

cont = cont + 1
Loop

Close #1

End Sub

At.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia, Danyy

Bom, não sei porque você usou o filtro para a sua questão, talvez você tenha achado mais fácil filtrar os dados para ficar mais fácil de encontrá-los. Se foi este o objetivo vai aí uma dica de código que faz comparações simples.

Sub tarifa()
    Dim valor As String
    Dim arquivo As String
    Dim posicao As Long

    arquivo = "c:\teste.txt"

    Open arquivo For Append As #1
    
    posicao = 1
    
    While (Cells(posicao, 1) <> "")
        If (Cells(posicao, 1) = "TAR") Or (Cells(posicao, 1) = "TARIFA") Then
            Print #1, Cells(posicao, 2)
        End If
        
        posicao = posicao + 1
    Wend
    
    Close #1
End Sub

Espero ter ajudado.

Bráulio Figueiredo Pinto
braulio@braulioti.com.br
http://www.skysistemas.com.br

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...