Sub prova_CaselleTesto()
Dim Topgrafico, moltiplicatoredecremento, leftgrafico, altezzagrafico, altezzassex, maxassex, unitassex, larghezzagrafico, larghezzassey, VarTop, VarLeft, Valorebarra, dimensioneAltezza, dimensioneLarghezza, Top, Left, costanteTop As Integer
VarTop = 19.5 ' differenza tra la posizione top della parte esterna e la parte interna del grafico
VarLeft = 57 'differenza tra la posizione left della parte esterna e la parte interna del grafico, lato destro
costanteTop = 20
costanteLeft = 40
ActiveSheet.ChartObjects("Grafico 1").Select
Set Posgrafico = ActiveSheet.ChartObjects("Grafico 1")
Topgrafico = Posgrafico.Top
leftgrafico = Posgrafico.Left
altezzagrafico = Posgrafico.Height
larghezzagrafico = Posgrafico.Width
Set assex = ActiveChart.Axes(xlValue)
maxassex = assex.MaximumScale
unitassex = assex.MajorUnit
altezzassex = assex.Height
Set assey = ActiveChart.Axes(xlCategory)
larghezzassey = assey.Width
' dimensione e altezza delle barre
For i = 1 To 3
moltiplicatoredecremento = 4
Valorebarra = Cells(i, 2).Value
dimensioneAltezza = (altezzassex * Valorebarra) / maxassex
Top = Topgrafico + VarTop + altezzassex - dimensioneAltezza - costanteTop
decrementoleft = larghezzassey / 3
moltiplicatoredecremento = moltiplicatoredecremento - i
Left = leftgrafico + larghezzagrafico - VarLeft - (decrementoleft * moltiplicatoredecremento) + costanteLeft
Set testo = ActiveSheet.Shapes("Casella di testo " & i)
testo.Top = Top
testo.Left = Left
Next i
End Sub |