Salve a tutti, avrei bisogno di bloccare momentaneamente un ciclo for, vedere a che punto è del calcolo e nel caso riprendere a calcolare oppure uscire (se il calcolo già mi soddisfa)
Avevo pensato a questo codice nel quale quando clicco sul form il tasto sospendi, questo diventa
sospendi=not sospendi
solo che appena comincia il for, non posso più cliccare nessun tasto sul form altrimenti s'impalla.. come potrei risolvere?
codice:Sospendi = False NomeFile = "C:\PROVASTAMPA2.txt" Open Nomefile For Output As #1 Dim NR As Long Dim c, P As Integer Dim progresso As Double ReDim combiS1%(1 To ElemScelti) ReDim combiS2%(1 To ElemScelti) progresso = 0 FileDaCuiStampare = Nomefile N = contatore K = ElemScelti NR = Cnk(N, K) ' Numero delle righe For c = 1 To K combiS1(c) = c Next c For R = 2 To NR P = K ''P=6 Questo è un ciclo di confronto con la riga sopra Do Until combiS1(P) < N - K + P '' finche l'elemento della riga sopra e colonna P è < 4+P P = P - 1 '' P diminuisce di uno, P=5 Loop For c = 1 To P - 1 combiS2(c) = combiS1(c) Next c ' combiS2(P) = combiS1(P) + 1 ' For c = P + 1 To K combiS2(c) = combiS2(c - 1) + 1 Next c '' salvo la riga su un file Call Scrivi(Val(selezio(combiS2(1) - 1)), Val(selezio(combiS2(2) - 1)), Val(selezio(combiS2(3) - 1)), Val(selezio(combiS2(4) - 1)), Val(selezio(combiS2(5) - 1)), Val(selezio(combiS2(6) - 1)), Val(selezio(combiS2(7) - 1)), Val(selezio(combiS2(8) - 1)), Val(selezio(combiS2(9) - 1)), Val(selezio(combiS2(10) - 1))) progresso = progresso + 1 ProgressBar.Value = progresso * 100 / (2 * NR) If Sospendi Then Close #1 ' Close #2 ' Command5.Caption = "Continua" Do While Sospendi DoEvents Loop ' Command5.Caption = "Sospendi" Sospendi = False Open Nomefile For Append As #1 ' End If For I = 1 To K combiS1(I) = combiS2(I) combiS2(I) = 0 Next Next R Close #1

Rispondi quotando