Ir ao conteúdo
  • Cadastre-se

Excel Loop baixo para cima VBA


Posts recomendados

Pessoal, bom dia!

Possuo uma macro que rodo no Word que procura determinadas palavras e retoma uma msxbox. Esse é o código da instrução:

  Application.Selection.Find.ClearFormatting
    If Application.Selection.Find.Execute("^pRELATÓRIO^p") = True Then
    Msgbox "Relatório encontrado", vbInformation, "Item de verificação"
    Else: Msgbox "Não encontrei o relatório na minuta que analisei. Se houver algum ajuste a ser feito, lembre-se de modificar também no relatório!", vbInformation, "Item de verificação"
    End If

Ao executar a macro, a busca é feita progressivamente. Contudo, necessito que ela seja feita do final da página para o início. Ou seja: leitura na ordem inversa.

Já pesquisei bastante... Mas não sei qual expressão acrescentar no meu código...

Por favor, me ajudem.

Link para o comentário
Compartilhar em outros sites

2 horas atrás, guedesjr7 disse:

Pessoal, bom dia!

Possuo uma macro que rodo no Word que procura determinadas palavras e retoma uma msxbox. Esse é o código da instrução:

 


  Application.Selection.Find.ClearFormatting
    If Application.Selection.Find.Execute("^pRELATÓRIO^p") = True Then
    Msgbox "Relatório encontrado", vbInformation, "Item de verificação"
    Else: Msgbox "Não encontrei o relatório na minuta que analisei. Se houver algum ajuste a ser feito, lembre-se de modificar também no relatório!", vbInformation, "Item de verificação"
    End If

 

Ao executar a macro, a busca é feita progressivamente. Contudo, necessito que ela seja feita do final da página para o início. Ou seja: leitura na ordem inversa.

Já pesquisei bastante... Mas não sei qual expressão acrescentar no meu código...

Por favor, me ajudem.

 

Veja te ajuda

 

Option Explicit

Sub Linhas()

Dim i, FinalLinha As Long

'EM FinalLinha O 1 IDENTIFICA QUAL A COLUNAS ONDE AS LINHAS(Rows) SERÃO CONTADAS E IDENTIFICADA A ULTIMA LINHA
FinalLinha = Cells(Rows.Count, 1).End(xlUp).Row

For i = FinalLinha To 2 Step -1

    'AQUI DENTRO VAI O SEU CÓDIGO

Next i

End Sub

Link para o comentário
Compartilhar em outros sites

Segue sugestão:

Declare esta variável fora da sub

Dim priTurn As Boolean

Substitua o seu codigo, por: 

With Selection
          If priTurn = False Then
          .EndKey Unit:=wdStory
          End If
          With .Find
            .ClearFormatting
            .Text = "^pRELATÓRIO^p"
            .Forward = False
            .Format = True
            .MatchWholeWord = False
             If .Execute = True Then
                   MsgBox "Relatório encontrado", vbInformation, "Item de verificação"
                   priTurn = True
            Else
                   MsgBox "Não encontrei o relatório na minuta que analisei. Se houver algum ajuste a ser feito, " & _
                           "lembre-se de modificar também no relatório!", vbInformation, "Item de verificação"
                       priTurn = False
             End If
            Selection.Collapse wdCollapseStart
            .Forward = True
            .Execute
        End With
    End With

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...