Macro excel gráfico de rango variable

Hola quisiera saber porque no me funciona esto:
If ComboBox1 = "Enero" Then c = 6
If ComboBox1 = "Febrero" Then c = 7
If ComboBox1 = "Marzo" Then c = 8
If ComboBox1 = "Abril" Then c = 9
If ComboBox1 = "Mayo" Then c = 10
If ComboBox1 = "Junio" Then c = 11
If ComboBox1 = "Julio" Then c = 12
If ComboBox1 = "Agosto" Then c = 13
If ComboBox1 = "Septiembre" Then c = 14
If ComboBox1 = "Octubre" Then c = 15
If ComboBox1 = "Noviembre" Then c = 16
If ComboBox1 = "Diciembre" Then c = 17
   ActiveSheet.ChartObjects("Chart 3").Activate
    ActiveChart.SeriesCollection(1).Values = "=Resumen!$N$6:$N$" & c & ";Resumen!$N$19"
    ActiveChart.SeriesCollection(2).Values = "=Resumen!$X$6:$X$" & c & ";Resumen!$X$19"
    ActiveChart.SeriesCollection(3).Values = "=Resumen!$AI$6:$AI$" & c & ";Resumen!$AI$19"
¿Debería estar bien no?
Pues me dice error 1004!

1 respuesta

Respuesta
1
Bueno revisando ese código, la posible causa por la cual pueda que no funcione se debe a que esa c asumo que es una variable, ¿dicha variable lo ideal es que sea declarada y la c hace referencia a que? ¿Una celda o un textbox?
en esta linea "=Resumen!$N$6:$N$" & c & ";Resumen!$N$19", en la segunda N despues del signo $, me parece que hace falta un numero para especificar la coordenada final del rango, igualmente en las demas lineas que estan hacia abajo.
Espero que esta sean las causas, si ud gusta me puede enviar el archivo al correo [email protected] y con gusto lo reviso más detalladamente a ver como le puedo solucionar su inconveniente, recuerde que cualquier duda puede consultar en mi perfil, NO OLVIDAR PUNTUAR Y FINALIZAR LA PREGUNTA.
Si, la "c" esta declarada como integer y hacer referencia al final a una celda, es decir,  en ActiveChart.SeriesCollection(1).Values = "=Resumen!$N$6:$N$" & c & ";Resumen!$N$19" la "c" hace referencia al numero de la celda ya que quiero que sea variable, por eso falta el numero.
Un saludo
A continuación le dejo la rutina con unas lineas corregidas las cuales probé y me funcionaron correctamente, pero ud debe probarlas en su proyecto y ver si trabajan bien, debo aclarar que cambie unas lineas por otras pero igual hacen la misma función, es importante que algunos datos los remplace por los nombres de su proyecto, como por ejemplo el nombre del gráfico y nombre de la hoja, posiblemente puede ser que no funcione por eso, esta macro la copia y la pega tal cual y la prueba, cuando cambie los nombres en mención lo seguro es que después de esta linea le va a salir error pero es por que no ha cambiado los nombres, todo esto debido a que no tengo el archivo de excel para hacer de una vez las adecuaciones ActiveSheet. ChartObjects("Chart 2"). Activate, espero que le sea de utilidad mi ayuda, POR FAVOR NO OLVIDA PUNTUAR Y FINALIZAR LA PREGUNTA, bueno a continuación la rutina:
Private Sub CommandButton1_Click()
Dim c As Integer
If ComboBox1 = "Enero" Then c = 6
If ComboBox1 = "Febrero" Then c = 7
If ComboBox1 = "Marzo" Then c = 8
If ComboBox1 = "Abril" Then c = 9
If ComboBox1 = "Mayo" Then c = 10
If ComboBox1 = "Junio" Then c = 11
If ComboBox1 = "Julio" Then c = 12
If ComboBox1 = "Agosto" Then c = 13
If ComboBox1 = "Septiembre" Then c = 14
If ComboBox1 = "Octubre" Then c = 15
If ComboBox1 = "Noviembre" Then c = 16
If ComboBox1 = "Diciembre" Then c = 17
If ComboBox1 = Empty Then
msg = "Debes seleccionar el mes en el que se va a realizar el TP"
        Style = VbMsgBoxStyle.vbInformation
        Title = "ATENCIÓN"
        response = MsgBox(msg, Style, Title) 'aparece la ventana de advertencia y pregunta
End If
    ActiveSheet.ChartObjects("Nombre del grafico").Activate
    ActiveChart.SeriesCollection(1).Values = Sheets("Nombre de la hoja donde estan los datos").Range("X19,N6:N" & c)
    ActiveChart.SeriesCollection(2).Values = Sheets("Nombre de la hoja donde estan los datos").Range("X19,X6:X" & c)
    ActiveChart.SeriesCollection(3).Values = Sheets("Nombre de la hoja donde estan los datos").Range("AI19,AI6:AI" & c)
