Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

VBA - Laço While (Aula 03 - Percorrendo todas as linhas)

Na execução da aula, utilizando uma planilha de dados minha, a macro está rodando mas não está executando tudo que eu escrevi no código dela. O código é para o usuário pesquisar a cidade e a macro deve buscar em quais linhas da tabela o nome digitado pelo usuário aparece igual ao da tabela, percorrendo a coluna de cidades. Na sequência o código pede para que se a macro achar o nome igual ao pesquisado é para ela pintar a linha inteira da tabela de um cor e ao terminar de fazer a busca, a macro traz o número de pessoas com a cidade pesquisada.

A macro só está percorrendo a tabela, porém, nunca acha o nome da cidade, mesmo quando eu pesquiso uma cidade que tenha na tabela e, como consequência, a macro também não faz a contagem das pessoas.

Já conferi linha por linha com o exercício fornecido pelo curso, mas ainda não consegui achar o erro.

Abaixo o código para ajudar na interpretação:

Sub exemplo_While1()
'Referência Relativa
    Dim cidade As String
    Dim tot_empresas As Integer
    cidade = InputBox("Digite a cidade a ser consultada")
    Range("b2").Select
    'faça enquanto a célula ativa for diferente de "vazio" - executar comando
        Do While ActiveCell <> ""
            If UCase(ActiveCell) = UCase(cidade) Then
                Range(ActiveCell.Offset(0, -1), ActiveCell.Offset(0, 1)).Interior.ColorIndex = 24
                tot_empresas = tot_empresas + 1
            End If
            ActiveCell.Offset(1, 0).Select
        Loop
        Range("a1").Select
        MsgBox tot_empresas
End Sub

Gostaria que alguém pudesse dar uma testada no meu código para identificar o erro, por favor!?

2 respostas
solução

Já identifiquei o erro. A célula onde estava escrito o nome da cidade teve origem a partir do uso da opção de "separação de texto para colunas", eu tinha as informações de bairro, cidade e estado em uma única coluna e utilizando a opção de "separação de texto para colunas" eu separei as informações. Dessa forma, a macro não estava entendendo o texto de cada cidade como texto, mas se eu escrever texto por texto, a macro passa a entender e a executar corretamente.

Olá Ana Paula, como vai?

Que bom que encontrou a solução, apenas peço que marque sua resposta como solucionadora, pois assim, quando algum(a) outro(a) aluno(a) passar por algum problema parecido, seja mais fácil para encontrar a solução.

Bons estudos!