Notifications
Clear all

ativar vba timer com checkbox em list box

15 Posts
3 Usuários
0 Reactions
3,097 Visualizações
(@denisw)
Posts: 64
Trusted Member
Topic starter
 

Ola amigos.
Criei um timer com botão individual para cada linha do excel . mudei isso para um listbox com loop no chekbox. se checkbox true ele deveria enviar uma msgbox a cada x minutos como aviso de que assunto continua pendente. Porem o loop não funciona. Anexo base de teste ( a rotina indvidual funciona na imagem relogio da planilha exemplo mod4)
Abaixo mod3 "testea1timer:

Dim i As Long
    With ListBox1
        For i = .ListCount - 1 To 0 Step -1 'AQUI DA ERRO
            If .Selected(i) Then
                Dim sac1 As VbMsgBoxResult
Dim tempo As String
sac1 = MsgBox("A nf da linha" & i & ListBox1.List(ListBox1.ListIndex, 0) & "foi resolvida?", vbYesNo, AVISO)
tempo = "00:00:10"
If sac1 = vbNo Then
MsgBox "A mensagem aparecerá novamente em " & tempo & " segundos"
Application.OnTime DateTime.Now + TimeValue(tempo), "testea1timer"
                              
            End If
            Exit Sub
            End If
        Next i
        
End With

End Sub
 
Postado : 29/12/2017 9:06 am
(@klarc28)
Posts: 971
Prominent Member
 

Favor testar os anexos. Se resolveu, favor marcar como resolvido.

 
Postado : 29/12/2017 9:19 am
(@denisw)
Posts: 64
Trusted Member
Topic starter
 

Obrigado. vou testar

 
Postado : 29/12/2017 9:27 am
(@klarc28)
Posts: 971
Prominent Member
 

Favor testar os anexos. Se resolveu, favor marcar como resolvido.

 
Postado : 29/12/2017 9:32 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

denisw,

Solicitamos, por gentileza utilizar a ferramenta CODE quando postar códigos VBA aqui no fórum.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 29/12/2017 9:38 am
(@denisw)
Posts: 64
Trusted Member
Topic starter
 

Vou testar ainda hoje! respondo

 
Postado : 29/12/2017 12:31 pm
(@denisw)
Posts: 64
Trusted Member
Topic starter
 

Houve um problema , o loop grava somente o ultimo checkbox marcado. como é multi, ele deveria percorrer o tempo ( no real sera 15min) pra cada numero lançado. ou seja quando lançar o x as 13h as 13:15 abriria msgbox " o " x " foi resolvido ?, o y lançado as 13:05 abriria a msg box as 13:20h o "y" foi resolvido. E mesmo q o loop funcione da forma que está ele reinciaria o timer pra todos. Por isso acho q tenho que mudar o projeto para o loop percorrer o horario de entrada ( colum B).

 
Postado : 29/12/2017 12:58 pm
(@klarc28)
Posts: 971
Prominent Member
 

Favor testar os anexos. Se resolveu, favor marcar como resolvido.

 
Postado : 29/12/2017 1:28 pm
(@denisw)
Posts: 64
Trusted Member
Topic starter
 

Muito bom , mas não deu certo , ele só ativa o primeiro flag, acho melhor fazer chamada individual, com um botaõ ao lado do flag, mas consigo idetificar ou tem identificaçao o checbox ?? checkbox1 checkbox2 ??

 
Postado : 13/01/2018 9:38 am
(@klarc28)
Posts: 971
Prominent Member
 

O selecionado é aqui:

            If .Selected(i) Then
 
Postado : 13/01/2018 10:41 am
(@klarc28)
Posts: 971
Prominent Member
 

Na ordem da lista é:

Form_sac.ListBox1.List(0)
Form_sac.ListBox1.List(1)
Form_sac.ListBox1.List(2)
 
Postado : 13/01/2018 10:44 am
(@klarc28)
Posts: 971
Prominent Member
 

Ou num laço de repetição:

Form_sac.ListBox1.List(i)
 
Postado : 13/01/2018 10:46 am
(@denisw)
Posts: 64
Trusted Member
Topic starter
 

nao deu certo preciso idnetificar os check box e fazer individual, os checkobx tem ID OU TEM COMO EU IDENTIFICA-LOS ??

 
Postado : 16/01/2018 9:06 am
(@klarc28)
Posts: 971
Prominent Member
 
Form_sac.ListBox1.List(0)

É o primeiro item.

1 é segundo, 2 é o terceiro

 
Postado : 19/01/2018 12:33 pm
(@klarc28)
Posts: 971
Prominent Member
 

Estude listbox:

https://www.youtube.com/results?search_query=excel+vba+listbox

O que você está chamando de checkbox, nada mais é do que um item da listbox.

 
Postado : 19/01/2018 12:35 pm