O Me.txtNome (no formulário é responsável pelo campo de texto) recebe um nome, mas na planilha insere dois.
Private Sub btnok_Click()
'verifica se tudo foi preenchido
If Me.txtnome = "" Then
MsgBox "Insira o nome computador", vbExclamation, "Erro!"
Exit Sub
Me.txtnome.SetFocus
'ElseIf Me.txtcargo = "" Then
'MsgBox "Insira cargo / setor!", vbExclamation, "Erro!"
'Exit Sub
'Me.txtcargo.SetFocus
'ElseIf Len(Me.txtdata) < Me.txtdata.MaxLength Then
'MsgBox "Insira data no formato dd/mm/aaaa!", _
' vbExclamation, "Erro!"
'Exit Sub
'Me.txtdata.SetFocus
End If
'solicita autorização
If MsgBox("Deseja inserir estes dados?", vbOKCancel + vbQuestion, _
"Atenção!") = vbCancel Then Exit Sub
'desabilita atualização de tela
Application.ScreenUpdating = False
'LANÇA NA ABA GERAL
'desprotege a planilha
ActiveSheet.Unprotect
'exibe todas as linhas
ActiveSheet.Rows.Hidden = False
'define última linha da lista
Dim lin As Integer
lin = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
'lança o nome na última linha
Cells(lin, 1) = Me.txtnome
Cells(lin, 1).HorizontalAlignment = xlLeft
'Cells(lin, 2) = Me.txtcargo
'Cells(lin, 2).HorizontalAlignment = xlLeft
'Cells(lin, 3) = Format(Me.txtdata, "mm/dd/yyyy")
'Cells(lin, 3).HorizontalAlignment = xlCenter
'desenha bordas na linha preenchida
Range(Cells(lin, 1), _
Cells(lin, 1)).Borders.LineStyle = xlContinuous
'organiza em ordem crescente (pela coluna A)
With ActiveSheet
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range("A3"), _
SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
End With
With ActiveSheet.Sort
.SetRange Range("A3:C" & lin)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'oculta linhas vazias
Range(Cells(lin + 1, 1), Cells(Rows.Count, 1)).EntireRow.Hidden = True
Range("A1").Select
'protege a planilha
ActiveSheet.Protect
'LANÇA NA ABA ESPECÍFICA
'Sheets(Format(Month(Me.txtdata), "00")).Select
'desprotege a planilha
ActiveSheet.Unprotect
'exibe todas as linhas
ActiveSheet.Rows.Hidden = False
'define última linha da lista
Dim lin2 As Integer
lin2 = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
'lança o nome na última linha
Cells(lin2, 1) = Me.txtnome
Cells(lin2, 1).HorizontalAlignment = xlLeft
'Cells(lin2, 2) = Me.txtcargo
'Cells(lin2, 2).HorizontalAlignment = xlLeft
'Cells(lin2, 3) = Format(Day(Me.txtdata), "00")
'Cells(lin2, 3).HorizontalAlignment = xlCenter
'desenha bordas na linha preenchida
Range(Cells(lin2, 1), _
Cells(lin2, 3)).Borders.LineStyle = xlContinuous
'organiza em ordem crescente (pela coluna A)
With ActiveSheet
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range("C3"), _
SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
End With
With ActiveSheet.Sort
.SetRange Range("A3:C" & lin2)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'oculta linhas vazias
Range(Cells(lin2 + 1, 1), Cells(Rows.Count, 1)).EntireRow.Hidden = True
Range("A1").Select
'protege a planilha
ActiveSheet.Protect
'VOLTA NA ABA GERAL
Sheets("geral").Select
'habilita atualização de tela
Application.ScreenUpdating = True
'limpa o formulário
Me.txtnome = ""
'Me.txtcargo = ""
'Me.txtdata = ""
Me.txtnome.SetFocus
End Sub
Private Sub btnlimpar_Click()
Me.txtnome = ""
'Me.txtcargo = ""
'Me.txtdata = ""
Me.txtnome.SetFocus
End Sub
Private Sub btnsair_Click()
Unload Me
End Sub
Private Sub Label1_Click()
End Sub
Private Sub txtnome_Change()
Me.txtnome.MaxLength = 50
Me.txtnome = UCase(Me.txtnome)
End Sub
Private Sub txtcargo_Change()
'Me.txtcargo.MaxLength = 30
'Me.txtcargo = UCase(Me.txtcargo)
End Sub
Private Sub txtdata_Change()
'txtdata.MaxLength = 10
Select Case KeyAscii
Case 8, 48 To 57 ' backspace e numéricos
Case Else ' o resto é travado
KeyAscii = 0
End Select
If KeyAscii = vbKeyReturn Or KeyAscii = vbKeyBack Then Exit Sub
If KeyAscii < vbKey0 Or KeyAscii > vbKey9 Then
KeyAscii = 0
End If
'If Len(txtdata) = 2 Then
' txtdata.Text = txtdata.Text & "/"
' SendKeys "{End}", False
'ElseIf Len(txtdata) = 5 Then
' txtdata.Text = txtdata.Text & "/"
' SendKeys "{End}", False
'End If
End Sub
Postado : 04/01/2016 7:25 am