Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Excel 97 Macro su evento aggiornamento della tabella Pivot

71 views
Skip to first unread message

miss_paddy

unread,
Sep 4, 2003, 11:14:30 AM9/4/03
to
Ciao a tutti, eccomi di nuovo qui.... non vi siete ancora
stufati di me vero? ;-)
Il mio nuovo problema è questo: nel momento in cui
aggiorno una tabella pivot dovrei far in modo di
aggiornare una text box che contiene dei valori calcolati
in base alla tabella pivot. Una soluzione potrebbe essere
quella di mettere un bottone su cui l'utente deve cliccare
in modo che venga aggiornata l'etichetta... alla pressione
del bottone associo la macro che fa l'aggiornamento della
mia text box, ma non mi piace molto. Preferirei appunto
che nel momento che la tabella viene eventualmente
aggiornata venga lanciato in maniera automatica l'evento
di aggiornamento della casella di testo... è possibile o
sto parlando di pura e semplice fantascienza ?
Come al solito 1000 grazie in anticipo
mp

fernando cinquegrani

unread,
Sep 5, 2003, 1:50:19 AM9/5/03
to
"miss_paddy" <miss_...@libero.it> ha scritto nel messaggio news:1e2201c372f7$3cfd55f0$a601...@phx.gbl...
----
forse è possibile, ma è dura.
è conveniente creare una procedura che
aggiorni contemporaneamente la tabella (acquisendo
i parametri da qualche parte) *e* aggiorni la tua texbox.
.f
http://www.prodomosua.it

miss_paddy

unread,
Sep 5, 2003, 8:03:02 AM9/5/03
to
Ciao Fernando purtroppo non riesco a vedere come adottare
il tuo tipo di soluzione perchè è l'utente che decide
quali filtri selezionare nei vari pagefields della tabella
Pivot. In base a questa selezione vengono ricalcolati, in
un intervallo di celle i valori su cui si basa un grafico.
La text box che vorrei che si aggiornasse contiene un
riassunto con alcuni dei valori più significativi. Ho
fatto delle prove ed ho visto però che la selezione dei
filtri della pivot scatena anche l'evento Calculate del
foglio
Private Sub Worksheet_Calculate()
MsgBox ("beccato!")
End Sub
e quindi su tale evento potrei far fare l'aggiornamento
della text box ma ora viene il problema.... il metodo
Private Sub Worksheet_Calculate()
MsgBox ("beccato!")
End Sub
lo dovrei scrivere sul foglio in questione che io aggiungo
dinamicamente.... come posso fare ad aggiungere il codice
relativo all'evento?....non so se mi sono spiegata bene ma
intendo dire che il metodo lo scriverei nel codice che sta
dietro al foglio in questione che io posso creare e
cancellare più volte nell'applicazione ... come posso fare?
thanks
MP.
>-----Messaggio originale---
>.
>

fernando cinquegrani

unread,
Sep 5, 2003, 10:25:32 AM9/5/03
to
"miss_paddy" <miss_...@libero.it> ha scritto nel messaggio news:23ff01c373a5$a82486b0$a001...@phx.gbl...

Ho fatto delle prove ed ho visto però che la selezione dei
filtri della pivot scatena anche l'evento Calculate del
foglio
Private Sub Worksheet_Calculate()
MsgBox ("beccato!")
End Sub
e quindi su tale evento potrei far fare l'aggiornamento
della text box ma ora viene il problema.... il metodo
Private Sub Worksheet_Calculate()
MsgBox ("beccato!")
End Sub
lo dovrei scrivere sul foglio in questione che io aggiungo
dinamicamente.... come posso fare ad aggiungere il codice
relativo all'evento?....non so se mi sono spiegata bene ma
intendo dire che il metodo lo scriverei nel codice che sta
dietro al foglio in questione che io posso creare e
cancellare più volte nell'applicazione ... come posso fare?
---------------
esiste la possibilità di scrivere codice da codice ma te
la sconsiglio. potresti:
1. usare un modulo di classe
2. non creare il foglio, ma, avendolo già predisposto
anche con il codice evento, renderlo semplicemente visibile
.f
http://www.prodomosua.it


miss_paddy

unread,
Sep 5, 2003, 11:28:30 AM9/5/03
to
Credo che proverò a nascondere ed a rendere visibile il
foglio anche se questo mi comporta un bel po' di modifiche
via codice perchè , che resti tra noi :-), non so cosa sia
un modulo di classe... anzi in realtà mi sono sempre
chiesta quale fosse la differenza tra modulo e modulo di
classe...
me lo spieghi brevemente e se puoi, mi indichi qualcosa da
leggere?
Grazie 1000
mp
>-----Messaggio originale---
>.
>

fernando cinquegrani

unread,
Sep 6, 2003, 12:44:42 AM9/6/03
to
"miss_paddy" <miss_...@libero.it> ha scritto nel messaggio news:2d8901c373c2$5c35b860$a601...@phx.gbl...

Credo che proverò a nascondere ed a rendere visibile il
foglio anche se questo mi comporta un bel po' di modifiche
via codice perchè , che resti tra noi :-), non so cosa sia
un modulo di classe
----------
ottima scelta. anche perché un modulo di classe
ti comporterebbe modifiche maggiori.

per i moduli di classe, puoi guardare questi
documenti:
http://www.microsoft.com/italy/office/previous/2000/esperti/moduli_classe/

per un semplice esempio di evento associato a un oggetto
mediante un modulo di classe puoi vedere ad esempio:
http://www.prodomosua.it/zips/rand.xls
[è conveniente scaricarlo e poi aprirlo]

nel modulo di classe attribuisco delle proprietà
di evento a un generico oggetto chart (classe di oggetti)
nel modulo standard attribuisco a uno specifico
oggetto chart quelle proprietà (creo un'istanza)

se in modulo1 nella macro start sostituisci
Set mychart.A = Worksheets("Foglio1").ChartObjects(1).Chart
con
Set mychart.A = Worksheets("Foglio1").ChartObjects(2).Chart
e riavvii la macro vedrai che le proprietà
di evento [cambio dei colori su ricalcolo] saranno trasferite
dal primo grafico al secondo.

se invece aggiungi una nuova istanza
Public yourchart As New Classe1
e assegni
Set yourchart.A = Worksheets("Foglio1").ChartObjects(2).Chart
vedrai che entrambi gli oggetti chart godranno ora delle
stesse proprietà di evento.
.f
http://www.prodomosua.it


miss_paddy

unread,
Sep 8, 2003, 2:36:04 AM9/8/03
to
grazie Fernando.
A presto
mp
>-----Messaggio originale---
>.
>
0 new messages