'OJO SI LAS  LINEAS ANTERIORES LE FUNCIONAN BIEN, ADECUAR LAS SIGUIENTES LINEAS DE LA MISMA MANERA QUE LAS ANTERIORES, NO SE OLVIDE DE REMPLAZAR LOS DATOS (NOMBRE DEL GRAFICO Y NOMBRE DE LA HOJA DONDE ESTAN LOS DATOS)
    ActiveSheet.ChartObjects("Chart 2").Activate
    ActiveChart.SeriesCollection(1).Values = "=Resumen!$F$6:$F$" & c & ";Resumen!$F$19"
    ActiveChart.SeriesCollection(2).Values = "=Resumen!$J$6:$J$" & c & ";Resumen!$J$19"
    ActiveChart.SeriesCollection(3).Values = "=Resumen!$P$6:$P$" & c & ";Resumen!$P$19"
    ActiveChart.SeriesCollection(4).Values = "=Resumen!$T$6:$T$" & c & ";Resumen!$T$19"
    ActiveChart.SeriesCollection(5).Values = "=Resumen!$Z$6:$Z$" & c & ";Resumen!$Z$19"
    ActiveChart.SeriesCollection(6).Values = "=Resumen!$AD$6:$AD$" & c & ";Resumen!$AD$19"
    ActiveChart.SeriesCollection(7).Values = "=Resumen!$AG$6:$AG$" & c & ";Resumen!$AG$19"
    ActiveSheet.ChartObjects("Chart 7").Activate
    ActiveChart.SeriesCollection(1).Values = "=Resumen!$C$6:$C$" & c & ";Resumen!$C$19"
    ActiveChart.SeriesCollection(2).Values = "=Resumen!$D$6:$D$" & c & ";Resumen!$D$19"
    ActiveChart.SeriesCollection(3).Values = "=Resumen!$E$6:$E$" & c & ";Resumen!$E$19"
    ActiveSheet.ChartObjects("Chart 6").Activate
    ActiveChart.SeriesCollection(1).Values = "=Resumen!$AM$6:$AM$" & c & ";Resumen!$AM$19"
    ActiveChart.SeriesCollection(2).Values = "=Resumen!$AN$6:$AN$" & c & ";Resumen!$AN$19"
    ActiveChart.SeriesCollection(3).Values = "=Resumen!$AL$6:$AL$" & c & ";Resumen!$AL$19"
    ActiveSheet.ChartObjects("Chart 4").Activate
    ActiveChart.SeriesCollection(1).Values = "=Resumen!$G$6:$G$" & c & ";Resumen!$G$19"
    ActiveChart.SeriesCollection(2).Values = "=Resumen!$K$6:$K$" & c & ";Resumen!$K$19"
    ActiveChart.SeriesCollection(3).Values = "=Resumen!$Q$6:$Q$" & c & ";Resumen!$Q$19"
    ActiveChart.SeriesCollection(4).Values = "=Resumen!$U$6:$U$" & c & ";Resumen!$U$19"
    ActiveChart.SeriesCollection(5).Values = "=Resumen!$AA$6:$AA$" & c & ";Resumen!$AA$19"
    ActiveChart.SeriesCollection(6).Values = "=Resumen!$AE$6:$AE$" & c & ";Resumen!$AE$19"
    ActiveSheet.ChartObjects("Chart 5").Activate
    ActiveChart.SeriesCollection(1).Values = "=Resumen!$H$6:$H$" & c & ";Resumen!$H$19"
    ActiveChart.SeriesCollection(2).Values = "=Resumen!$L$6:$L$" & c & ";Resumen!$L$19"
    ActiveChart.SeriesCollection(3).Values = "=Resumen!$R$6:$R$" & c & ";Resumen!$R$19"
    ActiveChart.SeriesCollection(4).Values = "=Resumen!$V$6:$V$" & c & ";Resumen!$V$19"
    ActiveChart.SeriesCollection(5).Values = "=Resumen!$AB$6:$AB$" & c & ";Resumen!$AB$19"
    ActiveSheet.ChartObjects("Chart 20").Activate
    ActiveChart.SeriesCollection(1).Values = "=Resumen!$I$6:$I$" & c & ";Resumen!$I$19"
    ActiveChart.SeriesCollection(2).Values = "=Resumen!$M$6:$M$" & c & ";Resumen!$M$19"
    ActiveChart.SeriesCollection(3).Values = "=Resumen!$S$6:$S$" & c & ";Resumen!$S$19"
    ActiveChart.SeriesCollection(4).Values = "=Resumen!$W$6:$W$" & c & ";Resumen!$W$19"
    ActiveChart.SeriesCollection(5).Values = "=Resumen!$AC$6:$AC$" & c & ";Resumen!$AC$19"
    ActiveChart.SeriesCollection(6).Values = "=Resumen!$AH$6:$AH$" & c & ";Resumen!$AH$19"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas