Trazer último valor

brenocamp88
Membro
Membro
Status:
Mensagens: 2
Registro: 01 Out 2012
Karma: [0] Acrescente 1 ponto ao karma. Tire 1 ponto do karma

Trazer último valor

Mensagem por brenocamp88 » 01 Out 2012

Boa tarde!

Sou novo por aqui e nesse mundo de vba tambem.
gostaria de saber se vcs podem me ajudar, acredito que seja simples.

gostaria de puxar o ultimo preco de uma tabela em um formulario.
é possivel isso? Fiz uma busca e o vlookup sempre traz o primeiro resultado, mas gostaria de obter o ultimo
seria o preco de venda de um produto.

grato.

BC

Avatar de usuário
Wagner Morel
Guru
Guru
Status:
Mensagens: 1715
Registro: 24 Jan 2011
Localização: FORTALEZA - CE
Karma: [247] Acrescente 1 ponto ao karma. Tire 1 ponto do karma

Re: Trazer último valor

Mensagem por Wagner Morel » 02 Out 2012

Breno,

Bom Dia!

Como é esse formulário a que você se refere? Você fez um UserForm no VBA e nele há uma caixa de texto onde você quer carregar para ela u último valor de uma determinada coluna existente na planilha? ´E isso? Se sim, qual coluna?

Por gentileza, forneça maiores detalhes...
Grande abraço.

Atenciosamente
Wagner Morel


Se a informação foi útil, Por gentileza, Amigo, vote positivamente no meu KARMA, clicando na mãozinha verde do lado esquerdo da tela.

brenocamp88
Membro
Membro
Status:
Mensagens: 2
Registro: 01 Out 2012
Karma: [0] Acrescente 1 ponto ao karma. Tire 1 ponto do karma

Re: Trazer último valor

Mensagem por brenocamp88 » 03 Out 2012

bom dia Wagner. Obrigado pela atenção primeiramente.

e o que eu preciso é exatamente isso. ao selecionar um item na combobox de um formulario, uma textbox me trazer o seu ultimo valor de compra.
os dados estão dispostos em duas colunas, como por exemplo:

MAÇÃ R$1,50
PERA R$1,25
MAÇÃ R$0,90

Então, ao selecionar maçã, eu gostaria que a textbox retornasse R$0,90.
grato.

BC

Avatar de usuário
Wagner Morel
Guru
Guru
Status:
Mensagens: 1715
Registro: 24 Jan 2011
Localização: FORTALEZA - CE
Karma: [247] Acrescente 1 ponto ao karma. Tire 1 ponto do karma

Re: Trazer último valor

Mensagem por Wagner Morel » 03 Out 2012

breno,

Bom Dia!

- Supondo que os itens que você especificou (Maçã, Pera e Maçã) estão na coluna A, a partir da linha 2 ( a linha 1 é cabeçalho).
- Supondo também que os valores que você especificou (R$ 1,50, R$ 1,95 e R$ 0,90) estão na coluna B, a partir da linha 2.
- Supondo também que você tem um UserForm e que nele tem dois controles: Um ComboBox chamado ComboBox1 e uma caixa de texto chamada TextBox1.
- Supondo que ao carregar o formulário, automaticamente os valores dos produtos (coluna A) devem aparecer no controle combo para que o usuário escolha um deles. Como existem ítens repetidos, é necessário retirá-los do combo para a lista não ficar grande e sem sentido. Assim veja abaixo os códigos:

1 - Esse código carrega os ítens para o combo. Coloque o mesmo no evento Initialize do Formulário:
Código: Selecionar tudo
Private Sub UserForm_Initialize()
    Dim i, UltimaLinha As Long
    UltimaLinha = Sheets("Plan1").Cells(Cells.Rows.Count, 1).End(xlUp).Row
    If UltimaLinha < 2 Then UltimaLinha = 2
    For i = 2 To UltimaLinha
        ComboBox1.AddItem Range("A" & i).Value
    Next
    Call Retira_Repetidos
End Sub


2 - Esse código retira os ítens repetidos de dentro do combo. Coloque-o também no Form, logo depois da rotina do Initialize:
Código: Selecionar tudo
Sub Retira_Repetidos()
Dim QtdeLinhas, x, z As Integer

QtdeLinhas = ComboBox1.ListCount - 1

  For x = 0 To QtdeLinhas
    For z = 0 To QtdeLinhas
        If x <> z Then
            If z > QtdeLinhas Or x > QtdeLinhas Then Exit For
            If ComboBox1.List(x) = ComboBox1.List(z) Then
                ComboBox1.RemoveItem (z)
                QtdeLinhas = QtdeLinhas - 1
            End If
        End If
    Next z
  Next x
 
End Sub


3 - Esse código faz a busca na planilha e insere o último valor encontrado do produto no TextBox. Também deve ser inserido no Formulário. Insira-o no evento Click do ComboBox:
Código: Selecionar tudo
Private Sub ComboBox1_Click()
    Dim i, j, UltimaLinha As Long
    UltimaLinha = Sheets("Plan1").Cells(Cells.Rows.Count, 1).End(xlUp).Row
    If UltimaLinha < 2 Then UltimaLinha = 2
    For i = 2 To UltimaLinha
        For j = i + 1 To UltimaLinha
            If Range("A" & j).Value = Range("A" & i).Value Then
                If j = UltimaLinha Then
                    TextBox1.Text = Range("B" & j).Value
                    TextBox1.Text = Format(TextBox1.Text, "R$ #,##0.00")
                End If
            End If
        Next
    Next
