Reinaldo
Reinaldo, aparentemente deu certo. No entanto o 'cDate' não aceita 'txt' vazios.
Private Sub cmdadc_Click()
Dim rang As Range
Set rang = Range("B1:B1000")
Dim rangCel As Range
Dim regExiste As Boolean
regExiste = False
For Each rangCel In rang.Cells
If rangCel.Value = txtserial.Text Then
regExiste = True
End If
Next
If regExiste = True Then
Range("B3").Select
Do While ActiveCell <> ""
If txtserial.Value = ActiveCell Then
ActiveCell.Offset(0, 1).Value = cbmod
ActiveCell.Offset(0, 2).Value = cbcor
ActiveCell.Offset(0, 4).Value = CDate(txtdata)
ActiveCell.Offset(0, 6).Value = CDate(txtdata2)
ActiveCell.Offset(0, 8).Value = CDate(txtdata3)
ActiveCell.Offset(0, 10).Value = CDate(txtdata4)
ActiveCell.Offset(0, 12).Value = CDate(txtdata5)
ActiveCell.Offset(0, 3).Value = cbdef1
ActiveCell.Offset(0, 5).Value = cbdef2
ActiveCell.Offset(0, 7).Value = cbdef3
ActiveCell.Offset(0, 9).Value = cbdef4
ActiveCell.Offset(0, 11).Value = cbdef5
ActiveCell.Offset(0, 9).Value = txtobs
End If
ActiveCell.Offset(1, 0).Activate
Loop
MsgBox "ALTERADO COM SUCESSO!", vbInformation
Exit Sub
Else
If txtserial = "" Or cbmod = "" Then
MsgBox "PREENCHER TODOS OS CAMPOS com (*)", vbExclamation, "CAMPO VAZIO"
txtserial.SetFocus
Else:
'Ativar a primeira planilha
ThisWorkbook.Worksheets("DEFEITOS").Activate
Dim ultimalinha As Long
ultimalinha = Cells(Rows.Count, 2).End(xlUp).Row + 1
Worksheets(1).Range("B" & ultimalinha).Value = UserForm1.txtserial
Worksheets(1).Range("C" & ultimalinha).Value = UserForm1.cbmod
Worksheets(1).Range("D" & ultimalinha).Value = UserForm1.cbcor
Worksheets(1).Range("F" & ultimalinha).Value = CDate(UserForm1.txtdata)
Worksheets(1).Range("H" & ultimalinha).Value = CDate(UserForm1.txtdata2)
Worksheets(1).Range("J" & ultimalinha).Value = CDate(UserForm1.txtdata3)
Worksheets(1).Range("L" & ultimalinha).Value = CDate(UserForm1.txtdata4)
Worksheets(1).Range("N" & ultimalinha).Value = CDate(UserForm1.txtdata5)
Worksheets(1).Range("E" & ultimalinha).Value = UserForm1.cbdef1
Worksheets(1).Range("G" & ultimalinha).Value = UserForm1.cbdef2
Worksheets(1).Range("I" & ultimalinha).Value = UserForm1.cbdef3
Worksheets(1).Range("K" & ultimalinha).Value = UserForm1.cbdef4
Worksheets(1).Range("M" & ultimalinha).Value = UserForm1.cbdef5
Worksheets(1).Range("O" & ultimalinha).Value = UserForm1.txtobs
MsgBox "CADASTRADO COM SUCESSO!", vbInformation, "Cadastrado"
End If
End If
End Sub
Nesse código existem momentos em que não preencho todas as datas (txtdata2, 3, 4, 5), precisava contornar esse erro caso precise deixar uma célula vazia. Como faço isso?
Desde já agradeço a colaboração!
Valter Junior
Postado : 24/09/2018 12:48 pm