Condividi:        

[Excel] Grafici ed etichette

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] Grafici ed etichette

Postdi wittelsbach » 14/09/06 16:57

Ecco il problema:
in Excel, volevo creare un grafico con nomi in verticale e numeri nelle coordinate orizzontali.
Volevo che, ad ogni aggiornamento, le linee dei nomi (orizzontali), si prolungassero verso destra, facendo in modo però che il nome dell’etichetta rimanesse solo sull’ultimo aggiornamento.
Non riesco a fare quest’ultima operazione, visto che, dopo ogni dato aggiunto, viene riscritta anche l’etichetta, creando così troppa confusione.
Qualcuno può aiutarmi?
wittelsbach
Utente Senior
 
Post: 249
Iscritto il: 17/09/05 08:55

Sponsor
 

Postdi Anthony47 » 17/09/06 02:40

Scusa, non ho capito quale etichetta viene riscritta ad ogni aggiornamento.

Ciao,
Avatar utente
Anthony47
Moderatore
 
Post: 19440
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi wittelsbach » 17/09/06 07:54

L'etichetta dati corrispondente al valore. Ad esempio:
ho un valore che ad ogni aggiornamento oscilla, creando quindi un grafico a linee che si protrae verso l'asse X. Vorrei che comparisse però solo l'etichetta dell'ultimo valore aggiornato. Per cui se ho i seguenti valori: 5, 10, 15, 21, non voglio che nel grafico compaia l'etichetta di tutti e quattro i valori, bensì solo dell'ultimo, ovvero 21.
Il problema sta nel fatto che se nelle opzioni imposto "visualizza etichetta dati", excel le fa comparire tutte.
wittelsbach
Utente Senior
 
Post: 249
Iscritto il: 17/09/05 08:55

Postdi Alexsandra » 17/09/06 08:12

Da molto non faccio grafici, ma dovrebbe esserci un'opzione tipo "Unire etichette" in opzioni grafico.
Che versione hai di Excel?
se non risolvi puoi postare un esempio?
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi wittelsbach » 17/09/06 12:05

E' Excel 2002.
Unisci etichette non l'ho trovato. In realtà usando VBA potrei risolvere solo speravo ci fosse un modo più semplice......
Comunque ecco l'immagine: nell'esempio vorrei che tutte le etichette "Luca" sparissero, eccetto quella con l'ultimo valore.

http://mio.discoremoto.alice.it/dwyw/immagine2
wittelsbach
Utente Senior
 
Post: 249
Iscritto il: 17/09/05 08:55

Postdi wittelsbach » 18/09/06 20:08

cliccando sull'immagine non preoccuparti dell'errore, premi ok e si aprirà la pagina.
wittelsbach
Utente Senior
 
Post: 249
Iscritto il: 17/09/05 08:55

Postdi Anthony47 » 18/09/06 23:53

Secondo me non esiste la possibilita' di assegnare l' etichetta solo a uno specifico punto di una serie, se non da vba. Cosa che tu avevi gia' pensato di fare.

Hai gia' una macro per fare questo?

Ciao,
Avatar utente
Anthony47
Moderatore
 
Post: 19440
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi wittelsbach » 19/09/06 09:48

Pensavo anch'io, infatti, fosse impossibile. Però non si sa mai.
Ho quindi risolto col VBA. Devo solo migliorare le istruzioni con il "Case" che mi dà alcuni problemi.

Grazie a tutti. Ciao.
wittelsbach
Utente Senior
 
Post: 249
Iscritto il: 17/09/05 08:55

Postdi Anthony47 » 19/09/06 10:40

