Visual Basic - Visibilidad de hojas Excel desde Access

Life is soft - evento anual de software empresarial
 
Vista:

Visibilidad de hojas Excel desde Access

Publicado por JCB (2 intervenciones) el 13/08/2017 18:35:42
Tengo un Excel modelo que quiero enviar a mucha gente, pero poniendo en algunas celdas de cada Excel unos datos personales del que lo va a recibir. Para ello, desde un procedimiento de una base de datos de Access voy haciendo copias del Excel modelo, le pongo a cada copia un nombre que identifica al receptor, le cambio algunas celdas y lo guardo. Y luego lo envío por mail a cada uno (esto voy a automatizarlo con Outlook, pero ése es otro tema).
El problema que tengo es que el Excel modelo tiene visibles 12 hojas, una para cada mes, pero al hacer cada copia, modificarla y guardarla desde Access, el Excel que resulta tiene invisibles las 12 hojas (todo el libro Excel); y aunque le digo desde el módulo de Access donde realizo toda esta operación que ponga visibles las hojas de los Excel que va modificando, no hace caso y siguen siendo invisibles al abrirlos.
Me gustaría saber cómo asegurar que las hojas serán visibles al abrir el Excel modificado, pero sin introducir código en el propio Excel, sino desde Access.

Muchas gracias por adelantado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Visibilidad de hojas Excel desde Access

Publicado por Andres Leonardo (1798 intervenciones) el 14/08/2017 15:45:17
Deberas desde access crear el objeto excel

y en ese objeto excel darle al libro la propiedad de que se muestren todas las hojas....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Visibilidad de hojas Excel desde Access

Publicado por JCB (2 intervenciones) el 15/08/2017 23:05:45
Pongo un código de ejemplo más sencillo que el mío, para ver si se ve más claro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Private Sub copiar_Click()
On Error GoTo Err_copiar
 
    Dim XO, XS As Object, i, j As Integer, drc As String
 
    drc = Application.CurrentProject.Path & "/"
    Set XO = GetObject(Format(drc & "origen.xlsx"))
    For j = 1 To 2
        For i = 1 To XO.Worksheets.Count
            Set XS = XO.Worksheets(i)
            XS.Activate
            XS.Cells(1, 2).Value = "Valor " & j
            XS.Visible = True
        Next i
        XO.SaveAs Format(drc & "copia" & j & ".xlsx")
    Next j
    Set XO = Nothing
 
Err_fin:
    Exit Sub
 
Err_copiar:
    MsgBox Err.Number
    MsgBox Err.Description
    Resume Err_fin
 
End Sub

Con esto el resultado es que modifica las celdas, guarda cada archivo con su nombre correcto, pero las hojas de cada nuevo Excel son siempre invisibles al abrirlo, mientras que en el original son visibles todas.
He probado a meter una macro en el Excel origen (en ThisWorkbook) que se ejecute al abrir el Excel, pero el resultado sigue siendo el mismo: todas las hojas de los nuevos Excel son invisibles al abrirlos, mientras que en el original son todas visibles.

Ayuda, por favor. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar