Notifications
Clear all

Comando universal

6 Posts
2 Usuários
0 Reactions
1,728 Visualizações
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Ola

Preciso clicar num produto e jogar o mesmo dentro de uma ListBox. Isso ja acontece com o codigo abaixo, porem para cada imagem de produto terei que ter tal codigo dentro da imagem para ao ser clicado executar .

Este comando abaixo esta dentro de uma imagem de um produto. Este produto tem um Caption que ira aparecer em todas as imagens e cada imagem um Caption diferente, pois é o codigo do produto. Neste caso o Caption é 1. Entao toda vez que clico na imagem ele chama o produto Caption. A forma que encontrei e copiar tal comando em todas as imagens e alterando apenas :

codigo = G1.Caption , e este abaixo

Set Lista = ListView1.ListItems.Add(Text:=Me.G1) 'Label39.Caption)

Se tenho outro produto , G2.Caption e G3.Caption ... , pois sao varios produtos. Entao meu codigo ficaria muito grande. Eu gostaria de saber se tenho como manter o mesmo comando para todas as imagens e alterando apenas as 2 linhas acima G1 para G2, G3 .....

Penso que seria o caso de criar um Caption universal e toda vez que clicar na imagem jogar nesta caption Universal o Caption da Imagem, apos o o final do comando, limpar o captio Universal deixando-o livre para ser inserido apos o proximo click de outra imagem.

Entao pergunto, como adaptar isso ao comando abaixo e mante-lo universal a todas as imagens ?

Andre


Private Sub Image207_Click()

QNT_Geral = 1
QNT_Custo = 1

Dim intervalo As Range
Dim codigo As Integer
codigo = G1.Caption
Sheets("Estoque").Activate

Set intervalo = Plan19.Range("B6:W605")
            
  Pesquisa = Application.WorksheetFunction.VLookup(codigo, intervalo, 22, False) 'Preco
  pesquisa1 = Application.WorksheetFunction.VLookup(codigo, intervalo, 14, False) 'Oferta
  Pesquisa2 = Application.WorksheetFunction.VLookup(codigo, intervalo, 7, False)  'Sabor
  
  Pesquisa3 = Application.WorksheetFunction.VLookup(codigo, intervalo, 2, False) 'Apresentacao
If Pesquisa3 = "P" Then  'P = Pote C = Caps
  Pesquisa4 = Application.WorksheetFunction.VLookup(codigo, intervalo, 5, False) 'Peso
Else
  Pesquisa4 = Application.WorksheetFunction.VLookup(codigo, intervalo, 6, False)  'Caps
End If
  Pesquisa5 = Application.WorksheetFunction.VLookup(codigo, intervalo, 10, False) 'Preco
  
    Set Lista = ListView1.ListItems.Add(Text:=Me.G1)  'Label39.Caption)
    Lista.ListSubItems.Add Text:=Label293.Caption 'Produto
    Lista.ListSubItems.Add Text:=pesquisa1 'Oferta
    Lista.ListSubItems.Add Text:=QNT_Geral
    Lista.ListSubItems.Add Text:=Pesquisa2 'Sabor
    Lista.ListSubItems.Add Text:=Pesquisa4 'Apresentacao
    Lista.ListSubItems.Add Text:=Format(Pesquisa, "R$ #,##0.00") '  Pesquisa 'Preco de Venda
    Lista.ListSubItems.Add Text:=Format(Pesquisa * QNT_Geral, "R$ #,##0.00") 'Total
    Lista.ListSubItems.Add Text:=Format(Pesquisa5, "R$ #,##0.00") '  Pesquisa 'Preco unitario de custo
    Lista.ListSubItems.Add Text:=Format(Pesquisa5 * QNT_Custo, "R$ #,##0.00") 'custo Total
    
'---------------------------------------------------------------------
'Somar dentro da ListView1
Dim Soma As Double

For i = 1 To ListView1.ListItems.Count
Soma = Soma + ListView1.ListItems.Item(i).SubItems(7) 'coluna 7
Next i

Total.Value = Soma
'---------------------------------------------------------------------
QNT_Geral = ""

'---------------------------------------------------------------------
Dim Soma2 As Double

For k = 1 To ListView1.ListItems.Count
Soma2 = Soma2 + ListView1.ListItems.Item(k).SubItems(3) 'coluna 1
Next k

LblTotal.Caption = "Total de Itens = " & Soma2
'---------------------------------------------------------------------

Dim Soma3 As Double

For j = 1 To ListView1.ListItems.Count
Soma3 = Soma3 + ListView1.ListItems.Item(j).SubItems(9)
Next j

Label_8.Caption = Format(Soma3, "R$ #,##0.00")
'---------------------------------------------------------------------

Contagem.Value = ListView1.ListItems.Count

'---------------------------------------------------------------------

Sheets("Fundo").Activate

End Sub
 
Postado : 07/01/2017 7:32 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

São imagens em planilha ou em controle image dentro de um form

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 08/01/2017 5:33 am
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

No formulario insiro um controle de imagem, e agrego uma imagem de whey, outra de bcaa ,moutra de outrro produto e assim vai. acima da imagem no canto superior esquerdo coloquei uma caption com o id do produto. Assim quando clico no botao imagem ele aciona esta macro acima e faz a pesquisa do produto da imagem na planilha estoque , se baseando justamente pelo Id do produto que esta acima da imagem.

Ou seja tudo rola em cima de formulario , porem os dados do produto estao numa planilha a parte chamada estoque.
Na verdade fiz multipaginas no formulario. Dai clico na imagem de uma fabricante e ao clicar chamo os botoes de imagens em outro formulario da multipagina. Dai escolho o produto, clico nele e a macro roda e pega o id da caption acima da imagem. Feito isto joga as informacoes do produto dentro de uma listView, que e o carrinho de conoras.

Grato

 
Postado : 08/01/2017 9:39 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Talvez resquicisos do final de ano, mas fiquei confuso, pode dispor um modelo/exemplos?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 09/01/2017 7:23 am
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

mando sim a noite bz, tu vai se amarrar nas minhas ideias e na planilha modelo.

 
Postado : 09/01/2017 10:09 am
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

consegui resolver, mas tenho outra duvida

Tenho 5 telas de vendas identicas e todas chamam uma planilha unica chamada XPagamento. Dai ao sair da tela de venda e antes de entrar na tela de XPagamento, eu faco com que a TextBox de nome TextBox1, em XPagamento, armazene o nome do caixa atuante, exemplo caixa1.

Ao executar o botao Processar em XPagamento me deparo com um erro ( O Objeto é Obrigatorio ), para o comando abaixo.

Dim Venda
Venda = TextBox1.Value
Venda.PAGAMENTO.Caption = "PROCESSAR A VENDA"

Mas se eu por :

Caixa1.PAGAMENTO.Caption = "PROCESSAR A VENDA"

Entao nao tenho o erro.

Minha Duvida é Venda = TextBox1 ? sendo que em TextBox 1 aparece Caixa1 ???

Grato

 
Postado : 09/01/2017 9:16 pm