Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Scalare l'asse Categorie in un grafico via VBA..

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

Scalare l'asse Categorie in un grafico via VBA..

Postdi Diavolo65 » 02/01/12 14:39

Buongiorno
Ho cercato sul forum, ma non sono riuscito a trovare una risposta al mio problema .
Scarico dei dati da Yahoo Finance, che poi uso per creare un grafico dell’andamento del titolo.
Ora ho modificato una macro in modo da scalare il grafico in base al valore Minimo/Massimo del titolo, ma non mi riesce a scalare l’intervallo di tempo via Macro

Riesco a farlo solo cambiando l’intervallo manualmente per ogni serie.
Infatti se l’intervallo e’ di 5 anni I dati sono compresi tra (AA31:AA1320) – (AF31:AF1320), e cosi via, ma col diminuire del periodo il range con I dati diminuisce, diventera’ (AA31:AA800) – (AF31:AF800) e cosi via…………..
Ma il grafico non si ridimensiona in quanto legge sempre l’intervallo (AA31:AA1320) – (AF31:AF1320)…..

Si puo risolvere in modo automatico ho dovro’ cambiare manualmente ogni volta il valore del range (AAx:AAy) – (AFx:AFy)………….

Questa e’ la macro che uso per scalare il Valore Minimo/Massimo del titolo,
Codice: Seleziona tutto
Sub ScalaGrafico()

Dim ChartVar As Chart
Dim lMax As Long, lMin As Long
Dim DMax As Long, DMin As Long

On Error GoTo ProblemiDiScala
ActiveSheet.Unprotect

    'Assigns the values in the Min and Max ranges to variables.
    With Sheet3
        lMax = .Range("Massimo").Value
        lMin = .Range("Minimo").Value
        DMax = .Range("DataMax").Value
        DMin = .Range("DataMin").Value
       
        'Creates chart object.
        Set ChartVar = .ChartObjects("Chart 32").Chart
     
           
               With ChartVar.Axes(xlValue, xlPrimary)  'Adjusts the price axis as per Min/Max range.....
                   .MinimumScale = lMin
                   .MaximumScale = lMax
               End With
           
    End With
   
ActiveSheet.Protect
Exit Sub

ProblemiDiScala:

    MsgBox "Impossibile aggiornare la scala del Grafico.", vbCritical + vbOKOnly, "Errore di Dimensionamento"

ActiveSheet.Protect
End Sub


Ho provato ad aggiungere......
Codice: Seleziona tutto
 With ChartVar.Axes(xlCategory, xlPrimary)  'Adjusts the Date axis as per Min/Max range.....
                   .MinimumScale = DMin
                   .MaximumScale = DMax
               End With

Ma mi da' errore.......
In attesa…….. ringrazio
Diavolo65
Newbie
 
Post: 9
Iscritto il: 19/12/11 06:57

Sponsor
 

Re: Scalare l'asse Categorie in un grafico via VBA..

Postdi Anthony47 » 02/01/12 17:24

Non hai bisogno di una macro, basta definire due range dinamici e poi usare questi range come origine del grafico. Per alcuni esempi tra le tante cose gia' fatte guarda qui:
viewtopic.php?f=26&t=91176&p=520113#p520113
viewtopic.php?t=93591#p535459
viewtopic.php?t=84968#p486280

Senza dimenticare cosa suggerisce anche la casa madre:
http://office.microsoft.com/it-it/excel ... 09801.aspx

Per qualche suggerimento piu' diretto dovresti spiegare con quale regola vorresti ridimensionare l' area del grafico.

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: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Scalare l'asse Categorie in un grafico via VBA..

Postdi Diavolo65 » 03/01/12 17:01

Ciao Anthony,
Mille grazie ha funzionato alla perfezione.
Effettivamente avevo sentito parlare del Dynamic Range ma non pensavo che potesse essere la risoluzione ai miei problemi.

Per cui ho ulteriormente approfondito l'argomento e' sono riuscito ad utilizzare nella definizione il contatore di Row che gia' avevo.

Infatti ho modificato il tutto come segue:

Codice: Seleziona tutto
Date =OFFSET($AB$31,0,0,$Z$28,1)


Dove Z28 e' la variabile contatore per cui il grafico si estende e/o accorcia in base al numero di row considerate

Grazie ancora
Saluti
Diavolo65
Newbie
 
Post: 9
Iscritto il: 19/12/11 06:57


Torna a Applicazioni Office Windows


Topic correlati a "Scalare l'asse Categorie in un grafico via VBA..":


Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti