Pesquisa de dados em outra planilha


#1

Boa noite pessoal,

Gostaria de ajuda para uma necessidade com uma planilha.
Tenho duas planilhas: uma de dados e outra com tabelas.
A planilha de tabelas fará cálculos a partir de dados inseridos e, alguns destes dados, devem ser preenchidos com base em valores constantes na planilha de dados indexadas por um código ou um nome ou um cliente.
Na tabela de dados as três primeiras colunas constam justamente os códigos para indexação: Código do produto, fabricante e cliente.
Eu pensei em colocar uma caixa de combinação ou caixa de listagem mas, como a lista de dados é muito grande a procura fica inviável. Quero, portanto, digitar algum dado (código do produto, fabricante ou cliente) e a caixa de combinação ou caixa de listagem exibir a lista já filtrada para facilitar a seleção.
Depois desta seleção, com base na posição vinculada da linha da planilha de dados, a planilha com as tabelas seriam preenchidas automaticamente com os dados prévios para os cálculos. (essa parte acho que não terei problemas)
É possível fazer isso?
Alguém pode me ajudar?
Obrigado


#2

@angelo.reami, você poderia postar a sua planilha?


#3

Cálculo.xlsx (68,1 KB)

Banco de dados de instrumentos.xlsm (46,5 KB)

Xavier, boa tarde!
A primeira planilha é a de cálculo
A segunda é o banco de dados que ainda está bem no início.
Sobre as colunas I e J da planilha de cálculo está uma caixa de seleção que será usada para selecionar os dados que estão na planilha de dados e preencherá os campos da planilha de cálculo.
Espero que dê para entender.
Obrigado!


#4

@angelo.reami, desculpe mas não entendi pitinhonhas dos seus dados e organização. Talvez algum outro colega consiga ajudar.


#5

Ok, Xavier. Valeu mesmo assim!
Abçs,


#6

@angelo.reami, preencha sua base de dados com alguns exemplos e na planilha de cálculo preencha manualmente com os resultados desejados. Acho que assim vai ajudar bastante para o entendimento para que possamos tentar te ajudar.

Fiquei meio perdido também. Vi que sua planilha é complexa, portanto alguns comentários nas células ajudaria bastante também para alguém conseguir te auxiliar.


#7

Banco de dados de instrumentos.xlsm (44,2 KB)
Cálculo.xlsx (58,4 KB)

Bem pessoal, vou tentar explicar um pouco. Sei que a planilha “Cálculo” é complexa, mas não se preocupem com isso porque a minha dúvida não afeta o trabalho que ela faz. É apenas uma forma de preenchimento.
Eu coloquei os dados na planilha “Banco de dados de instrumentos”. Cada coluna desta planilha representa um valor que será atribuído na outro planilha (“Cálculo”) com exceção das três primeiras colunas que serão meus indexadores.
Na planilha Cálculo há uma caixa de seleção em que eu coloquei um comentário. É esta caixa que está vinculada com os dados da outra planilha. Quando eu selecionar nesta caixa um determinado cliente, código ou modelo, será identificada a linha correspondente na outra planilha (Banco de dados de instrumentos) e cada célula será preenchida com os dados.
O que quero fazer é que, nesta caixa de seleção, ao digitar, por exemplo, o nome do cliente o Excel faça um pré filtro do que contém na planilha “Banco de dados” e apresente neste caixa de seleção no dropdown apenas os itens que correspondem a este filtro para facilitar a seleção pois o banco ainda está vazio, mas será muito grande.
Não sei se consegui me fazer entender?!
Se estiver muito complicado, não tem problema, mas se puderem ao menos me dizer como é possível fazer um pré filtro em caixa de seleção ou se há alguma forma alternativa para fazer isso, eu agradeço.
Valew


#8

@angelo.reami, desenvolvi uma solução um pouquinho diferente do que imagina, usando VBA:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Row = 1 And Target.Column = 9 Then
    
        Application.ScreenUpdating = False
        Application.EnableEvents = False
        
            Dim Filtro As Variant
            Filtro = Target.Value2
        
            Workbooks.Open (ThisWorkbook.Path & "\Banco de dados de instrumentos.xlsm")
            
            Dim Base As Worksheet
            Set Base = Workbooks("Banco de dados de instrumentos.xlsm").Sheets("Base")
            
            Dim i As Long
            Me.Columns(13).ClearContents
            For i = 2 To Base.Cells(Base.Rows.Count, 1).End(xlUp).Row
            
                If Base.Cells(i, 1).Value2 = Filtro Or Base.Cells(i, 2).Value2 = Filtro Or Base.Cells(i, 3).Value2 = Filtro Then
                
                    Me.Cells(Me.Rows.Count, 13).End(xlUp) = Base.Cells(i, 3).Value2
                
                End If
            
            Next i
            
            Workbooks("Banco de dados de instrumentos.xlsm").Close SaveChanges:=True
        
        Application.EnableEvents = True
        Application.ScreenUpdating = True
    
    End If

End Sub 

Isto cria uma coluna auxiliar filtrada na sua planilha. Assim você pode usar a coluna de itens filtrados na sua lista suspensa da caixa de combinação.


#9

Obrigado, Xavier.

Vou dar uma olhada melhor na solução, porque tenho um pouco de dificuldades com o VBA.
Obrigado pela ajuda!!
Abçs,

Angelo