Mover dados de um l...
 
Notifications
Clear all

Mover dados de um listbox para outro

5 Posts
1 Usuários
0 Reactions
1,311 Visualizações
(@vasconpqdt)
Posts: 8
Active Member
Topic starter
 

Boa tarde!
Vou explicar um pouco do que a planilha faz:
estou desenvolvendo essa planilha para facilitar meu trabalho no controle de recebimento de materiais em um almoxarifado
ele se baseia em informações sobre a aquisicao do produto ou serviço (nota de empenho) e no recebimento dele (nota fiscal)
o protocolo ja esta com a parte de cadastro (nota de empenho e nota fiscal) em perfeito funcionamento
mas a maior intenção dessa planilha é me mostrar o caminho de tudo que passa pelo almoxarifado, para isso, baseado no banco de dados do cadastro
tenho dois relatorios que fazem parte do processo, um relatorio de encaminhamento (onde as notas do material recebido é enviado para cadastro em um outro sistema interno) e um relatorio de envio dessas notas cadastradas para o setor financeiro para serem liquidadas. esses documentos me dão informações precisas para rastrear o q ja cadastrei no sistema e o que ja foi para pagamento
entao vamos ao que interessa...
tem um formulario RELATORIO onde tenho duas listbox
a primeira listbox (listNotaFiscal) carrega todas as notas fiscais recem chegadas
qnd eu seleciono uma nota na primeira listbox e clico no botão " > " (btnAdc) o STATUS dela é atualizado para ENCAMINHADO e na coluna SISCOFIS entra a data desse relatorio de encaminhamento, na planilha de cadastro, e é enviado a segunda listbox (lisRelEncaminhamento)
e qnd eu removo uma nota da listRelEncaminhamento pelo botão " < " (btnRmv) o STATUS da nota volta para - e a data do relatorio é removida.
Esse processo está funcionando com um pequeno problema: as notas que tem mais de 4 digitos nao estao tendo seus STATUS e DT de relatorio atualizadas
outro problema que tenho é não conseguir fazer com que qnd adiciono ou removo todas as notas de uma listbox para outra pelos botões " >> " e " << " (btnAdcTodos e btnRmvTodos) os STATUS e DTs nao se atualizam em cada nota... ocorre só atualização da primeira nota da listbox

Espero que tenha dado para entender minha duvida.

Segue anexa a planilha

 
Postado : 18/11/2017 2:18 pm
(@vasconpqdt)
Posts: 8
Active Member
Topic starter
 

existe alguma forma de eu poder fazer assim...
fazer com q o botao " >> " execute o comando do botao " > " o mesmo numero de vezes que o numero de itens da listbox q serão removidos os itens?
algo como execurar " Call btnAdc_Click " vezes " listNFRecebidas.ListCount "

 
Postado : 21/11/2017 6:22 pm
(@vasconpqdt)
Posts: 8
Active Member
Topic starter
 

estou procurando melhorar o codigo de atualização de status mas somente no botão que os move individualmente por seleção e cheguei a esse codigo
porém estou com um pequeno problema, toda vez q vou passando os itens selecionados um a um, o último item movido nao esta sofrendo alteração de status
o video anexo mostra o fato.

Private Sub btnAdc_Click()
On Error Resume Next
'Adiciona itens na listRelEnvio
Dim i As Double
Dim valor_lista1 As String
Dim valor_lista2 As String
Dim valor_lista3 As String
Dim valor_lista4 As String
Dim valor_lista5 As String
Dim valor_lista6 As String
Dim selecao As Integer
selecao = listNFEncaminhadas.ListIndex
valor_lista1 = listNFEncaminhadas.List(selecao, 0) 'NotaFiscal
valor_lista2 = listNFEncaminhadas.List(selecao, 1) 'ND
valor_lista3 = listNFEncaminhadas.List(selecao, 2) 'Empresa
valor_lista4 = listNFEncaminhadas.List(selecao, 3) 'DtChegada
valor_lista5 = listNFEncaminhadas.List(selecao, 4) 'ValorNF
valor_lista6 = listNFEncaminhadas.List(selecao, 5) 'Status
    Me.listRelEnvio.AddItem , ListIndex
    Me.listRelEnvio.List(i, 0) = CDbl(valor_lista1)
    Me.listRelEnvio.List(i, 1) = valor_lista2
    Me.listRelEnvio.List(i, 2) = valor_lista3
    Me.listRelEnvio.List(i, 3) = CDate(valor_lista4)
    Me.listRelEnvio.List(i, 4) = CDbl(valor_lista5)
    Me.listRelEnvio.List(i, 5) = valor_lista6
