|
|
|
![]() |
|
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: 10:44.