Olá,
estou tentando fazer um userForm onde haverá três campos (um comboBox e dois textBox), e um dos botões será para catalogar os dados inputados, mas antes disso quero que a macro confira se esse algum desses valores já não foi catalogado.
Este é o código da botão catalogar
Private Sub cbCAT_Click()
'CONFERE SE NÃO HÁ CAMPOS VAZIOS NO FORMULÁRIO
If Trim(Me.comboRange) = "" Then
MsgBox ("Favor inserir Range do aparelho.")
ElseIf Trim(Me.tbNS) = "" Then
MsgBox ("Favor inserir Nº de Série do aparelho.")
ElseIf Trim(Me.tbNP) = "" Then
MsgBox ("Favor inserir Nº de Patrimônio do aparelho. Caso não exista, favor providenciar tag e colar.")
Else
'DESCE ATÉ A PRIMEIRA CÉLULA VAZIA DA PRIMEIRA COLUNA
Worksheets("Cello").Range("A1").Select
Dim i As Integer
i = 0
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
'PROCURA POR DUPLICATAS E ENCERRA SUB EM CASO POSITIVO
If ActiveCell.Offset(0, 4).Value = Me.tbNS Then
MsgBox ("Nº de Série já catalogado na linha " & i + 1 & ".")
GoTo Err
ElseIf ActiveCell.Offset(0, 5).Value = Me.tbNP Then
MsgBox ("Nº de Patriônio já catalogado na linha " & i + 1 & ".")
GoTo Err
End If
i = i + 1
Loop
'PREENCHE LINHA VAZIA COM DADOS DE INPUT
ActiveCell.Value = i
ActiveCell.Offset(0, 1).Value = "DATALOGGER"
ActiveCell.Offset(0, 2).Value = "CELLO"
ActiveCell.Offset(0, 3).Value = Me.comboRange.Value
ActiveCell.Offset(0, 4).Value = Me.tbNS.Value
ActiveCell.Offset(0, 5).Value = Me.tbNP.Value
'FORMATA CÉLULAS PREENCHIDAS
Worksheets("Cello").Range("A2:F2").Copy
Worksheets("Cello").Range(ActiveCell, ActiveCell.Offset(0, 5)).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
MsgBox ("o item foi catalogado na linha " & i)
End If
Err:
End Sub
Ela até se comporta conforme o esperado, mas acaba por ser inconstante... Para testar eu deliberadamente preencho com duplicatas, e peço para catalogar. Algumas vezes ela me indica a duplicata como quero, mas em outras ocasiões ela cataloga mesmo sendo duplicata. Ainda não reparei qual é o fator que causa a variação, mas talvez algum programador mais experiente (coisa que estou longe de ser, como deve dar pra ver pelo código) consiga reparar lendo o código, ou já tenha passado por alguma experiência parecida.
Agradeço desde já!
PS.: Antes ela simplesmente não reconhecia nada, mas melhorou quando transformei todas as células da planilha em formato texto... talvez essa informação seja útil, sei lá...
Postado : 16/07/2015 8:39 am