End Sub
Grande abraço.

Atenciosamente
Wagner Morel


Se a informação foi útil, Por gentileza, Amigo, vote positivamente no meu KARMA, clicando na mãozinha verde do lado esquerdo da tela.

rrbergamini
Membro
Membro
Status:
Mensagens: 101
Registro: 05 Fev 2012
Karma: [29] Acrescente 1 ponto ao karma. Tire 1 ponto do karma

Re: Trazer último valor

Mensagem por rrbergamini » 03 Out 2012


Sávio Mário
Membro
Membro
Status:
Mensagens: 50
Registro: 28 Jan 2012
Localização: Fortaleza-CE
Karma: [26] Acrescente 1 ponto ao karma. Tire 1 ponto do karma

Re: Trazer último valor

Mensagem por Sávio Mário » 03 Out 2012

Segue outra proposta, usando fórmula matricial.

Digite:

A1:A18 ==> NOMES DOS PRODUTOS
B1:B18 ==> VALORES DOS PRODUTOS
D1 ==> VALOR PROCURADO

Na célula E1, digite:

=DESLOC(D1;MÁXIMO(SE(D1=$A$1:$A$18;LIN($A$1:$A$18);0))-LIN(D1);-2) e tecle CTRL+SHIFT+ENTER
Se você gostou, vote positivamente no meu KARMA (mãozinha verde à esquerda).

Lexk
Membro
Membro
Status:
Mensagens: 2
Registro: 17 Set 2012
Karma: [0] Acrescente 1 ponto ao karma. Tire 1 ponto do karma

Re: Trazer último valor

Mensagem por Lexk » 05 Out 2012

Aproveitando este tópico, gostaria de saber como se faz para vincular a caixa de texto do Formulário a um campo de uma tabela?

Tipo:

Tenho uma tabela de materiais, para cada material um código. No formulário tenho as caixas de texto "Código do Material", "Nome do Material" e "Estoque". Gostaria de saber como fazer para quando eu inserir o Código, já seja inserido automaticamente o Nome e o Estoque.

No aguardo,

grato.

Avatar de usuário
Wagner Morel
Guru
Guru
Status:
Mensagens: 1715
Registro: 24 Jan 2011
Localização: FORTALEZA - CE
Karma: [247] Acrescente 1 ponto ao karma. Tire 1 ponto do karma

Re: Trazer último valor

Mensagem por Wagner Morel » 05 Out 2012

Lexk,

Bom Dia!

Supondo que sua coluna de Código doi Material esteja na coluna A, Nome do Materia esteja na coluna B e Estouque na coluna C.
- Primeiro você não deve utilizar no Userform uma caixa de texto para digitar o código pois isso propicia vários tipos de erro que o usuário pode cometer e sua aplicação não trabalharia corretamente. Use um controle ComboBox e, aí, utilize o mesmo código descrito no ítem 1 código que coloquei acima) para preencher seu combo com os códigos dos materiais.
- Se você não tiver códigos repetidos, então não precisa utilizar o código de nº 2. Todavia, deve desabilitar a linha Call Retira_Repetidos existente no código 1.
- Para que quando o usuário der um clique no ítem escolhido no combo, você carregue nas caixas de texto o Nome do Material e o Estoque correspondente aquele código escolhido, você pode utilizar o código abaixo:
Código: Selecionar tudo
Private Sub ComboBox1_Click()
    Dim i, UltimaLinha As Long
    UltimaLinha = Sheets("Plan1").Cells(Cells.Rows.Count, 1).End(xlUp).Row
    If UltimaLinha < 2 Then UltimaLinha = 2
    For i = 2 To UltimaLinha
        If Range("A" & i).Value = ComboBox1.Value Then
            TextBox1.Text = Range("B" & i).Value
            TextBox2.Text = Range("C" & i).Value
        End If
    Next
End Sub
Grande abraço.

Atenciosamente
Wagner Morel


Se a informação foi útil, Por gentileza, Amigo, vote positivamente no meu KARMA, clicando na mãozinha verde do lado esquerdo da tela.

Avatar de usuário
fbrisso
Membro
Membro
Status:
Mensagens: 107
Registro: 08 Fev 2011
Karma: [2] Acrescente 1 ponto ao karma. Tire 1 ponto do karma

Re: Trazer último valor

Mensagem por fbrisso » 07 Out 2012

Galera, e se fosse pra somar todos os itens dessa lista?
Exatamente igual ao que o colega brenocamp88 pediu, porém, ao invés de trazer o último valor, o código somaria todas as instâncias desse mesmo valor!

Obrigado.
Fábio Risso
fabiorisso.tumblr.com

Sávio Mário
Membro
Membro
Status:
Mensagens: 50
Registro: 28 Jan 2012
Localização: Fortaleza-CE
Karma: [26] Acrescente 1 ponto ao karma. Tire 1 ponto do karma

Re: Trazer último valor

Mensagem por Sávio Mário » 07 Out 2012

Basta você inserir a fórmula a seguir:

=SOMASE(Intervalo;Valor)
Se você gostou, vote positivamente no meu KARMA (mãozinha verde à esquerda).

Próximo

Retornar para Excel

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes

PUBLICIDADE