PROGRESS BAR

KELVINCD 16/01/2013 18:13:25
#417529
Em um tópico passado me deram esse código:

Private Function AnaliseCombinatoria(Dezena As String) As String
Dim n1 As Integer, n2 As Integer, n3 As Integer, n4 As Integer, n5 As Integer
Dim n6 As Integer, n7 As Integer, n8 As Integer, n9 As Integer, n10 As Integer
Dim n11 As Integer, n12 As Integer, n13 As Integer, n14 As Integer, n15 As Integer
Dim strDezena() As String
DoEvents
strDezena() = Split(Dezena, [Ô]-[Ô])
For n1 = 0 To UBound(strDezena) - 1
For n2 = n1 + 1 To UBound(strDezena)
For n3 = n2 + 1 To UBound(strDezena)
For n4 = n3 + 1 To UBound(strDezena)
For n5 = n4 + 1 To UBound(strDezena)
For n6 = n5 + 1 To UBound(strDezena)
For n7 = n6 + 1 To UBound(strDezena)
For n8 = n7 + 1 To UBound(strDezena)
For n9 = n8 + 1 To UBound(strDezena)
For n10 = n9 + 1 To UBound(strDezena)
For n11 = n10 + 1 To UBound(strDezena)
For n12 = n11 + 1 To UBound(strDezena)
For n13 = n12 + 1 To UBound(strDezena)
For n14 = n13 + 1 To UBound(strDezena)
For n15 = n14 + 1 To UBound(strDezena)
List1.AddItem strDezena(n1) & [Ô] - [Ô] & strDezena(n2) & [Ô] - [Ô] & strDezena(n3) & [Ô] - [Ô] & strDezena(n4) & [Ô] - [Ô] & strDezena(n5) & [Ô] - [Ô] & _
strDezena(n6) & [Ô] - [Ô] & strDezena(n7) & [Ô] - [Ô] & strDezena(n8) & [Ô] - [Ô] & strDezena(n9) & [Ô] - [Ô] & strDezena(n10) & [Ô] - [Ô] & _
strDezena(n11) & [Ô] - [Ô] & strDezena(n12) & [Ô] - [Ô] & strDezena(n13) & [Ô] - [Ô] & strDezena(n14) & [Ô] - [Ô] & strDezena(n15)

Next n15: Next n14: Next n13: Next n12: Next n11
Next n10: Next n9: Next n8: Next n7: Next n6
Next n5: Next n4: Next n3: Next n2: Next n1

End Function


Private Sub Command1_Click()
AnaliseCombinatoria Text1.Text
End Sub

Preciso coloca um pregresso bar nele.
MARCELO.TREZE 16/01/2013 18:17:22
#417530
coloque dentro do laço for n15 = n14, coloque um contador e pronto (c=c+1)

KELVINCD 16/01/2013 18:30:22
#417532
Não intendi so novato nisso ainda.
MARCELO.TREZE 16/01/2013 19:31:33
#417533
desculpe é mais complexo que isso o certo é fazer a analise combinatória para ver o total de combinações dividir este total por 100 e multiplicar pelo valor no laço. vai ser complexo viu

e se for no caso acima as dezenas são geradas tão rapido que a progressbar nem vai aparecer
MARCELO.TREZE 16/01/2013 20:01:24
#417535
olha fiz alguns testes aqui, e em todos eles o progressbar é tão rapido que fica insignificante.

KELVINCD 17/01/2013 01:14:52
#417587
no meu pc quando mando fazer 25 pra 15 leva uma eternidade.
MARCELO.TREZE 17/01/2013 08:09:11
#417590
então faz o seguinte apenas pra teste, coloque um label sobre o listbox escreva [Ô]Gerando Combinações[Ô], e mude a propriedade visible para False.

no código coloque

Private Sub Command1_Click()
[txt-color=#e80000]label1.Visible = True[/txt-color]
AnaliseCombinatoria Text1.Text
[txt-color=#e80000]label1.Visible = False[/txt-color]
End Sub
AJSO 17/01/2013 15:46:52
#417644
Resposta escolhida
Caro KELVINCD

Pela quantidade de Laços internos o ProgressBar fica inviável................

Talves um Cursor para avisar do processamento seria melhor............


Screen.MousePointer = vbHourglass
DoEvents
[ô]Seu código e processamento
Screen.MousePointer = vbDefault


Private Sub Command1_Click()
Screen.MousePointer = vbHourglass

AnaliseCombinatoria Text1.Text

Screen.MousePointer = vbDefault

End Sub



Boa Sorte


Tópico encerrado , respostas não são mais permitidas