Estou desenvolvendo um sistema VBA Excel 2007, de Vendas, onde eu tenho 8 planilhas que servem de base de dados, alguns UserForms de cadastro e um UserForm de Vendas.
A questão é a seguinte: Estou tendo problemas em auto numerar via macro, duas colunas, a A e a B da seguinte forma...
Coluna A = ID (ID sequencial para identificação de cada produto vendido)
Coluna B = COD VENDA (Numeração dada a cada conjunto de vendas independente da quantidade de produtos vendidos, listados no ListBox lstCompras)
Segue imagem.
O que eu preciso fazer, é auto numerar estas duas colunas com numerações diferentes, sendo uma sequencial e a outra não, começando com um código 100, por exemplo. Mas não é o que está acontecendo, como visto na imagem acima. Onde é ID, deve constar numeração 1, 2, 3... Em COD VENDA, 100, 100, 100... e numa próxima venda, 101, 101, 101... Entenderam!?!?!?!
O código que estou usando na macro responsável, é este:
Sub CodVenda()
If IsNumeric(ActiveCell.Offset(-1, 1)) Then
ActiveCell = ActiveCell.Offset(-1, 1) + 1
Else
ActiveCell = 100
End If
End Sub
Public Sub NumAuto()
If IsNumeric(ActiveCell.Offset(-1, 0)) Then
ActiveCell = ActiveCell.Offset(-1, 0) + 1
Else
ActiveCell = 1
End If
End Sub
Sub KitPagto()
Dim cDesc As Currency
Dim ListaItems As Integer
If txtDinheiro.Text = "" And txtDesconto.Text = "" And txtProduto.Text = "" And txtPreco.Text = "" Then
MsgBox "Não é possível Gravar informações vazias. Por favor, preencha o form!", vbCritical
txtCod.SetFocus
Else
Plan6.Range("A2").Select
ListaItems = lstCompras.ListCount - 1
For i = 0 To ListaItems
NumAuto
CodVenda
If txtDesconto.Text = "" Then
cDesc = "0,00"
Else
cDesc = txtDesconto.Text
End If
'ActiveCell.Offset(i, 0).Value = ActiveCell.Offset(-i, 0).Value + 1
ActiveCell.Offset(i, 1).Value = lblCodVenda.Caption
ActiveCell.Offset(i, 2).Value = Date & " - " & Time
ActiveCell.Offset(i, 3).Value = lstCompras.List(i, 0) 'Código PROBLEMAS NESTE ITEM
ActiveCell.Offset(i, 4).Value = lstCompras.List(i, 1) 'Produto
ActiveCell.Offset(i, 5).Value = CCur(lstCompras.List(i, 3)) 'Valor
ActiveCell.Offset(i, 6).Value = cboClientes.Text 'Cliente
ActiveCell.Offset(i, 7).Value = lstCompras.List(i, 2) 'Quantidade
ActiveCell.Offset(i, 8).Value = CCur(lstCompras.List(i, 4)) 'Sub-Total
ActiveCell.Offset(i, 9).Value = CCur(lblTotal.Caption) 'Total
ActiveCell.Offset(i, 10).Value = CCur(txtDinheiro.Text) 'Valor para pagamento
ActiveCell.Offset(i, 11).Value = CCur(lblTroco.Caption) 'Troco calculado automaticamente
ActiveCell.Offset(i, 12).Value = CCur(cDesc) 'Desconto dado ao cliente
ActiveCell.Offset(i, 13).Value = cboVendedor.Text 'Nome do Vendedor
Next i
i = i + 1
MsgBox "Venda realizada com Sucesso!", vbInformation, "VP BAZAR SHOW"
Limpar
ActiveWorkbook.Save
End If
End Sub
Não consigo chegar a uma finalização.
Esta é a imagem do UserForm.
Serei muito grato a quem, com uma ótica diferente, puder me dizer onde errei e dar uma luz para um caminho melhor.
Pergunta
SilverMind
Olá Caros Amigos(as),
Estou desenvolvendo um sistema VBA Excel 2007, de Vendas, onde eu tenho 8 planilhas que servem de base de dados, alguns UserForms de cadastro e um UserForm de Vendas.
A questão é a seguinte: Estou tendo problemas em auto numerar via macro, duas colunas, a A e a B da seguinte forma...
Coluna A = ID (ID sequencial para identificação de cada produto vendido)
Coluna B = COD VENDA (Numeração dada a cada conjunto de vendas independente da quantidade de produtos vendidos, listados no ListBox lstCompras)
Segue imagem.
O que eu preciso fazer, é auto numerar estas duas colunas com numerações diferentes, sendo uma sequencial e a outra não, começando com um código 100, por exemplo. Mas não é o que está acontecendo, como visto na imagem acima. Onde é ID, deve constar numeração 1, 2, 3... Em COD VENDA, 100, 100, 100... e numa próxima venda, 101, 101, 101... Entenderam!?!?!?!
O código que estou usando na macro responsável, é este:
Não consigo chegar a uma finalização.
Esta é a imagem do UserForm.
Serei muito grato a quem, com uma ótica diferente, puder me dizer onde errei e dar uma luz para um caminho melhor.
[ ],s
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.