Macro para gráficos en excel

Mi pregunta es cómo puedo hacer con una macro para que en una hoja protegida, con los datos de una tabla se genere un gráfico(por ej. De barras)y luego de modificarlo e imprimirlo lo pueda eliminar. ¿Recuerda qué la hoja debe estar protegida en forma permanente. Es posible?.

1 respuesta

Respuesta
1
Crea una tabla de datos de A1 a D3 en la Hoja1 protegela con la contraseña "lolailo" y ejecuta esta macro.
Sub Macro1()
ActiveSheet.Unprotect Password:="lolailo"
Range("A1:D3").Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Hoja1").Range("A1:D3"), PlotBy:= _
xlRows
ActiveChart.Location Where:=xlLocationAsObject, Name:="Hoja1"
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveSheet.Shapes("Gráfico 1").IncrementLeft -83.25
ActiveSheet.Shapes("Gráfico 1").IncrementTop -62.25
ActiveWindow.Visible = False
Windows("Libro1").Activate
Columns("E:I").Select
ActiveSheet.PageSetup.PrintArea = "$E:$I"
ActiveWindow.SelectedSheets.PrintPreview
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Range("J2").Select
ActiveSheet.ChartObjects("Gráfico 1").Activate
ActiveChart.ChartArea.Select
ActiveWindow.Visible = False
Selection.Delete
Cells.Select
ActiveSheet.PageSetup.PrintArea = Selection.Address
ActiveSheet.Protect Password:="lolailo"
End Sub
Hace lo que solicitabas, adecuala a tus necesidades
No entiendo, podrías enviarme un ejemplo visual a mi mail adkan arroba yahoo punto com punto ar. Gracias
Si el gráfico tiene que ir colocado en la misma hoja no hay más remedio que durante el proceso de la macro desproteger, generar el gráfico, imprimir, borrar y volver a proteger.
Si el gráfico se puede generar en otra hoja entonces no es necesario la desprotección.
Mi consejo es que si no quieres desproteger en ningún momento, crea una hoja veryhidden para que el usuario no pueda verla si no es por código y esta la utilices para la impresión del gráfico, cuando la necesites la muestras generas el gráfico en ella, imprimimes ya la vuelves a eliminar.
Antes que nada te agradezco la atención.Te cuento que la macro que me enviaste no se ejecuta completa. Llega hasta la sentencia "ActiveSheet.Shapes("Gráfico 1").IncrementLeft -83.25
ActiveSheet.Shapes("Gráfico 1").IncrementTop -62.25" y ahi se detiene y al depurarla aparecen en amarillo estas lineas.Lo que quisiera saber es si es posible seleccionar el grafico generado con una macro, porque el problema que he tenido es que cada grafico que se genera se hace con un nombre distinto y luego la macro para seleccionarlo "no lo encuentra".Es posible seleccionarlo con una macro luego de generarlo?.Gracias
Si, no tuve en cuenta el cambio de nombre al borrar el grafico , para solucionarlo
despues del End With pon la siguiente linea
NOMGRAF = Replace(ActiveChart.Name, ActiveSheet.Name & " ", "")
Y ahora donde ponga "Gráfico 1" sustitúyelo por el nombre de la variable NOMGRAF.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas