Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

excel Inserire Animazione

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

excel Inserire Animazione

Postdi Ca.R » 24/07/11 19:59

Salve a tutti,

utilizzo un foglio excel (2003) con numerosi collegamenti ad altri file residenti su altri PC in rete LAN.
Il file si aggiorna periodicamente tramite una macro VBA.
L'aggiornamento dura 8-12 sec (che davanti al monitor sono un eternità) e in tale intervallo il foglio di lavoro appare "bloccato" e "non risponde".
Per evitare che, nell'attesa, l'utente effettui tentativi di altre operazioni, all'attivazione della macro di aggiornamento dovrei far apparire un messaggio che informi che è in corso l'aggiornamento.
Il messaggio deve poi scomparire da solo a a fine routine.
Come posso fare (meglio se senza animazioni)?
grazie, saluti
Ca.R (Gorizia)
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22

Sponsor
 

Re: excel Inserire Animazione

Postdi Flash30005 » 24/07/11 20:12

Puoi inserire una barra di avanzamento che può essere quella di stato di excel (che non dà noie)
o altre che puoi trovare in questo topic

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: excel Inserire Animazione

Postdi Ca.R » 25/07/11 15:19

Egregio Mr. Flash
ringrazio per la sollecita risposta.
Avevo visto il topic, ma preferirei qualcosa di più semplice e nello stesso stempo ma più visibile della barra di stato (che nel mio file è nascosta per aumentere l'area di lavoro).
Pensavo appunto ad una finestra tipo MSGBOX con solo messaggio tipo "attendere prego.." + eventualemte icona ma senza il pulsante OK. La finestra di messaggio dovrebbe apparire al lancio della routine di aggiornamento e scoparire e fine routine.
Grazie saluti, CaR

P.S. Mi scuso per il titolo della topic che non è proprio pertinente la domanda.
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22

Re: excel Inserire Animazione

Postdi Flash30005 » 25/07/11 16:37

Puoi usare una userform con un testo all'interno tipo "Attendere..."
che lo rendi visibile all'inizio della macro
alla fine della macro nascondi l'userform

più completo potrebbe essere lo stesso userform con la scritta "Elaborazione finita" che appare alla fine della macro e un pulsante (con Ok) che chiude l'userform

C'è da sbizzarrirsi :)
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: excel Inserire Animazione

Postdi Ca.R » 25/07/11 18:22

OK
ci provo
grazie, saluti
CaR
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22

Re: excel Inserire Animazione

Postdi Ca.R » 27/07/11 08:54

Egregio Flash,
come suggerito ho utilizzato un semplice userform con una label appropriata, con attributo .show all'inizio della routine e .hide alla fine.
Facendo girare la routine passo-passo tutto ok.
Quando invece la routine gira in "run-time" il UserForm compare compeltamente bianco ed eccezzione della "caption".
Ho risolto (per modo di dire) introducendo una pausa (Wait) di alcuni secondi dopo l'istruzione userform.show, che però (ovviamente) allunga il tempo di attesa dell'utente.
Come si spiega e risolve questo fenomeno ?
La routine contine le poche righe che seguono
Grazie, saluti

Sub aggiorna()
'
' aggiorna Macro
' Macro registrata il 22/02/2011 da Ca.R.
'

UserForm1.Show
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime

Dim origine As String
origine = Worksheets("foglio1").Range("AH6")

'rimuovi protezioni
Application.ScreenUpdating = False
Sheets("foglio1").Unprotect
Sheets("foglio2").Unprotect
Sheets("foglio ").Unprotect

'aggiorna
ActiveWorkbook.UpdateLink Name:=origine, Type:=xlExcelLinks
Sheets("foglio1").Range("AA2") = Now

'proteggi
Sheets("foglio1").protect
Sheets("foglio2").protect
Sheets("foglio3").protect

UserForm1.Hide

End Sub
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22

Re: excel Inserire Animazione

Postdi Anthony47 » 28/07/11 13:05

Intanto per favore quando pubblicate il vostro codice pubblicatelo corretto e non approssimato (la tua form se non aperta in modalita' vbModeless bloccherebbe l' esecuzione della macro fintanto che non viene chiusa; sono convinto ovviamente che l' hai aperta in questa modalita', ma questo dimostra che il codice pubblicato e' approssimato quindi dovrei dubitare di tutto quanto hai scritto).
Nello specifico, aggiungi una doEvents e togli tutte le istruzioni successive legate alla wait:
Codice: Seleziona tutto
UserForm1.Show vbModeless   
DoEvents      '<<< Aggiunta

Aggiungi la DoEvents anche subito dopo eventuali modifiche al testo visualizzato nella form.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel Inserire Animazione

Postdi Ca.R » 29/07/11 06:48

Egergio Antony,
Ringrazio per i prezisi consigli e mi scuso per le imprecisoni.
Solo per info, assicuro che il codice riportato è un copia-incolla dal modulo, quindi senza vbModellees.
(è una sinstassi che non conoscevo ed oora approfondisco).
Ho solo modificato il nome dei fogli portandoli allo standard foglio 1-2-3 e tolto le password di protezione
Confermo inoltre che , nella forma originale il codice "funziona".
Grazie, saluti
CaR
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22

Re: excel Inserire Animazione

Postdi Anthony47 » 29/07/11 14:16

Mi pare che hai risolto, bene (anche se non ho capito come, ma questo non e' importante).

Solo per curiosita': tu dici che con la macro pubblicata il 27-7 mattina ti compare la form col messaggio, la macro si completa automaticamente senza nessun intervento e alla fine la form scompare? Che versione di Excel hai?

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel Inserire Animazione

Postdi Ca.R » 29/07/11 21:14

Salve Antony,
uso excel 2003 (11.8316.8221) SP3

Confermo che la macro funziona, cioè il form è visualizzato correttamente.
viceversa senza le righe di "wait" il form compare con sfondo bianco e vuoto, mentre il titolo è visualizzatto correttamente. Con passo-passo (F8) tutto ok.
Comunque ora ho tolto il ciclo wait ed utilizzo il codice suggerito.
Sono a disposizione per eventuali ulteriori dettagli
Grazie, saluti
CaR
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22

Re: excel Inserire Animazione

Postdi Anthony47 » 30/07/11 13:39

Forse ho capito: probabilmente hai impostato manualmente la proprieta' ShowModal della form su False, che e' equivalente a lasciare il valore di default (True) e attivare la form in modalita' vbModeless.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel Inserire Animazione

Postdi Ca.R » 02/08/11 08:17

Antony,
a dire il vero io non ho capito .... ma confermo l'impostazione ShowModal della form su False.
provvederò ad approfondire...
grazie, saluti
CaR
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22

Re: excel Inserire Animazione

Postdi Anthony47 » 02/08/11 12:35

Non ti devi preoccupare...

Comunque:
-io ti avevo detto che se non aprivi la form in modalita' vbModeless (e ti avevo dato l' istruzione UserForm1.Show vbModeless) allora la macro si sarebbe bloccata fintanto che la form non veniva chiusa in qualche modo, cosa che non quadrava con l' obiettivo e con la tua descrizione.
-avendomi tu confermato che invece la macro non si bloccava e funzionava come da tuoi desiderata sono andato a guardare meglio tutte le proprieta' di una form, accorgendomi che c' e' la ShowModal, che fa a livello di progettazione della form lo stesso lavoro che si puo' fare da codice al momento della ".Show" con le opzioni Userform1.Show vbModal (ShowModal=1=true; combinazione di defaut) oppure Userform1.Show vbModeless (ShowModal=0=false).
Insomma, dalla serie "Non si finisce mai di imparare"

A mia attenuante posso solo dire che l' help on line e' fuorviante, perche' dice
costante vbModal, valore 1, Descrizione UserForm è a scelta obbligatoria. Impostazione predefinita.
In realta' l' impostazione predefinita e' quella settata nelle proprieta' della form.

Se ti ho vieppiu' confuso sappi che non era nelle mie intenzioni...

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "excel Inserire Animazione":


Chi c’è in linea

Visitano il forum: alfrimpa e 10 ospiti