| Progress bar di
Apoben64 |
Ciao a tutti, stò ricercando il modo di poter
creare un'applicazione che mi consenta di visualizzare l'avanzamento
di una macro o l'esecuzione di un comando, tipo una progress bar
quella che si vede nei downloads , magari utilizzando una userform.
chiedevo se qualcuno ha qualche idea o desidera portare avanti
questo progetto con me ! si può fare ? qualche idea ? |
|
| di Mauro |
X ora ti giro 2 esempi di userformche utilizzano
progressbar. spero ti possano essere utili. a dispo x
ulteriori domande
' Codice Userform contenente una ProgressBar ed un CommandButton
Private Sub CommandButton1_Click()
Dim Conta, riga, colonna As Integer
'Imposta il valore minimo
ProgressBar1.Value = ProgressBar1.Min
'Esegue il ciclo di incremento.
riga = 1
colonna = 0
For Conta = 1 To 100
ProgressBar1.Value = Conta
colonna = colonna + 1
resto = Conta Mod 10
If resto = 0 Then
riga = riga + 1
colonna = 1
End If
Cells(riga, colonna).Value = Conta
Next Conta
ProgressBar1.Value = ProgressBar1.Min
End Sub
' Codice Userform contenente una ProgressBar ed 2 CommandButton ed un pulsante di uscita
Private Sub CmdEsci_Click()
Unload Me
End Sub
Private Sub CommandButton1_Click()
Dim Counter As Integer
Dim Workarea(1000) As String
ProgressBar1.Min = LBound(Workarea)
ProgressBar1.Max = UBound(Workarea)
'Imposta il valore della proprietà Progress su Min.
ProgressBar1.Value = ProgressBar1.Min
'Esegue il ciclo nella matrice.
For Counter = LBound(Workarea) To UBound(Workarea)
'Imposta i valori iniziali per ciascun elemento
'della matrice.
'Workarea(Counter) = "Valore iniziale" & Counter
ProgressBar1.Value = Counter
Next Counter
ProgressBar1.Value = ProgressBar1.Min
End Sub
Private Sub CommandButton2_Click()
Dim Conta As Integer
'Imposta il valore minimo
ProgressBar1.Value = ProgressBar1.Min
'Esegue il ciclo di incremento.
For Conta = 1 To 9999
ProgressBar1.Value = Conta
Next Conta
ProgressBar1.Value = ProgressBar1.Min
End Sub | |
|
| Ciao mauro di
Apoben64 |
Ti ringrazio della tua risposta ! ovviamente ho
preso in considerazione i listati che mi hai trasmesso, ma vorrei
che prima analizzassi questo codice su cui stò lavorando , che ho
trovato nel web. infatti mi sfuggono alcuni aspetti di base:
1)ho visto che la velocità dipende dal numero dei cicli che si
indicano (ingtotale e su ingimod), tanto più i valori sono bassi e
più l'avanzamento della progressbar è veloce . 2)provando ad
inserire all'interno del listato, che nel presente codice è un
semplice copia incolla , delle macro od istruzioni che a loro volta
all'interno abbiamo ulteriori cicli il tutto s'impalla o si
avvia un esecuzione da tempi biblici. nel senso che non capisco
ancora come si debba inteargire (od allacciare) il progressbar e il
codice di cui voglio la visulizzare l' esecuzione . mi sembra di
essermi incartato anche nell'esporti il tutto. un grazie per il
tuo aiuto !
Option Explicit
Sub StartProcessing1()
' displays a progress bar while a macro runs, requires a reference to MSCOMCTRL.OCX
Dim lngTotal As Long, lngI As Long
' initiate progressbar
Load frmProgressBar1
With frmProgressBar1
.ProgressBar1.Scrolling = ccScrollingStandard ' or ccScrollingSmooth
.Show ' set the UserForms ShowModal property to false before running
' or .Show False
End With
UpdateProgressBar1 0, "Processing..." ' set initial progress status
' start the process
lngTotal = 3
For lngI = 1 To lngTotal
If lngI Mod 1 = 0 Then '
UpdateProgressBar1 lngI / lngTotal * 100, "Processing " & Format(lngI / lngTotal, "0%") & "..."
End If
Worksheets("FOGLIO1").Select ' istruzioni da eseguire
Range("A1:E10").Select
Selection.Copy
Worksheets("FOGLIO2").Select
Range("A1:E10").Select
ActiveSheet.Paste
Next lngI
' clean up
frmProgressBar1.Hide
Unload frmProgressBar1
End Sub
Private Sub UpdateProgressBar1(NewValue As Single, Optional NewCaption As String)
' updates the progressbar dialog
With frmProgressBar1
If Not IsMissing(NewCaption) Then .Caption = NewCaption
.ProgressBar1.Value = NewValue
If NewValue = 0 Then .Repaint
End With
End Sub
| |
|
| di Mauro |
| Ciao luca, ho provato il tuo codice anche
aumentando lngtotal e mi sembra funzioni bene! puoi spedirmi il
codice che si impalla! |
|
| Per mauro di Apoben64 |
Grazie mauro, ho risolto !. ho capito che gli
altri cicli presenti nella macro devono integrarsi a quelli della
progress bar. in questo modo l'interazione è univoca , così come il
tempo di esecuzione !
|
|
| di Mauro |
| Ciao luca, se fossi così gentile da spedirmi
comunque il file te ne sarei grato. magari tramite il nuovo servizio
ftp. ciao e grazie |
|
| Per mauro di Apoben64 |
Ok , caricamento avvenuto con successo!!!. ti
ho inviato il file, ciao e buona giornata, luca ! |
|
| di Mauro |
| Grazie luca quando ho un attimo di tempo lo
visionerò. |
|