• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Ridelight

Formula de Consulta em separador e transposição de dados para outra

5 mensagens neste tópico

Boas, tenho uma base de dados composta por 6 separadores, gostaria de saber se há possibilidade de ao alterar os dados no separador 2 por exemplo ele pesquisar na coluna A se o numero coincide e actualizar as restantes colunas de acordo com o separador 2, pois no 1 contem todos os dados dos restantes separadores, e actualizar tudo "á lá pata" não é muito práctico, se alguem me podesse ajudar ficava agradecido !

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom, desconfio que não percebi a pergunta mas, sem ser em VBA será que com PROCH ou PROV não consegues resolver o problema???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom, desconfio que não percebi a pergunta mas, sem ser em VBA será que com PROCH ou PROV não consegues resolver o problema???

Sim, pode resolver o problema (VLOOKUP/HLOOKUP em inglês).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, pode resolver o problema (VLOOKUP/HLOOKUP em inglês).

Sempre muito atento... Sim, é exactamente isso...

Agora é óbvio que depende das condicionantes que o projecto tenha. Serve apenas para questões mais simples...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui vai um exemplo simples (julgo eu) de implementar um vlookup através de código:

Dados do exemplo:

Tabela a procurar: A1 a A21 (existindo depois valores nas colunas B e C)

Valor a procurar  : B35 (preenchendo os dados em C35 e C36)

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    ' verifica se foi alterada a célula B35
    If Not Intersect([b35], Target) Is Nothing Then
        
        Dim rg As Range
        
        ' Area a procurar
        Set rg = Range("A1:A21")
        
        ' Caso encontre
        If Not rg.Find([b35], MatchCase:=True) Is Nothing Then
        
            ' Verifica qual o index da linha encontrada
            Dim r As Integer
            r = rg.Find([b35], MatchCase:=True).Row
            
            ' Coloca os novos valores
            [c35].Value = Cells(r, 2).Value
            [d35].Value = Cells(r, 3).Value
        Else
            ' Limpa os valores
            [c35].Value = ""
            [d35].Value = ""
        End If
        
    
    End If

End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora