salve,
certo che sono disponibile ad aiutare, se le mie poche capacità mi permettono di farlo;
non sono geloso dei miei progetti.
non devi prelevare alcuna riga dal codice che ti ho inviato;
tutto quel listato serve solo per creare, dimensionare e far apparire la barra.
devi importare il solo file Progress_Meter.frm nella tua cartella excel;
vai nel vba, nella finestra che elenca i progetti seleziona la cartella;
clicca sul nome con tasto destro, apparirà un menu popup, seleziona importa file;
ricerca il file che ti ho indicato sul tuo pc, e clicca importa;
troverai una nuova cartella form con dentro la barra;
aprila clicca 2 volte sul nome Progress_Meter apparirà nel vba, poi clicca sul triangolino in alto per avviare vba e ti sarà mostrata la barra;
clicca sul quadratino per farla scomparire.
ti ho preparato un piccolo file excel con la barra così potrai verificare il funzionamento.
https://rapidshare.com/files/1126121658/Progress_Meter.xlsnella cella A1 inserisci il valore 1 per mostrare la barra;
nella stessa cella inserisci il valore 2 per nascondere la barra.
come vedrai è statica, non si vede avanzamento, perchè come scrivevo quel codice serve solo per creare la barra.
se vuoi puoi modificare,nel precedente codice, le linee commentate ma solo per dare una diversa foma alla barra e non per produrre uno scorrimento della barra.
nel tuo codice inserisci questa call:
- Codice: Seleziona tutto
....
Application.StatusBar = "Elaborazione... (scrivi ciò che vuoi) " & variabile_del_ciclo
'<<<esistente
Call Barra '<<<aggiungere
....
con la Call viene chiamata la routine che mostra la barra nel tuo foglio, come avviene nel file excel che ti sto inviando, ma è ancora statica;
per renderla dinamica devi usare questo codice, che perdonami ho dimenticato di inserirlo nel precedente post solo per distrazione, e devi inserirlo in un modulo:
- Codice: Seleziona tutto
Sub Barra()
Dim Percent As Single
Percent = NRow * NCol '<<<< A modificare in base al tuo calcolo
Progress_Meter.Show
With Progress_Meter
.labPg4v.Caption = Format(Percent, "0%")
.labPg4.Width = Percent * (.labPg4v.Width + 2) '<<<< B modificare eventualment in base al tuo calcolo
End With
DoEvents
End Sub
come vedi è simile a quello suggerito da Anthony.
è questo il codice su cui agire per ottenere l'avanzamento della barra;
ma devi modificare la riga A, valida per il mio caso, in base alle tue esigenze;
per la tua situazione devi modificare il valore di NRow * NCol e questo dipende dal tuo calcolo;
e purtroppo qui non posso esserti di grande aiuto poichè non ho capito ancora come si stabilisce il valore da attribuire a Percent e non ho la tua cartella con i tuoi dati per tentare dei test;
necessitiamo dell'intervento dei professori.
se eventualmente vuoi che la barra scompaia alla fine del calcolo aggiungi alla fine del tuo codice questa riga:
- Codice: Seleziona tutto
Application.StatusBar = "" '<<<esistente
Application.DisplayStatusBar = False '<<<esistente
Application.DisplayStatusBar = oldStatusBar '<<<esistente
Progress_Meter.Hide
spero che questo "trattato" ti sia di aiuto e che i moderatori non mi mettano al bando per aver occupato tanto spazio.
ciao