Originariamente inviato da Fijix
Insieme alla spiegazione si accettano file gia pronti all'uso qualora la sola spiegazione sia troppo difficile
Voglia di lavorare saltami addosso.

Il codice che hai postato è già funzionante, a parte l'errata formattazione, tipo i due if sulla stessa riga e qualche altro errore.

codice:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Text = "" Then
Exit Sub
End If
If Target.Value > 1 Then
Exit Sub
End If
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.5
.Fill.ForeColor.RGB = RGB((Int(255 * Target.Value)), 255 - (Int(255 * Target.Value)), 0)
End With
End If
End Sub
Semplicemente devi aprire l'editor vba, fare doppio click sul foglio cui vuoi associare il codice e incollarlo.
Le celle devono essere impostate con lo stile percentuale (l'icona col simbolo % per l'appunto) e solo quelle saranno oggetto della macro.

edit. Avevo la finestra aperta e non mi ero accorto della precedente risposta già data. Scusate.