|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1843
|
[Excel] Riempimento percentuale
Scusate devo fare una cosa piuttosto banale con excel ma non ricordo proprio come si faccia.
In pratica io ho una casella con un valore percentuale e voglio che lo sfondo della casella venga colorato per una porzione che rappresenti quella percentuale così da avere anche un impatto visivo immediato. Non ricordo come si faccia, se è un'opzione di riempimento ma in formato celle non c'è, oppure se è una clip art o qualche altra cosa, non la trovo da nessuna parte. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Un buon metodo, migliore sicuramente del mero utilizzo dei menu prefabbricati di Excel, è questo ( tramite VBA, ovviamente ) :
Codice:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Text = "" Then
Exit Sub
End If
Dim forma As Shape
For Each forma In ActiveCell.Worksheet.Shapes
forma.Delete
Next
Set forma = ActiveCell.Worksheet.Shapes.AddShape(msoShapeRectangle, ActiveCell.Left, ActiveCell.Top, ActiveCell.Width * ActiveCell.Value, ActiveCell.Height)
With forma
.Line.Visible = False
.Fill.Transparency = 0.7
.Fill.ForeColor.RGB = ThisWorkbook.Colors(4)
End With
End Sub
Customizzabile in mille modi diversi, a seconda delle esigenze... |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1843
|
Quote:
|
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
2. Menu Strumenti / Macro / Visual Basic Editor 3. Nell' editor / Colonna A Sinistra / Doppio Click su "Foglio1". 4. Nella parte destra >> Incolla il mio codice. 5. Metti qualche valore stile-percentuale nelle celle che vuoi su Foglio1, e poi Cliccaci sopra per vedere il risultato... |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1843
|
Quote:
Comunque ho scoperto qualcosa di nuovo, non sapevo che in excel si potesse implementare del codice VB. |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Non credo proprio si possa fare semplicemente da menu di Excel. Forse solo con Excel 2007. Dovrei provare... In ogni caso, con VBA arrivi dove vuoi... Anche a fare QUESTO ( Excel 2003 ![]() Se sei interessato, posto anche il mio relativo codice... Se Excel non fosse programmabile, almeno per quanto mi riguarda, perderebbe oltre il 60% del suo valore... |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1843
|
Però...interessante. Io avevo bisogno (bisogno è dir troppo, diciamo che mi piaceva farlo) di una cosa come quella nel file scaricabile dal link, ma non ho capito come poterla fare.
http://www.visioniasiatiche.it/BB/BBeco.rar Grzie comunque delle risposte. |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1843
|
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Per quanto riguarda l'altro file ( .xlsx ) non l'ho visto proprio perchè al momento non ho Excel 2007... |
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1843
|
Quote:
).Ma io avevo provato a mettere il codice solo che me la mostrava solo quando cliccavo sopra la cella mi pare, adesso ci riprovo che magari ho sbagliato qualcosa. |
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Non l'ho ancora mai postato quel codice... Vuoi quello nuovo ? |
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1843
|
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Associa questo codice al foglio desiderato ( nel nostro caso "S3_Palazzetto" ) :
Codice:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Text = "" Then
Exit Sub
End If
If Target.Value > 1 Or Target.Value <= 0 Then
Exit Sub
End If
For Each Target In Range("D3:H30")
If Target.Style = "Percent" Then
Dim forma As Shape
For Each forma In Target.Worksheet.Shapes
If forma.Name = Target.Address Then
forma.Delete
Exit For
End If
Next
Set forma = Target.Worksheet.Shapes.AddShape(msoShapeRectangle, Target.Left, Target.Top, Target.Width * Target.Value, Target.Height)
forma.Name = Target.Address
With forma
.Line.Visible = False
.Fill.Transparency = 0.6
.Fill.ForeColor.RGB = RGB(0, 255, 100)
End With
End If
Next
End Sub
Va lanciato "manualmente" solo la prima volta, basta che fai doppio-Click in una cella percentuale, e poi Invio. Si auto-aggiorna ogni volta che modifichi un valore percentuale che rientra nel Range impostato... Meglio di così... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:49.














).








