immagine elaborazione
Hai un problema con Excel? 
immagine elaborazione
di dlacascia data: 09/04/2013 09:57:06
ho alcune macro, che per elaborarsi richiedono alcuni secondi di tempo, riesco ad inserire qualcosa tipo una barra di scorrimento, oppure una clessidra o qualunque cosa che faccia capire all'utente che il programma sta elaborando? Altrimenti durante l'attesa in cui l'operatore non capisce se il programma ha elaborato, inizia a cliccare pulsanti a caso, per poi creare confusione appena il programma ha finito la prima elaborazione.
di isy (utente non iscritto) data: 09/04/2013 10:50:54
Ciao
Cit: ho alcune macro, che per elaborarsi richiedono alcuni secondi di tempo
Potresti allegare un esempio di codice che come riporti richiede troppo tempo
Si può operare in diverse direzioni, migliorando la velocità del ciclo o in alternativa inserendo un Form con Progress bar.
Da valutare in base alla necessità
di diego (utente non iscritto) data: 09/04/2013 13:30:08
purtroppo un file di esempio non è fattibile in quanto il file originale è abbastanza complesso e le macro sono correlate tra loro diventando di conseguenza lunghe e complesse. Sicuramente il codice si potrebbe sicuramente semplificare e velocizzare di molto, ma penso che ragionarci sul forum sia praticamente impossibile. Per me sarebbe veramente grandioso che qualcuno sicuramente più capace di me ci mettesse le mani. Se è ammesso dal forum, potremmo metterci in contatto al di fuori di questo e guardarci insieme.
Se questo non fosse fattibile, mi accontenterei di avere quel qualcosa di ripiego che avevo chiesto all'inizio.
di Textomb data: 09/04/2013 13:37:20
tempo fa ho avuto lo stesso problema.
ho risolto con una progressbar. di fatto è un controllo aggiuntivo. Va aggiunto ai controlli delle userform.
Poi, ad ogni ciclo aumento la progressione della barra di avanzamento che visivamente mi informa a che punto è l'elaborazione.
Ovviamente dovresti effettuare un calcolo iniziale valutando il numero totale di cicli da effettuare e poi, lo rapporti in percentuale affidando ad ogni nuovo ciclo il compito di incrementare il valore della progress bar.
Forse è più semplice a farlo che a spiegarlo.
di Vecchio Frac data: 09/04/2013 15:30:31
Se ti basta il cursore a clessidra puoi anche sfruttare semplicemente
Application.Cursor = xlWait
e riportarlo al default con
Application.Cursor = xlDefault
o pure le Statusbar con opportuni messaggi all'utente.
Un form modeless con un indicatore di progressione, come suggerisce Textomb, è certamente più elegante.
cit. " Se è ammesso dal forum, potremmo metterci in contatto al di fuori di questo e guardarci insieme. "
---> Gli accordi privati sono naturalmente consentiti, comprese eventuali trattative sul compenso. Se non volete scambiarvi le rispettive email per motivi di privacy, scrivete a me presso staff@excelvba.it e io provvedo a mettervi in contatto.
di diego (utente non iscritto) data: 09/04/2013 18:16:34
Application.Cursor = xlWait
e riportarlo al default con
Application.Cursor = xlDefault
mi sembra la cosa più semplice e funzionale.
per quanto riguarda la progress bar, è sicuramente più bella come cosa, ma non so minimamente dove andarla a trovare.
nella casella degli strumenti non mi sembra che ci sia.
dove la trovo?
di Textomb data: 09/04/2013 18:47:13
Vai sull'editor del Visual Basic.
Selezioni una userform.
poi vai su strumenti --> controlli aggiuntivi --> cerca Microsoft progressbar control
Ci sono diverse versioni. Io utilizzo la ver 5.0 perchè è risultata compatibile con il mio sistema operativo e con excel 2010.
di diego (utente non iscritto) data: 10/04/2013 08:19:42
sono riuscito ad inserire la progressbar sul mio form. Non riesco a trovare ne sulla guida ne in altri posti in che modo farla funzionare. Immagino che vada attivata nel momento in cui avvio le mie macro, ma non so in che modo.
di Textomb data: 10/04/2013 10:16:47
ti allego un piccolo esempio pratico. Con excel 2010 l'ho testato e funziona.
Ti basta studiare il codice sottostante in modo da verificare come interagisce la progress bar e poi lo adatti al tuo caso.
Se hai dubbi batti un colpo.
di diego (utente non iscritto) data: 10/04/2013 12:17:07
grazie 1000 textomb bellissima cosa.
Vuoi Approfondire?