none
PROCV em Várias Linhas. Tem como? RRS feed

  • Pergunta

  • Bom Dia!

    Galera é o seguinte, eu tenho aqui uma planilha que uso como banco de dados para um CONTRATO de VENDAS DE MOTOS...

    Toda vez que alguem compra uma moto financiada, eu preencho os dados do Cliente, da moto e da forma de pagamento nessa planilha.

    O que eu to querendo na verdade é criar uma segunda planilha e nela cadastrar todas as motos que tem aqui na loja e quando eu for fazer o contrato a formula PROCV busque as informações da moto com base na PLACA que será informada...

    Vou exemplificar...

    Na plan1 eu tenho

    A1 = MARCA/MODELO =>  HONDA CG 125 FAN (Aqui resultado da busca da PROCV na Plan2)

    B1 = COR => VERMELHA (Aqui resultado da busca da PROCV na Plan2)

    C1 = ANO FAB. => 2000 (Aqui resultado da busca da PROCV na Plan2)

    D1 = ANO MOD. => 2000 (Aqui resultado da busca da PROCV na Plan2)

    E1 = PLACA =>ASD4567 (Aqui eu informo a placa e o restante fosse resultado dessa busca da procv

    F1 = RENAVAN => 904612999 (Aqui resultado da busca da PROCV na Plan2)

    G1 = CHASSI => 9C2JC30707R054444 (Aqui resultado da busca da PROCV na Plan2)

    Base de dados

    Na plan2 eu tenho esse dados cadastrados

    A1 = MARCA/MODELO =>  HONDA CG 125 FAN

    B1 = COR => VERMELHA

    C1 = ANO FAB. => 2000

    D1 = ANO MOD. => 2000

    E1 = PLACA =>ASD4567

    F1 = RENAVAN => 904612999

    G1 = CHASSI => 9C2JC30707R054444

    Não sei se dá para entender, mas o que eu quero é simples: Ao informar a placa no campo placa na plan1, a PROCV buscasse o restante dos dados na plan2.

    Eu até consegui fazer isso, mas quando faço em outra linha, como a linha 2 por exemplo, já não presta mais....

    quinta-feira, 27 de novembro de 2014 11:27

Respostas

  • Kairton,

    primeiramente, por boa prática, coloque o valor de referência na primeira coluna da tabela, se o caso for a placa.

    muito provavelmente, seu erro no PROCV se dá porque você não está "amarrando" a matriz onde os dados estão contidos.


    PROCV(celula_busca, "E1:G10", 1 , 0)

    use assim:

    PROCV(celula_busca, "$E$1:$G$10", 1 , 0)

    dessa forma, quando você copiar a fórmula para baixo, a matriz continuará a mesma.


    Natan

    quinta-feira, 27 de novembro de 2014 12:05

Todas as Respostas

  • Kairton,

    primeiramente, por boa prática, coloque o valor de referência na primeira coluna da tabela, se o caso for a placa.

    muito provavelmente, seu erro no PROCV se dá porque você não está "amarrando" a matriz onde os dados estão contidos.


    PROCV(celula_busca, "E1:G10", 1 , 0)

    use assim:

    PROCV(celula_busca, "$E$1:$G$10", 1 , 0)

    dessa forma, quando você copiar a fórmula para baixo, a matriz continuará a mesma.


    Natan

    quinta-feira, 27 de novembro de 2014 12:05
  • Natan, não deu certo... Vou te mostrar o que aparece assim:

    #N/D em todas as células que tem a seguinte formula:

    =PROCV($L2;DADOS!$A2:$H15;3;0)

    sexta-feira, 28 de novembro de 2014 16:59
  • Kairton,

    altere para:

    =PROCV($L2;DADOS!$A$2:$H$15;3;0)

    e tenha certeza que o valor que você está procurando na célula L2 existe na coluna "A".



    Natan

    sexta-feira, 28 de novembro de 2014 17:22
  • Natan, agora deu certo, porem so retorna o valor da primeira linha... as outras não mudam..

    sexta-feira, 28 de novembro de 2014 17:49
  • me confirma que a célula_busca [L2] não está amarrada.... essa não precisa ter o $.


    Natan

    sexta-feira, 28 de novembro de 2014 18:24
  • K. Alexandre, bom dia.

    Se conseguires associar um botão de busca na folha, penso que consegues os resultados pretendidos com mais facilidade, associando este código ao botão, efetuando as devidas alterações em função da tua folha. 

    Dim address As Variant Dim CERTAF As Range Dim RangRow As Range Set CERTAF = Range("A2:A26") For Each RangRow In CERTAF.Rows If RangRow.Cells(1, 1) = ComboBox1_CERTIFICADOS.Value Then address = RangRow.Cells(1, 1) RangRow.Cells(1, 1).Select MsgBox " CERTIFICADO ENCONTRADO NA CELULA - - - - - - " & Selection.address _ & vbLf & " - - REGISTO SUBSTITUÍDO COM SUCESSO, NA CÉLULA - - " _ & RangRow.Cells(1, 6).address RangRow.Cells(1, 6).Value = TextBox1_UNITARIO.Value

    'Aqui incrementas em 1 a coluna cujos dados devem ser apresentados. 'No meu caso altera a célula da coluna 6 na mesma linha cujo valor foi procurado.

    Exit For End If Next

    Não sou perito em VBA nem em Ecel, mas nas minhas folhas funciona na perfeição mostrando tudo o que preciso.

    Depois de efetuada a busca pela matrícula, e só acrecentar linhas deslocando o foco e tudo te é apresentado como queres e na folha que queres.

    Experimenta.

    Cumprimentos

    M_A_L


    M_A_L

    domingo, 30 de novembro de 2014 15:36
  • Natan, ela não está amarrada, está normal.. se quiser mando pra ti por email para vc dá uma análisada... fico grato.
    segunda-feira, 1 de dezembro de 2014 18:40
  • Claro,

    manda pra fnatans@hotmail.com

    Mas só vou poder olhar a noitinha...


    Natan

    segunda-feira, 1 de dezembro de 2014 19:13
  • Kairton,

    então, como eu te falei, só precisa colocar a coluna de referência na primeira coluna da tabela, assim fica possível utilizar a função PROCV.

    Te enviei o arquivo.

    Abraço!


    Natan

    sexta-feira, 5 de dezembro de 2014 21:16