Macro para graficar en Libro de excel Protegido

Estimado Experto Tengo el siguiente problema: Tengo una hoja protegida porque es de una archivo en red y no todos los usuarios pueden ver mis hojas de base de datos( por lo que están ocultas), entonces luego de recopilar los datos de ellos, quiero generar un gráfico para reporte, pero el gráfico NO SE GENERA. SOLO SE GENERA SI DESPROTEJO LA HOJA, pero en ese momento existe el riesgo de que alguien modifique los datos. ¿Qué puedo hacer para que mi macro funcione sin desproteger la hoja o que más se puede hacer en este caso? Espero tus comentarios.
Un saludo
  Sub graficos()
    Sheets("grafico").Activate
    Sheets("grafico").Range("A1").Select
    Sheets("grafico").Cells(4, 2) = "ANA"
    Sheets("grafico").Cells(4, 3) = "LAURA"
    Sheets("grafico").Cells(4, 4) = "SHARON"
    Sheets("grafico").Cells(4, 5) = "ELVIRA"
    Sheets("grafico").Cells(4, 6) = "RODOLFO"
    Sheets("grafico").Cells(5, 1) = "A"
    Sheets("grafico").Cells(6, 1) = "E"
    Sheets("grafico").Cells(7, 1) = "D"
    Sheets("grafico").Cells(8, 1) = "N"
    Sheets("grafico").Cells(5, 2) = "9"
    Sheets("grafico").Cells(6, 2) = "15"
    Sheets("grafico").Cells(7, 2) = "22"
    Sheets("grafico").Cells(8, 2) = "44"
    Sheets("grafico").Cells(5, 3) = "9"
    Sheets("grafico").Cells(6, 3) = "18"
    Sheets("grafico").Cells(7, 3) = "21"
    Sheets("grafico").Cells(8, 3) = "44"
    Sheets("grafico").Cells(5, 4) = "0"
    Sheets("grafico").Cells(6, 4) = "24"
    Sheets("grafico").Cells(7, 4) = "183"
    Sheets("grafico").Cells(8, 4) = "44"
    Sheets("grafico").Cells(5, 5) = "0"
    Sheets("grafico").Cells(6, 5) = "25"
    Sheets("grafico").Cells(7, 5) = "182"
    Sheets("grafico").Cells(8, 5) = "44"
    Sheets("grafico").Cells(5, 6) = "0"
    Sheets("grafico").Cells(6, 6) = "25"
    Sheets("grafico").Cells(7, 6) = "182"
    Sheets("grafico").Cells(8, 6) = "44"
    Range("A4:F8").Select
    Charts.Add
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SetSourceData Source:=Sheets("grafico").Range("A4:F8"), PlotBy:=xlRows
    ActiveChart.Location Where:=xlLocationAsObject, Name:="grafico"
End Sub

1 Respuesta

Respuesta
1
Si tienes el archivo en red estará compartido para que puedan utilizarlo los demás usuarios, pues en el momento de desprotegerlo tienes que pasarlo a uso exclusivo y dejar de compartirlo antes, durante el proceso no podrán abrir el archivo para introducir datos tan solo se lo mostrara " si así lo desean" de Solo Lectura, o también les da excel la opción de que cuando vuelva a estar compartido les avisará ¡OJO es mejor avisarles porque si están grabando datos se perderán!
Como en un libro compartido las macros están restringidas y no se ejecutan debes de crearte tú un libro y ponerle esta macro:
Sub abrir()
 ChDir "C:\Escritorio" 'Aqui pones la ruta del directorio solo
    Workbooks.Open Filename:= _
        "C:\Escritorio\Prueba.xls" 'Y aquí la ruta con el nombre del Libro
 'Quitamos las alertas
Application.DisplayAlerts = False
'Comprobamos si el libro esta compartido
If ActiveWorkbook.MultiUserEditing Then
'Si esta compartido, lo ponemos en modo exclusivo
ActiveWorkbook.ExclusiveAccess
End If
'Activamos alertas
Application.DisplayAlerts = True
End Sub
De esta forma tendrás el libro para quitarle la protección a las hojas o al Libro y ejecutar tus macros para los gráficos.
>Un saludo
>Julio
PD:Si te ha servido puntúa y finaliza la consulta, un comentario siempre es bienvenido.
Aclaro lo anterior dicho todo el libro esta protegido para que no se muestren las hojas ocultas.
Estimado experto muchas gracias por tu solución estoy analizando eso pues justamente comprobé que si no esta compartido, el libro se abre como solo lectura en el momento de desprotegerlo. Estoy adaptando la excelente solución de la alertas para que no se pierdan los datos que los usuarios ingresan.
Te comentare más tarde como me fue .
Gracias por tu apoyo!
Ginei
De acuerdo pero no te olvides de finalizar la consulta y puntuarla que sino no no es posible contestar a más personas sus consultas si tengo lleno el casillero.
>Un saludo
>Julio
Hola una vez más!
Tengo dudas respecto a la ayuda que me estas brindando y desde me van a servir de mucha utilidad:
1.-Para empezar me dices que debo crear un nuevo libro, entonces vamos a diferenciar; el nuevo libro se llamara nuevo.xls y el libro de mis macros se llamara proyecto.xls, ambos ubicados en mi escritorio.
2.-Me indicas que debo colocar la ruta del directorio, en eso no tengo problemas, luego me dices que debo colocar la ruta del nombre del libro; a cual de ellos te refieres al nuevo.xls o al proyecto.xls
3.-Esto es lo que más me interesa: ¿En qué momento se va a ejecutar esta macro que me enviaste?, ¿Sera tal vez al intentar abrir el proyecto.xls o al nuevo.xls? ¿O cuándo este abierto el nuevo xls?. ¿O debo crear un botón en alguno de libros para ejecutar esta macro que me diste?... Me gustaría que me orientes mejor en este punto.
4.-Y para mi conocimiento personal quisiera que me expliques que función hace : Application. DisplayAlerts=True
Gracias una vez más por la ayuda que me puedas brindar.
Saludos
Vamos a ver si te enteras, creas un Libro ( tu ejemplo nuevo.xls) en él pones la macro, y evidentemente el libro que quieres abrir porque este ya le tendrás abierto será el otro proyecto.xls.
La macro la ejecutas tú cuando te parezca abres tu Libro nuevo.xls si prefieres avisas a los otros usuarios para dejen de grabar datos y los guarden, acto seguido ejecutas la macro si quieres ponerle un botón en ese libro y asignarle la macro pues bien, si no pulsas Alt+F11 y le das a play en el editor de VBA.
La instruccion Application.DisplayAlerts=True o Application.DisplayAlerts=False son los avisos de Excel que aparecen avisandote de algo por ejemplo al cerrar un libro te pregunta "Quieres guardar los cambios" y tienes que pulsar en Aceptar, si ya hemos guardado los cambios por macro el tener que pulsar en aceptar es una molestia y perdida de tiempo, por eso se evita que te pregunte mientras se ejecuta, y al final de la macro se vuelven a activar los avisos por si estas trabajando en otro libro al mismo tiempo y si no volvemos a activarlo los avisos tampoco saldrían mientras trabajas en el otro libro.
>Un saludo
>Julio
PD: Ya sabes si te ha servido puntúa, comenta y finaliza la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas