Senhores,
Mais uma vez quero aqui agradecer pelo esforço dos integrantes de fórum em atender aos que não tem o pleno conhecimento em VBA, em especial a correção da formula acima citada, que foi de grande ajuda pra mim. Mas, infelizmente ao alterar a mascara do textbox "caixa_período" para o formato data causou um problema na minha planilha. Com certeza vai ser café pequeno pra vocês. É o seguinte, eu tenho duas consultas, uma que detecta a duplicidade na planilha "prestacoes" logo ao digitar a diária e tenho outra consulta quando transfiro essas diárias pra planilha BDDADOS, pois bem, essas consultas não estão funcionando mais. Se possível gostaria que vocês dessem uma olhada pra ver o que fazer.
Obs1.: A planilha é mesma a disposição acima;
Obs2.: Vou dispor a macro abaixo e vou marcar com uma linha pontilhada separando as duas formulas pra ajudar e agilizar.
Private Sub botao_enviar_Click()
Application.ScreenUpdating = False
Dim ul As Long
ul = [Plan4].Range("A" & Rows.Count).End(xlUp).Row
[Plan4].Activate
For i = 2 To ul
If [Plan4].Range("A" & i).Value = InserirDados.ComboBox1.Value Then
If [Plan4].Range("D" & i).Value = InserirDados.caixa_periodo.Value Then
MsgBox "ESSE FUNCIONÁRIO JÁ TEM DIÁRIA NESTA DATA, POR FAVOR VERIFIQUE.", vbExclamation, "Lançamento em Duplicidade"
ComboBox1.SetFocus
[Plan1].Activate
Exit Sub
Else
ActiveCell.Offset(1, 0).Select
End If
End If
Next i
Application.ScreenUpdating = True
'Duplicidade na planilha "PRESTACOES"
Application.ScreenUpdating = False
Dim ult As Long
ult = [Plan1].Range("B" & Rows.Count).End(xlUp).Row
[Plan1].Activate
For y = 8 To ult
If [Plan1].Range("B" & y).Value = InserirDados.ComboBox1.Value Then
If [Plan1].Range("I" & y).Value = InserirDados.caixa_periodo.Value Then
MsgBox "NOME DE FUNCIONÁRIO DIGITADO DUAS VEZES NESTE RELATÓRIO COM MESMA DATA, FAVOR VERIFICAR.", vbExclamation, "Lançamento em Duplicidade"
ComboBox1.SetFocus
[Plan1].Activate
Exit Sub
Else
ActiveCell.Offset(1, 0).Select
End If
End If
Next y
Application.ScreenUpdating = True
.........................................................................................................................................
'Cria a variavel linhavazia
Dim Irow As Long
'Confere se o campo nome foi preenchido
If ComboBox1.Value = "" Then
MsgBox ("Campo Nome é obrigatório")
ComboBox1.SetFocus
Exit Sub
Else
End If
'seleciona a aba "dados"
Sheets("prestacoes").Select
With Sheets("prestacoes")
'conta quantas informações foram inseridas na coluna B da aba prestacoes
Irow = .Cells(.Rows.Count, "B").End(xlUp).Row + 1
'Insere informações da aba prestacoes
Cells(Irow, 2).Value = ComboBox1.Value
Cells(Irow, 8).Value = caixa_prestacao.Value
Cells(Irow, 11).Value = Format(caixa_periodo.Value, "mm/dd/yyyy")
Cells(3, 4).Value = Combo_destinatario.Value
Cells(3, 7).Value = Combo_remetente.Value
Cells(61, 7).Value = Combo_responsaveis.Value
End With
If marcar_adiantamento = True Then
Cells(Irow, 9).Value = caixa_prestacao.Value
Cells(Irow, 7).ClearContents
End If
'Volta para a aba MENU
Sheets("prestacoes").Select
caixa_prestacao.Value = ""
caixa_periodo.Value = ""
ComboBox1.SetFocus
marcar_adiantamento = False
If Range("B42").Value <> 0 Then
MsgBox "VOCÊ ACABOU DE DIGITAR NA ULTIMA LINHA DA PLANILHA, FAVOR IMPRIMIR E INICIAR OUTRO RELATÓRIO, SE NESCESSÁRIO.", vbExclamation, "Lançamento em Duplicidade"
ComboBox1.SetFocus
End If
Call limpar_duplicados
End Sub
Postado : 02/01/2018 5:50 pm