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 de emoren
1
1
emoren, Con los conocimientos que he adquirido con el manejo de la hoja...
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