In realta' il problema deriva dalla dinamicita' del grafico (cioe' dal fatto che si aggiungono punti su una serie di dati).
Infatti excel consente di assegnare una etichetta a un solo punto di una serie, con una procedura da certosino:
-selezioni la curva della serie
-vai sul punto che vuoi modificare, lo selezioni; il formato del cursore cambia in trattino verticale con frecce su/giu (come <--> ma verticale)
-tasto destr, scegli Formato dati, poi Tab "Etichette dati", spunti quello che vuoi
-ripeti su altre serie e altri punti
Queste sono configurazioni indicizzate, cioe' valgono per la serie N e il punto M; quindi aggiungendo un altro punto al grafico queste impostazioni rimangono.

Per fare quello che chiedevi su tutti i grafici del foglio, io userei questa macro:
Codice: Seleziona tutto
Sub LastSer()
'
Dim pts As Points
Dim CSeries As Integer
Dim CChart As Integer

'Numero di grafici
CChart = ActiveSheet.ChartObjects.Count
MsgBox ("Ci sono " & CChart & " Grafici")

For CC = 1 To CChart

'Azzera labels
    ActiveSheet.ChartObjects(CC).Activate
    ActiveChart.ChartArea.Select
    ActiveChart.ApplyDataLabels AutoText:=True, LegendKey:=False, _
        HasLeaderLines:=False, ShowSeriesName:=False, ShowCategoryName:=False, _
        ShowValue:=False, ShowPercentage:=False, ShowBubbleSize:=False

'Numero di serie:
CSeries = ActiveChart.SeriesCollection.Count

'MsgBox ("Ci sono " & CSeries & " serie")

'===Assegna label di serie all' ultimo Punto di ogni serie
For I = 1 To CSeries
Set pts = ActiveSheet.ChartObjects(CC).Chart. _
    SeriesCollection(I).Points
PC = pts.Count
pts(PC).ApplyDataLabels Type:=xlDataLabelsShowNone, LegendKey:=False, ShowSeriesName:=True


'==Eventuale formattazione del Carattere del Nome Serie
'== modificare, commentare o scommentare secondo i bisogni
    ActiveChart.SeriesCollection(I).DataLabels.Select
'    Selection.AutoScaleFont = True
    With Selection.Font
        .Name = "Arial"
        .Size = 8
'        .Underline = xlUnderlineStyleSingle
'        .ColorIndex = xlAutomatic
'        .Background = xlAutomatic
    End With
'===

Gnex:
Next I     'Ripeti per Serie

Next CC    'Ripeti per Grafico
   
ActiveSheet.ChartObjects(1).Activate
ActiveChart.ChartArea.Select
ActiveSheet.Select
End Sub

Ci sono molte righe che possono essere eliminate, se non evono essere utilizzate.
Pero' non mi sembra ottimizzata; prenderei quindi volentieri visione del tuo codice.

Ciao,
Avatar utente
Anthony47
Moderatore
 
Post: 19440
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi wittelsbach » 19/09/06 13:56

la macro che hai proposto è molto più complessa della mia reale necessità.
Non avevo, per esempio, bisogno di far ripetere il tutto su altri grafici.
Comunque ti ringrazio perché mi potrebbe essere utile visto che è sicuramente migliore della mia.
Il codice che ho abbozzato è piuttosto scarno ma sufficientemente efficace (ecco la parte centrale):

Worksheets("foglio1").Application.Goto Reference:="grafdati"
Selection.Find("serie1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, -1).Select

If ActiveCell = "2" Then

Sheets("Grafico1").Select
ActiveChart.SeriesCollection(1).DataLabels.Select
ActiveChart.SeriesCollection(1).Points(1).DataLabel.Select
Selection.Delete
Else

If ActiveCell = "3" Then

Sheets("Grafico1").Select
ActiveChart.SeriesCollection(1).DataLabels.Select
ActiveChart.SeriesCollection(1).Points(2).DataLabel.Select
Selection.Delete
Else

End If
End If
wittelsbach
Utente Senior
 
Post: 249
Iscritto il: 17/09/05 08:55


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Grafici ed etichette":


Chi c’è in linea

Visitano il forum: Nessuno e 109 ospiti