Notifications
Clear all

Salvar na sequencia

7 Posts
2 Usuários
0 Reactions
911 Visualizações
(@bobjr)
Posts: 4
New Member
Topic starter
 

Olá galera, é meu primeiro tópico aqui, procurei o máximo pela internet se encontrava algo para tirar minha duvida mas nada encontrei, me resta tirar a duvida com voces.
É o seguinte, criei um fomulário de cadastro e pesquisa de veiculos, sendo que, atualmente o meu botão "Salvar" está salvando os dados inserido na próxima linha em branco encontrada. O que eu quero é que ele busque pelo dado inserido na textbox e salve na sequencia. por exemplo: insiro o numero de ordem do veiculo 01-195 e hoje o sistema salva na primeira linha em branco ao final da planilha, eu quero que ele procure a sequencia e insira a linha 01-194 < textbobox > 01-196.
a minha primeira coluna é composta de uma sequencia numerica correspondente a quantidade, o textbox que estou me referindo encontra na segunda coluna (B).
Abaixo vou inserir o codigo do meu botão salvar. Espero ter explicado direito. Valeu pela ajuda!

Private Sub botao_salvar_Click()
'Ativar a primeira planilha
ThisWorkbook.Worksheets("Cadastro").Activate
'Selecionar a célula B3
Range("B3").Select

'Procurar a primeira célula vazia É A AQUI QUE PRECISO MODIFICAR
Do
If Not (IsEmpty(ActiveCell)) Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True

'Carregar os dados digitados nas caixas de texto para a planilha
ActiveCell.Value = n_ordem.Value
ActiveCell.Offset(0, 1).Value = placa.Value
ActiveCell.Offset(0, 2).Value = descriçao.Value
ActiveCell.Offset(0, 3).Value = empenho.Value
ActiveCell.Offset(0, 4).Value = processo.Value
ActiveCell.Offset(0, 5).Value = origem.Value
ActiveCell.Offset(0, 6).Value = chassis.Value
ActiveCell.Offset(0, 7).Value = secretaria.Value
ActiveCell.Offset(0, 8).Value = setor.Value
ActiveCell.Offset(0, 9).Value = patrimonio.Value
ActiveCell.Offset(0, 10).Value = situaçao.Value

'Limpar as caixas de texto
n_ordem.Value = Empty
placa.Value = Empty
descriçao.Value = Empty
empenho.Value = Empty
processo.Value = Empty
origem.Value = Empty
chassis.Value = Empty
secretaria.Value = Empty
setor.Value = Empty
patrimonio.Value = Empty
situaçao.Value = Empty

'Colocar o foco na primeira caixa de texto
n_ordem.SetFocus

MsgBox "O registro foi salvo com sucesso!"
End Sub

 
Postado : 17/07/2014 8:45 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Consegue adaptar para essa forma

Private Sub Salvar_Click()
   'Essa linha salva na secuencia
    totalregistro = Worksheets("base").UsedRange.Rows.Count + 1
    With Worksheets("base")
    .Cells(totalregistro, 1) = laboratorio1
    .Cells(totalregistro, 2) = nfdevolução1
    .Cells(totalregistro, 3) = nfo1
    .Cells(totalregistro, 4) = vol1
    .Cells(totalregistro, 5) = motivo1
    .Cells(totalregistro, 6) = uf1
    .Cells(totalregistro, 7) = totaldanota1
    .Cells(totalregistro, 8) = datadaexpedição
    .Cells(totalregistro, 9) = motorista
    .Cells(totalregistro, 10) = rg
    .Cells(totalregistro, 11) = placadoveiculo
    .Cells(totalregistro, 12) = Transportadora
    .Cells(totalregistro, 13) = registro
    
    End With
    MsgBox "Gravado com Sucesso"
    Call AlteraFormato
End Sub

Att

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

 
Postado : 17/07/2014 8:50 am
(@bobjr)
Posts: 4
New Member
Topic starter
 

Ainda não seria bem isso... Deixa ver se consigo explicar melhor.
Eu tenho um textbox (n_ordem), nele eu insiro o numero de ordem dos veículos, e é a partir dele que eu preciso organizar a minha tabela. Eu tenho veículos de 01-001 até 05-030, vamos supor que eu precise salvar um novo registro com um numero de ordem 01-133, ele não pode ir para o final da tabela, ele precisa ser salvo entre os números 01-132 e o 01-134, é essa busca que eu preciso que o meu código faça para localizar onde salvar o novo registro, neste caso tendo até que inserir nova linha na tabela.
alexandrevba, dá forma que voce me explicou o sistema salva em uma ordem de textbox - colunas, nesse ponto minha tabela está salvando certinho, só que minha tabela está salvando o novo registro no final, na primeira linha vazia após o ultimo registro. Valeu pela Ajuda!

 
Postado : 18/07/2014 7:35 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Tem como postar seu arquivo modelo?

Att

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

 
Postado : 18/07/2014 7:42 am
(@bobjr)
Posts: 4
New Member
Topic starter
 

Esse é o arquivo, desculpe a demora e mais uma vez, valeu pela ajuda!

 
Postado : 18/07/2014 11:58 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente uma possibilidade
Altere a rotina de Salvar conforme abaixo:

Private Sub botao_salvar_Click()
'Ativar a primeira planilha
ThisWorkbook.Worksheets("Cadastro").Activate
'Selecionar a célula B3
Range("B3").Select
'Procura o registro existente mais proximo do txt
nlinha = Application.Match(n_ordem.Text, Range("B:B"), 1) + 1
'Seleciona e inclui linha
Rows(nlinha).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
'Posiciona a celula para inclusão de dados
Cells(nlinha, 2).Select

'Procurar a primeira célula vazia
Do
  If Not (IsEmpty(ActiveCell)) Then
      ActiveCell.Offset(1, 0).Select
  End If
Loop Until IsEmpty(ActiveCell) = True

'Carregar os dados digitados nas caixas de texto para a planilha
ActiveCell.Value = n_ordem.Value
ActiveCell.Offset(0, 1).Value = placa.Value
ActiveCell.Offset(0, 2).Value = descriçao.Value
ActiveCell.Offset(0, 3).Value = empenho.Value
ActiveCell.Offset(0, 4).Value = processo.Value
ActiveCell.Offset(0, 5).Value = origem.Value
ActiveCell.Offset(0, 6).Value = chassis.Value
ActiveCell.Offset(0, 7).Value = secretaria.Value
ActiveCell.Offset(0, 8).Value = setor.Value
ActiveCell.Offset(0, 9).Value = patrimonio.Value
ActiveCell.Offset(0, 10).Value = situaçao.Value


'Limpar as caixas de texto
n_ordem.Value = Empty
placa.Value = Empty
descriçao.Value = Empty
empenho.Value = Empty
processo.Value = Empty
origem.Value = Empty
chassis.Value = Empty
secretaria.Value = Empty
setor.Value = Empty
patrimonio.Value = Empty
situaçao.Value = Empty

'Colocar o foco na primeira caixa de texto
n_ordem.SetFocus

 MsgBox "O registro foi salvo com sucesso!"
End Sub

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

 
Postado : 18/07/2014 12:42 pm
(@bobjr)
Posts: 4
New Member
Topic starter
 

Valeu Reinaldo! Era isso mesmo que eu estava precisando, perfeito! :D :!:

 
Postado : 18/07/2014 1:16 pm