Vale a dire che al giorno X il grafico rappresenti i giorni X,
X-1,X-2,X-3,X-4.
Vi ringrazio e buon 2007!.
> Partendo da un grafico che rappresenta i dati nella tabella indicata,
> vorrei sviluppare una macro che in qualunque momento lo aggiorni prendendo
i
> 5 dati più recenti.
> giorni Valore
> 1 12
> 2 13
> 3 14
> 4 15
> 5 16
>
> Vale a dire che al giorno X il grafico rappresenti i giorni X,
> X-1,X-2,X-3,X-4.
Ciao Alejandro,
- i giorni sono dei numeri (come li hai scritti), oppure sono delle date
(numeri seriali formattate come "giorno")?
- i giorni sono ordinati in maniera crescente?
- ci potrebbero essere giorni ripetuti?
Secondo me si potrebbe risolvere senza macro.
L'uso della macro è una tua particolare esigenza?
--
Ciao
Ignazio
> la colonna giorni contiene dei numeri progressivi, crescenti e non
ripetuti.
> (se fossero date cambierebbero i termini del problema?).
Cambierebbero le formule da usare.
> La macro è una mia esigenza particolare, nel senso che, da neofita di vb,
> non saprei, al momento, scrivere il codice da solo.
> Se ritieni di poter risolvere la mia richiesta anche senza macro, va bene.
> Apprezzerò anche questa alternativa.
Ci provo senza macro.
L'idea è di riferire il grafico ad un'intervallo dinamico.
Supponiamo che il file si chiama TestOrigineGrafico.xls
Supponiamo che (nel Foglio1) l'elenco dei giorni sia nell'intervallo A1:A32
(in A1 c'è l'intestazione "giorni") e l'elenco dei valori sia
nell'intervallo B1:B32 (in B1 l'intestazione "Valore").
Da "Inserisci > Nomi > Definisci" aggiungi i seguenti nomi di intervalli
dinamici:
ElencoGiorni
riferito a: =SCARTO(Foglio1!$A$1;Foglio1!$C$2;0;MAX(-5;-Foglio1!$C$2);1)
ElencoValori
riferito a: =SCARTO(Foglio1!$A$1;Foglio1!$C$2;1;MAX(-5;-Foglio1!$C$2);1)
Quindi riferisci il grafico agli intervalli dinamici.
Se ad esempio usi un grafico a dispersione:
Valori X: =TestOrigineGrafico.xls!ElencoGiorni
Valori Y: =TestOrigineGrafico.xls!ElencoValori
Da ora in poi, dovrai scegliere in C2 il giorno per visualizzare i dati di
interesse.
Ad esempio, scrivendo 10 nella cella C2, vedrai visualizzato il grafico
relativo all'intervallo A7:B11 (ho supposto, come dicevi nel primo post, che
in A2 c'è scritto 1, in A3 c'è scritto 2, ecc).
Se il giorno dovesse essere quello odierno, potresti inserire in C2 la
formula:
=GIORNO(OGGI())
oppure postresti ridefinire i nomi, sostituendo:
Foglio1!$C$2
con:
GIORNO(OGGI())
> Se posso, ho ancora una domanda che non c'entra con quanto sopra. Perché
se
> in un modulo di vb scrivo:
> Sub EseguiBeep()
> Beep
> End Sub
> Non ottengo alcun beep?
Meglio aprire un'altro 3D.
--
Ciao
Ignazio
Ciao Alejandro,
nessun codice, la soluzione č senza macro.
Se proprio vuoi, si puň scrivere del codice (piů tardi ci posso provare, o
magari altri posteranno soluzioni).
Le formule scarto servono per definire dei nomi dinamici, e non vanno
inserite in nessuna cella.
Procedi cosě:
Inserisci > Nomi > Definisci
- Nomi nella cartella di lavoro: (digita: ElencoGiorni)
- riferito a: =SCARTO(Foglio1!$A$1;Foglio1!$C$2;0;MAX(-5;-Foglio1!$C$2);1)
Aggiungi
- Nomi nella cartella di lavoro: (digita: ElencoValori)
- riferito a: =SCARTO(Foglio1!$A$1;Foglio1!$C$2;1;MAX(-5;-Foglio1!$C$2);1)
Aggiungi
Chiudi
A questo punto hai definito i nomi di 2 intervalli dinamici:
ElencoGiorni
ElencoValori
Per vedere quali sono, digita un numero in C2 (ad esempio 10), quindi vai
in:
Inserisci > Nomi > Definisci
Seleziona un nome definito (ad esempio ElencoGiorni)
Fai clic sulla formula contenuta in "riferito a:"
dovresti vedere evidenziato l'intervallo dinamico (in questo caso
l'intervallo A7:A11)
Fa sapere.
--
Ciao
Ignazio
"Alejandro" ha scritto:
Ciao Alejandro,
credo che sia possibile solo con VBA, ma non sono sicuro se vale la pena
seguire questa via.
Se ne è discusso tempo fa:
"Valore Max del Grafico" :: Ohsen :: 12/04/2005
http://groups.google.it/group/microsoft.public.it.office.excel/browse_frm/thread/1bf2cd7cbb65f839
--
Ciao
Ignazio