Cotas parametrizables en grafico

30/09/2003 - 20:40 por Anonimo | Informe spam
Amigos foreros:

Creo que lo que pido es un imposible. Hay alguna manera (seguramente
mediante código) de asignar los valores Máximo/Mínimo/... (etc) en la escala
del eje de un gráfico a una celda en particular?
La duda parte porque estoy haciendo un gráfico de estadística de ausentismo,
y quiero que:
1) El eje X me cruce en el valor promedio de la muestra.
2) El valor mínimo sea -3*(desvío estándar de la muestra)
3) El valor maximo sea +3*(desvío estándar de la muestra)
4) La unidad mayor y la unidad menor sea el desvío estándar de la muestra

La idea es que esto sea automático, y no andar cambiando a mano los valores
del eje y
Gracias por anticipado.
Julio.
 

Leer las respuestas

#1 Héctor Miguel
02/10/2003 - 07:25 | Informe spam
Hola, Julio !

... asignar los valores ... en la escala del eje de un gráfico a una celda en particular?
1) El eje X me cruce en el valor promedio de la muestra.
2) El valor mínimo sea -3*(desvío estándar de la muestra)
3) El valor maximo sea +3*(desvío estándar de la muestra)
4) La unidad mayor y la unidad menor sea el desvío estándar de la muestra
La idea es que esto sea automático, y no andar cambiando a mano los valores [...]



==> 1.- suponiendo que deseas 'tomar' los valores de las siguientes celdas:
1) promedio => "E1" 2) minimo => "E2" 3) maximo => "E3" 4) desviacion => "E4"
2.- suponiendo que el grafico esta incrustado en 'la hoja' [y que se trata del grafico #1]
copia el siguiente codigo en el modulo de 'la hoja' ==Private Sub Worksheet_Calculate()
Static PrevMed As Double, PrevMin As Double, PrevMax As Double, PrevDesv As Double
With Me.ChartObjects(1)
If PredMed <> Range("e1") Then
.Chart.Axes(xlValue).CrossesAt = Range("e1")
PrevMed = Me.Range("e1")
End If
If PrevMin <> Range("e2") Then
.Chart.Axes(xlValue).MinimumScale = Range("e2")
PrevMin = Me.Range("e2")
End If
If PrevMax <> Range("e3") Then
.Chart.Axes(xlValue).MaximumScale = Range("e3")
PrevMax = Me.Range("e3")
End If
If PrevDesv <> Range("e4") Then
.Chart.Axes(xlValue).MajorUnit = Range("e4")
.Chart.Axes(xlValue).MinorUnit = Range("e4")
PrevDesv = Me.Range("e4")
End If
End With
End Sub
_______
Saludos,
Héctor.
MS-MVP

Preguntas similares