Logo Hardware.com.br
LaerteB
LaerteB Super Participante Registrado
153 Mensagens 127 Curtidas

[Resolvido] Preencher Listbox com as linhas do intervalo de horas.

#1 Por LaerteB 09/02/2019 - 09:12
Bom dia, Pessoal

Preciso de uma luz.. é que estou tentando fazer com que o ListBox1 seja preenchido
com as linhas que contenham as horas (da coluna "I") exemplo: das 07:00 até duas horas
depois, referente ao dia (08/02/2019) (seriam as linhas que contenham as
horas 07:00, 08:00 e 09:00)...

No exemplo que está em anexo tentei achar somente uma hora + 2 (da hora inicial
07:00), mas este está dando erro 13, Tipos incompatíveis, mas não consegui achar
realmente onde estou falhando...

Se fosse somente a variável "v" não ocorreria o erro e acharia todos as linhas que
contivessem as horas "07:00" somente, mas eu quero todas as horas no intervalo
de duas horas após das "07:00"(incluindo as 07:00)..

Obs: eu sei fazer o intervalo se fosse horas já preestabelecidas como fixas, mas o
que quero é que busque o intervalo da hora inicial até duas horas depois, pois eu
colocarei num outro momento, um temporizador que irá mudar a hora inicial
de tempos em tempos.. ok wink.png

Abri em outros Fóruns a mesma questão, até agora não obtive resposta, para acompanharem
segue os Links:
http://www.planilhando.com.br/forum/viewtopic.php?f=10&t=30446
https://www.tomasvasquez.com.br/forum/viewtopic.php?f=20&t=6817

Agradeço desde já.

LaerteB smile.png

Anexos

Responder
LaerteB
LaerteB Super Participante Registrado
153 Mensagens 127 Curtidas
#2 Por LaerteB
12/02/2019 - 10:00
Bom dia, Pessoal smile.png

É parece que pessoal aqui (como nos outros Fóruns) não conseguiram solucionar esta dúvida,
e está sendo "impossível" fazer uma pesquisa no intervalo de 2 horas a partir das 07:00
(preciso deste funcionando por causa do meu projeto), então resolvi colocar o intervalo
como horas fixas mesmo frown.png ... desta forma ele traz todas as horas dentro deste intervalo
para o ListBox..

Em relação ao temporizador (que não era a dúvida que lancei) que iria mudar a hora inicial,
vou poder fazer com esta solução mesmo, espero não ter problemas com isso :| ...

Mesmo assim se alguém conseguir resolver esta dúvida ou ter outra opção, por gentileza não
deixe de colocar ela aqui, pois sei que muitos (como eu também) poderão solucionar
problemas no seu projeto que pode ter ligação (mesmo que em partes) a este caso wink.png ...

Se eu encontrar um outra opção para este problema, irei colocar aqui, pode ter certeza big_green.png ...

Em anexo coloquei o arquivo exemplo "Pesquisa_hora_SOLUCAO" como solução acima citada,
para que todos possam usá-los para os seus respectivos projetos...

Agradeço a todos que ajudaram e aos que tentaram também big_green.png smile.png ...

LaerteB smile.png

Anexos

"Se a resposta foi útil para ti wink.png, por gentileza clicar no botão Curtir, obrigado wink.png ."
LaerteB
LaerteB Super Participante Registrado
153 Mensagens 127 Curtidas
#3 Por LaerteB
15/02/2019 - 23:02
Boa noite, pessoal

Como havia lhes dito se tivesse a solução definitiva estaria colocando aqui, então foi resolvido...

O nosso amigo Reinaldo corrigiu o erro que se encontrava no código e fez alguns comentários
que são pertinentes; no outro Fórum... estou colocando o link para analisar a resposta dele e a
minha resposta com alguns acréscimos em trechos do código que poderá ser útil, e também abaixo
estou adicionando o código (já corrigido) que funciona de acordo com o proposto por este Tópico:

https://www.tomasvasquez.com.br/forum/viewtopic.php?f=20&t=6817


Sub Insere_Dados_ListBox()
Dim guia As Worksheet, ran As Range
Dim linha As Integer, linhalistbox As Integer, lin As Integer
Dim v As Date, v2 As Date

Set guia = Worksheets("Planilha1&quot
Set ran = Worksheets("Planilha1&quot.Range("I2&quot

v = "07:00"
v2 = Format(TimeValue(v) + 2 / 24, "hh:mm&quot

linhalistbox = 0
lin = 2

With guia
With UserForm1.ListBox1
Do While ran.Value <> ""
If TimeValue(ran.Value) >= TimeValue(v) And TimeValue(ran.Value) <= TimeValue(v2) Then
ran.Select
lin = ActiveCell.Row
With UserForm1.ListBox1
.AddItem
.List(linhalistbox, 0) = guia.Cells(lin, 1)
.List(linhalistbox, 1) = guia.Cells(lin, 2)
.List(linhalistbox, 2) = guia.Cells(lin, 6)
.List(linhalistbox, 3) = guia.Cells(lin, 7)
End With
linhalistbox = linhalistbox + 1
lin = lin + 1
End If

Set ran = ran.Offset(1, 0)
ran.Select
Loop
End With
End With
End Sub


Estes trechos do código abaixo que acrescentei:

Dim ran2 As Range
Dim sDate As String

Set ran2 = Worksheets("Planilha1&quot.Range("F2&quot

sDate = Date

'este trecho do código é colocado depois do "Do While.." e antes do 1º "If.."
If ran2.Text = sDate Then

'este trecho abaixo é colocado depois "lin = lin + 1" e "End If"
ElseIf ran.Value = "" And ran2.Value = "" Then
Exit Sub
End If


'este "Set.." é colocado depois do "Set ran = ..."
Set ran2 = ran2.Offset(1, 0)

'acrescente no fim de tudo este "Set ran2.."
Set ran2 = Nothing


Agradeço a todos e ao nosso amigo Reinaldo wink.png

LaerteB smile.png
"Se a resposta foi útil para ti wink.png, por gentileza clicar no botão Curtir, obrigado wink.png ."
Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal