Private Sub Command_execute_Click() Dim progress, duration As Integer Dim nextdoevent, duration_begin, duration_end As Long Dim tmp_message As String Dim sub_minute As Integer Dim sub_second As Integer prgress_form_cancel = False Dim Box duration_begin = Timer progress_form.Command_execute.Enabled = False nextdoevent = Timer + 0.5 progress = 0 ProgressBar1.Value = 0 progress_form.ProgressBar1.Min = 0 progress_form.ProgressBar1.Max = number_of_drawings For Each f1 In fc ProgressBar1.Value = (progress) Label1.Caption = ("Drawing " & progress + 1 & " of " & number_of_drawings & " in progress") DoEvents nextdoevent = Timer + 0.5 progress = progress + 1 Next progress_form.Command_execute.Enabled = True Unload progress_form If progress_form_cancel = True Then Exit Sub duration_end = Timer duration = duration_end - duration_begin sub_minutes = Int(duration / 60) sub_seconds = duration Mod 60 tmp_message = "Finished !" & vbCrLf & vbCrLf & s & vbCrLf & "were processed." tmp_message = tmp_message & vbCrLf & vbCrLf & "Process time: " tmp_message = tmp_message & sub_minutes & ":" & sub_seconds & " minutes" MsgBox (tmp_message) End Sub Private Sub Command_Cancel_Click() progress_form_cancel = True Exit Sub End Sub