Página 1 de 1

Método Find para Encontrar uma Data em um Intervalo

Enviado: 24 Fev 2021 às 16:23
por jealita
Olá Pessoal.

Tenho um relatório onde em uma aba tenho uma célula com uma determinada data que é a "data de referência" em que o relatório está sendo montado e em outra aba tenho o "banco de dados" com todo o histórico de registros.
Como muda a data de acordo com o momento em que o relatório estiver sendo montado, pensei em utilizar o método Find para usar a célula da "data de referência" como chave e encontrar na outra aba a data correspondente.
Fiz um teste utilizando números e funciona, porém quando mudo a informação para Data não funciona.
Alguém consegue me ajudar a entender o que preciso mudar para conseguir encontrar a célula com a data procurada?
Coloquei o arquito teste em anexo.

Obrigada!

Re: Método Find para Encontrar uma Data em um Intervalo

Enviado: 24 Fev 2021 às 17:13
por osvaldomp
Experimente:

altere Dim EncontraString As String ~~~> para ~~~> Dim EncontraString As Date

e With Sheets("Planilha1").Range("A:XFD") ~~~> para ~~~> With Sheets("Planilha1").Range("B3:H3")
#
Veja se o código abaixo lhe atende.
Código: Selecionar todos
Sub BuscaData()
 Dim d As Range
  Set d = [B3:H3].Find([A1])
  If Not d Is Nothing Then
   d.Select
  Else: MsgBox "valor não encontrado"
  End If
End Sub

Re: Método Find para Encontrar uma Data em um Intervalo

Enviado: 25 Fev 2021 às 15:29
por jealita
Funcionou, mas no meu caso a data que será a referência da busca está em uma aba e a linha com as datas que vou procurar está em outra aba.
Saberia me dizer o que preciso mudar?

Tentei colocar como

Sub BuscaData()
Dim d As Range
Set d = ThisWorkbook.Worksheets("Planilha2").Range([B3:H3]).Find(ThisWorkbook.Worksheets("Planilha1").Range([A1])
If Not d Is Nothing Then
d.Select
Else: MsgBox "valor não encontrado"
End If
End Sub,

mas não funcionou...

Deixo anexo o arquivo.

Re: Método Find para Encontrar uma Data em um Intervalo

Enviado: 25 Fev 2021 às 20:37
por osvaldomp
Código: Selecionar todos
Sub BuscaDataV2()
 Dim d As Range
  Set d = Sheets("Planilha2").[B3:H3].Find(Sheets("Planilha1").[A1])
  If Not d Is Nothing Then
   Sheets("Planilha2").Activate: d.Select
  Else: MsgBox "valor não encontrado"
  End If
End Sub