'Remove a linha adicionada da listNFEncaminhadas
For i = 0 To listNFEncaminhadas.ListCount
    If listNFEncaminhadas.Selected(i) = True Then
    listNFEncaminhadas.RemoveItem (i)
    End If
Next i
'Atualiza o Status das Notas Fiscais da listRelEnvio no Planilha Cadastro (coluna19, Status)
For i = 0 To listNFEncaminhadas.ListCount
If listNFEncaminhadas.Selected(i) Then
Dim notafiscal As Integer
Dim plan As Worksheet
Dim linha As Integer
Dim j As Double
linha = 2
notafiscal = CDbl(listRelEnvio.List(j, 0))
Set plan = Sheets("Cadastro")
Do Until plan.Cells(linha, 1) = ""
    If plan.Cells(linha, 12) = notafiscal Then
    plan.Cells(linha, 19) = "ENVIADO"
    plan.Cells(linha, 20) = CDate(txtDtEmissaoRelatorio)
    plan.Cells(linha, 21) = "Rel Nr: " & txtNrRelatorio
    End If
 linha = linha + 1
Loop
End If
 
Postado : 23/11/2017 10:22 am
(@vasconpqdt)
Posts: 8
Active Member
Topic starter
 

acabei de resolver esse pequeno problema com esse codigo

Private Sub btnAdc_Click()
On Error Resume Next
'Adiciona itens na listRelEnvio
Dim i As Double
Dim valor_lista1 As String
Dim valor_lista2 As String
Dim valor_lista3 As String
Dim valor_lista4 As String
Dim valor_lista5 As String
Dim valor_lista6 As String
Dim selecao As Integer
If listNFEncaminhadas.Selected(i) = False Then
MsgBox "Selecione uma Nota Fiscal para adicionar ao relatório"
Else
selecao = listNFEncaminhadas.ListIndex
valor_lista1 = listNFEncaminhadas.List(selecao, 0) 'NotaFiscal
valor_lista2 = listNFEncaminhadas.List(selecao, 1) 'ND
valor_lista3 = listNFEncaminhadas.List(selecao, 2) 'Empresa
valor_lista4 = listNFEncaminhadas.List(selecao, 3) 'DtChegada
valor_lista5 = listNFEncaminhadas.List(selecao, 4) 'ValorNF
valor_lista6 = listNFEncaminhadas.List(selecao, 5) 'Status
    Me.listRelEnvio.AddItem , ListIndex
    Me.listRelEnvio.List(i, 0) = CDbl(valor_lista1)
    Me.listRelEnvio.List(i, 1) = valor_lista2
    Me.listRelEnvio.List(i, 2) = valor_lista3
    Me.listRelEnvio.List(i, 3) = CDate(valor_lista4)
    Me.listRelEnvio.List(i, 4) = CDbl(valor_lista5)
    Me.listRelEnvio.List(i, 5) = valor_lista6
'Remove a linha adicionada da listNFEncaminhadas
For i = 0 To listNFEncaminhadas.ListCount
    If listNFEncaminhadas.Selected(i) = True Then
    listNFEncaminhadas.RemoveItem (i)
    End If
Next i
'Atualiza o Status das Notas Fiscais da listRelEnvio no Planilha Cadastro (coluna19, Status)
Dim notafiscal As Integer
Dim plan As Worksheet
Dim linha As Integer
Dim j As Double
linha = 2
notafiscal = CDbl(listRelEnvio.List(j, 0))
Set plan = Sheets("Cadastro")
Do Until plan.Cells(linha, 1) = ""
    If plan.Cells(linha, 12) = notafiscal Then
    plan.Cells(linha, 19) = "ENVIADO"
    plan.Cells(linha, 20) = CDate(txtDtEmissaoRelatorio)
    plan.Cells(linha, 21) = "Rel Nr: " & txtNrRelatorio
    End If
 linha = linha + 1
Loop
End If
End Sub

aproveitando o video q esta anexado... gostaria de tentar solucionar a minha ultima e principal duvida desde topico
queria qua qnd fossem movidos todos os itens de uma só vez houvesse a atualizacao de status de todos
se for possivel, é claro!
att Vasconcelos

 
Postado : 23/11/2017 10:58 am
(@vasconpqdt)
Posts: 8
Active Member
Topic starter
 

Resolvido e o trabalho está concluido!

 
Postado : 02/12/2017 12:21 pm