Duda sobre un documento madre y links relacionados creados con Microsoft Power Point

A sabiendas que tu especialidad es Microsoft Excel, mi drama ahora es con Power Point, quisiera meramente comentarte en caso tengas algún amigo o conocido que pueda ayudarme...
Te comento mi drama, tengo unos cuantos archivos pps para entregar y presentar en un cd, entre esos archivos tengo uno que es mi "página principal" dentro de ellas el nombre del resto de los archivos que mediante links, dándole un clic en los nombres, se me abren los otros archivos, en estos otros archivos, tengo un botón, el cual al darle clic, me regresa a mi "página principal", donde esta el problema... Cuando termino mi presentación, le doy escape a mi "página principal" y ahí visualizo que todos los demás archivos quedaron abiertos... Y me gustaría que cuando le de escape a mi "página principal" se cierren todos los demás abiertos, o en todo caso, cuando le doy clic al botón que me lleva a mi "página principal" ya llegue a cerrarse el archivo.. Es ese mi gran drama... Sabiendo de tu experiencia en Excel, en el cual me ayudaste exageradamente bien, te comento este problema mio, en caso que lo sepas, o por ende si tuvieses alguna cercanía a otro experto quien pueda facilitarte o facilitarme otra mano.. Desde ya viejo mil gracias y Un abrazo fraterno..

1 Respuesta

Respuesta
1
Puedes usar el siguiente código en cada presentación, sólo necesitas asociar la MACRO llamada LlamarPresentacion <span style="font-weight: normal;">al botón </span>con el que mandas llamar a las presentaciones en vez de usar las opciones predeterminadas. Esta MACRO cierra la presentación activa y abre la que tu indiques.
Espero te sea de utilidad
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpszOp As _
String, ByVal lpszFile As String, ByVal lpszParams As String, _
ByVal lpszDir As String, ByVal FsShowCmd As Long) As Long
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Const SW_SHOWNORMAL = 1
Const SE_ERR_FNF = 2&
Const SE_ERR_PNF = 3&
Const SE_ERR_ACCESSDENIED = 5&
Const SE_ERR_OOM = 8&
Const SE_ERR_DLLNOTFOUND = 32&
Const SE_ERR_SHARE = 26&
Const SE_ERR_ASSOCINCOMPLETE = 27&
Const SE_ERR_DDETIMEOUT = 28&
Const SE_ERR_DDEFAIL = 29&
Const SE_ERR_DDEBUSY = 30&
Const SE_ERR_NOASSOC = 31&
Const ERROR_BAD_FORMAT = 11&
Dim sRuta As String
Dim sNombre As String
Function StartDoc(DocName As String) As Long
    Dim Scr_hDC As Long
    Scr_hDC = GetDesktopWindow()
    StartDoc = ShellExecute(Scr_hDC, "Open", DocName, "", "", SW_SHOWNORMAL)
End Function
Sub LlamarPresentacion()
    On Error GoTo Err_LlamarPresentación
    Dim r As Long, msg As String
    'Obtienes la ruta y el Nombre de la presentación actual
    'Todas las presentaciones debería estar en la misca carpeta
    sRuta = Application.ActivePresentation.Path
    sNombre = Application.ActivePresentation.Name
    'Cierras la presentación anterior
    Application.Presentations(sNombre).Close
    'abre la presentación que necesites
    r = StartDoc(sRuta & "\Análisis.pps")
    MsgBox r
    If r <= 32 Then
        'Esto sólo en caso de error
        Select Case r
            Case SE_ERR_FNF
                msg = "No se encontró el archivo"
            Case SE_ERR_PNF
                msg = "Ruta invalida"
            Case SE_ERR_ACCESSDENIED
                msg = "Acceso denegado"
            Case SE_ERR_OOM
                msg = "Desbordamiento de memoria"
            Case SE_ERR_DLLNOTFOUND
                msg = "Librería DLL no encontrada"
            Case SE_ERR_SHARE
                msg = "A sharing violation occurred"
            Case SE_ERR_ASSOCINCOMPLETE
                msg = "Asociación de programa Invalida"
            Case SE_ERR_DDETIMEOUT
                msg = "DDE Fuera de tiempo"
            Case SE_ERR_DDEFAIL
                msg = "DDE Falló transacción"
            Case SE_ERR_DDEBUSY
                msg = "DDE Ocupado"
            Case SE_ERR_NOASSOC
                msg = "Sin asociactión para la extensión del archivo"
            Case ERROR_BAD_FORMAT
                msg = "Programa Invalido"
            Case Else
                msg = "Desconocido"
        End Select
        MsgBox msg
    End If
Exit_LlamarPresentacion:
    Exit Sub
Err_LlamarPresentacion:
    MsgBox Err.Number & "  " & Err.Description
    Resume Exit_LlamarPresentacion
End Sub
Matusalem Maestro tu explicacion, jejejeje... la veo extremadamente complicada por el vocabulario que utilizas, jejeje.. no llego a tanto.. es mas, mi office es 2003 y todo estos comando que me diste no se donde los utilizare, jejeje.. pero de todos modos mil gracias viejo, voy a ir viendo poco a poco, pero lo mas probables que sea de suma utilidad.. mil gracias de veras..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas