Olá pessoal, estou usando o código abaixo, para salvar dados do meu formulário, pois bem quando inserido os dados do serviço nas caixas (cmbSetor, cmbMIS, txtEquipamento, cmbTpSer, txtDescSer e cmbOficina) e o mesmo não necessita inserir dados lstvOrcamentos.ListItems, o resultado e a mensagem posta no final do código MsgBox "Não há dados para gravar.", vbExclamation, "Atenção". Preciso que a macro salve mesmo não tendo nada de dados lstvOrcamentos.
Private Sub btnSalvar_Click()
If Me.lstvOrcamentos.ListItems.Count > 0 Then
For i = 1 To Me.lstvOrcamentos.ListItems.Count
With ws.Range("a500000").End(xlUp)
.Offset(1, 0) = lblNro.Caption
.Offset(1, 1) = cmbSetor
.Offset(1, 2) = cmbMIS
.Offset(1, 3) = txtEquipamento
.Offset(1, 4) = cmbTpSer
.Offset(1, 5) = txtIDServ
.Offset(1, 6) = txtIDETC
.Offset(1, 7) = txtDescSer
.Offset(1, 8) = cmbOficina
.Offset(1, 9) = lstv.ListItems(i).Text 'tipo de requisição
.Offset(1, 10) = lstv.ListItems(i).ListSubItems(1) 'id do item
.Offset(1, 11) = lstv.ListItems(i).ListSubItems(2) 'codigo
.Offset(1, 12) = lstv.ListItems(i).ListSubItems(3) 'descrição do item
.Offset(1, 13) = lstv.ListItems(i).ListSubItems(4) 'quantidade
.Offset(1, 14) = lstv.ListItems(i).ListSubItems(5) 'unidade
.Offset(1, 15) = lstv.ListItems(i).ListSubItems(6) 'custo unitario
.Offset(1, 16) = lstv.ListItems(i).ListSubItems(7) 'custo total
.Offset(1, 17) = lstv.ListItems(i).ListSubItems(8) 'prazo de entrega
End With
Next i
'Atualiza o banco de dados para o frmPesquisa
With Plan5.Range("a65000").End(xlUp)
.Offset(1, 0) = cmbSetor
.Offset(1, 1) = lblNro.Caption
.Offset(1, 2) = txtIDServ
.Offset(1, 3) = txtIDETC
.Offset(1, 4) = txtDescSer
.Offset(1, 5) = txtTotal
End With
'Limpa Controles
lstv.ListItems.Clear
cmbSetor = Empty
txtEquipamento = Empty
cmbTpSer = Empty
txtIDServ = Empty
txtIDETC = Empty
txtDescSer = Empty
cmbOficina = Empty
txtTotal = Empty
Call LimparCaixasDeTexto
MsgBox "Orçamento gravado com sucesso.", vbInformation, "Orçamentos"
'Desabilita botoes de alteraçao
btnEditar.Enabled = False
btnApagar.Enabled = False
Me.cmbSetor.BackColor = &HC0C0C0
Me.cmbSetor.Locked = True
Me.cmbMIS.BackColor = &HC0C0C0
Me.cmbMIS.Locked = True
Me.txtEquipamento.BackColor = &HC0C0C0
Me.txtEquipamento.Locked = True
Me.cmbTpSer.BackColor = &HC0C0C0
Me.cmbTpSer.Locked = True
Me.txtIDServ.BackColor = &HC0C0C0
Me.txtIDServ.Locked = True
Me.txtIDETC.BackColor = &HC0C0C0
Me.txtIDETC.Locked = True
Me.txtDescSer.BackColor = &HC0C0C0
Me.txtDescSer.Locked = True
Me.cmbOficina.BackColor = &HC0C0C0
Me.cmbOficina.Locked = True
Me.cmbTpReq.BackColor = &HC0C0C0
Me.cmbTpReq.Locked = True
Me.txtIDItem.BackColor = &HC0C0C0
Me.txtIDItem.Locked = True
Me.txtCodigo.BackColor = &HC0C0C0
Me.txtCodigo.Locked = True
Me.txtDescReq.BackColor = &HC0C0C0
Me.txtDescReq.Locked = True
Me.txtQuantidade.BackColor = &HC0C0C0
Me.txtQuantidade.Locked = True
Me.txtUn.BackColor = &HC0C0C0
Me.txtUn.Locked = True
Me.txtCustoUnitario.BackColor = &HC0C0C0
Me.txtCustoUnitario.Locked = True
Me.txtCustoTotal.BackColor = &HC0C0C0
Me.txtCustoTotal.Locked = True
Me.cmbPrEnt.BackColor = &HC0C0C0
Me.cmbPrEnt.Locked = True
Else
MsgBox "Não há dados para gravar.", vbExclamation, "Atenção"
End If
End Sub
silvajmp
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 24/06/2014 1:40 pm