Ir ao conteúdo
  • Cadastre-se
Joao Gabriel

Obtendo endereço de celulas (vba)

Recommended Posts

Fala galera, tudo bom?

Então, to tentando desenvolver uma função pro Excel utilizando o Vba, porém "encalhei" em uma parte:

não consigo obter o endereço de uma célula que estou iterando de um elemento range... Ou melhor dizendo: minha função recebe um elemento range, o qual irei comprar um um determinado valor, e se forem iguais, preciso do endereço dessa célula (que está contida no elemento range), porém não consigo obter o endereço da célula... Alguém sabe como posso fazer isso?

 

Segue o código que tenho até agora.

 

Public Function pesquisa(A As Range, Campo As String)
    C = 0
    
    For Each Celula In A.Cells
        If (StrComp(Celula, Campo) = 0) Then
            'aqui deveria obter o endereço (linha e coluna) da celula que satisfaz à condição anterior
        End If
    Next
End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

@CasaDoHardware  Tambem... Quero saber se determinada célula tem determinado valor, e então obter o endereço dela (basicamente vou procurar em uma planilha esse determinado valor, e obter os demais dados associado à ele, que estarão em outras colunas, em uma distribuição conhecida), algo próximo do que a função PROCV faz, porém ela não me atende.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja que nao disponibilizou um modelo de seu arquivo, acredito que você tenha mais de uma ocorrencia com o valor procurado, sendo assim: 

 

Tente adaptar algo assim:

 

Sub Pesquisa()

 

Dim Valor as string

Dim Linha as long

 

Linha = 2

 

Do while cells(linha,1).value <>""

 

Valor = cells(linha,1).value

 

'Digite o valor procurado na celula A1

 

if Cells(1,1).value = valor then

 

'Rotina para exibir os dados desejados

 

linha = linha + 1

 

else

 

linha = linha + 1

 

end if

 

loop

 

End Sub

 

Se nao conseguir adaptar disponibilize o arquivo.

 

 

Se é so para pesquisar os dados esse codigo acima funciona apos ajuste da linha rotina para exibir os dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites
49 minutos atrás, Joao Gabriel disse:

@CasaDoHardware  Tambem... Quero saber se determinada célula tem determinado valor, e então obter o endereço dela (basicamente vou procurar em uma planilha esse determinado valor, e obter os demais dados associado à ele, que estarão em outras colunas, em uma distribuição conhecida), algo próximo do que a função PROCV faz, porém ela não me atende.

Por acaso... você já tentou usar ÍNDICE() + CORRESP() para fazer busca na sua planilha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@DJunqueira Sim, já até consegui fazer o INDICE() + uma serie de SE, e umas outras funções... Mas mesmo assim não ficou lá aquelas coisas... Basicamente eu vou ter uma serie de planilhas listando uma serie de dados coletados associados (por planilha) à um determinado produto, e preciso coletar todos os dados referente a cada produto de uma vez... Como disse, da pra fazer com as funções padrão do excel, mas não fica um trabalho bem feito, foi então que decidi construir minha própria função.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você ainda poderia usar uma tabela dinâmica p/ o q você mencionou. Funções criadas com VBA não apresentam o mesmo desempenho q as funções nativas e utilizadas em larga escala podem degradar muito o desempenho da sua pasta de trabalho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×