Boa tarde, 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
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/vie ... 10&t=30446
https://www.hardware.com.br/comunidade/ ... s/1499915/
Agradeço desde já.
LaerteB
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
[RESOLVIDO]Preencher Listbox com as linhas do intervalo de horas
[RESOLVIDO]Preencher Listbox com as linhas do intervalo de horas
- Anexos
-
- Pesquisa_hora.zip
- (15.96 KiB) Baixado 201 vezes
Editado pela última vez por LaerteB em Sex Fev 15, 2019 9:45 pm, em um total de 1 vez.
Re: Preencher Listbox com as linhas do intervalo de horas
Bom dia, Pessoal
É 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 ... 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 ...
Se eu encontrar um outra opção para este problema, irei colocar aqui, pode ter certeza ...
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 ...
LaerteB
É 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 ... 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 ...
Se eu encontrar um outra opção para este problema, irei colocar aqui, pode ter certeza ...
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 ...
LaerteB
- Anexos
-
- Pesquisa_hora_SOLUCAO.zip
- (23.52 KiB) Baixado 212 vezes
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Preencher Listbox com as linhas do intervalo de horas
O erro reportado na postagem inicial, ao que parece, e que a função "Str" retorna o valor como caractere inclusive com um espaço no inicio.
Outro alerta voce definiu uma variavel como "Val"; porem Val e uma função interna do vba, assim poderá causar erro, renomeie ou não a utilize (como no meu exemplo).
Tambem no descrito do problema diz que deseja o intervalo, em sua procura/inclusão estã somente para valor igual a hora inicial + 2, sua listibox está setada para uma coluna.
Veja se auxilia:
Outro alerta voce definiu uma variavel como "Val"; porem Val e uma função interna do vba, assim poderá causar erro, renomeie ou não a utilize (como no meu exemplo).
Tambem no descrito do problema diz que deseja o intervalo, em sua procura/inclusão estã somente para valor igual a hora inicial + 2, sua listibox está setada para uma coluna.
Veja se auxilia:
Código: Selecionar todos
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")
Set ran = Worksheets("Planilha1").Range("I2")
v = "07:00"
v2 = Format(TimeValue(v) + 2 / 24, "hh:mm")
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
Re: Preencher Listbox com as linhas do intervalo de horas
Boa tarde, Reinaldo
Muito obrigado ... o seu código funcionou como eu esperava.. o erro eu percebi quando anexei o
segundo exemplo (com a solução do intervalo como horas fixas), percebi que era a função "Str", mas
mesmo assim não tinha conseguido fazer o intervalo como tu ... eu fiz de tudo menos
a sua solução ... vivendo e aprendendo ..
Agradeço pelo alerta da variável "Val" eu não estava ciente que era uma função interna do VBA, já estou
renomeando-as para não ter erros no futuro ..
Acrescentei algumas linhas no código para fazer uma verificação da data também, como mencionei no inicio,
e estou disponibilizando abaixo estes trechos para todos poderem utilizá-lo... pode ser útil :
Obrigado novamente, Reinaldo e a todos ..
LaerteB
Muito obrigado ... o seu código funcionou como eu esperava.. o erro eu percebi quando anexei o
segundo exemplo (com a solução do intervalo como horas fixas), percebi que era a função "Str", mas
mesmo assim não tinha conseguido fazer o intervalo como tu ... eu fiz de tudo menos
a sua solução ... vivendo e aprendendo ..
Agradeço pelo alerta da variável "Val" eu não estava ciente que era uma função interna do VBA, já estou
renomeando-as para não ter erros no futuro ..
Acrescentei algumas linhas no código para fazer uma verificação da data também, como mencionei no inicio,
e estou disponibilizando abaixo estes trechos para todos poderem utilizá-lo... pode ser útil :
Código: Selecionar todos
Dim ran2 As Range
Dim sDate As String
Set ran2 = Worksheets("Planilha1").Range("F2")
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
LaerteB