............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Enlace a hoja predeterminada de un libro excel

Ver el tema anterior Ver el tema siguiente Ir abajo

Enlace a hoja predeterminada de un libro excel

Mensaje por Esgrimidor el Miér Ago 12, 2009 10:58 am

Hyperlinks a hoja predeterminada de un libro excel

Me gustaría en un hyperlink, de los que podemos crear en word o en otro libro excel poder abrir un libro Excel por una hoja del mismo predeterminada por su nombre o por su identificación.

Cómo se puede hacer ?

Gracias

Esgrimidor

Masculino Cantidad de envíos : 60
Edad : 50
Ciudad - Pais : Santa Cruz de Tenerife
Version de Excel : XP
Fecha de inscripción : 28/06/2009

Volver arriba Ir abajo

Re: Enlace a hoja predeterminada de un libro excel

Mensaje por P@li el Miér Ago 12, 2009 1:33 pm

Esgrimidor,
No creo que haya tema vinculado entre hyperlink y APIs de Windows, al parecer tampoco se puede hacer eso por medio de DDE, ni de ninguna forma común que yo conosca.
Se me ocurre que podrías hacer, pero de ninguna manera voy a explicar lo que hace, ni como, ni voy a dar más detalles.

Abrí un bloc de notas, y pega el código que dejo más abajo, despues guardalo como hyperlink.vbs en el escritorio, o donde te parezca mejor, cuando lo ejecutes va a buscar el archivo establecido en la variable libro, si lo encuentra abierto selecciona el rango establecido en la variable rango, si no está abierto lo abre, y si no existe lo crea y lo guarda.

Espero que te sirva.

Código:


'esto es lo que se puede configurar
'todo lo demas dejarlo tal cual como esta
Const libro = "C:\libro4.xls"
Const rango = "Hoja1!a1:b2"
Dim excel

On Error Resume Next
Set excel = GetObject(, "excel.application")
If Err.Number <> 0 Then
    Set excel = CreateObject("excel.application")
End If
AbrirExcelSeleccionarRango excel, libro, rango


Function AbrirExcelSeleccionarRango(excel, libro, rango)
    Dim wb
    Dim rng
    On Error Resume Next
   
    excel.Visible = True

    If getOpenWb(excel, wb, libro) Then
        If wb Is Nothing Then
            Set excel = Nothing
            Set excel = CreateObject("excel.application")
            AbrirExcelSeleccionarRango excel, libro, rango
       exit function
        End If
       
        wb.Activate
        Set rng = wb.Application.Range(rango)

        If Not rng Is Nothing Then
            rng.Parent.Select
            rng.Select
            Set rng = Nothing
        End If
    End If

    Set wb = Nothing
    Set excel = Nothing
End Function

Function getOpenWb(e, wb, fullname)
    Dim fso
    On Error Resume Next
   
    Set fso = CreateObject("scripting.filesystemobject")
    getOpenWb = fso.fileexists(fullname)
    Set fso = Nothing
   
    If getOpenWb Then
        fullname = LCase(fullname)
        Set wb = Nothing
        For Each wb In e.Workbooks
            If LCase(wb.fullname) = fullname Then
                Exit Function
            End If
        Next
        Set wb = Nothing
        Set wb = e.Workbooks.Open(fullname)
    Else
        Err.Clear
        If getOpenWb Is Nothing Then
            Set wb = e.Workbooks.Add(1)
            wb.SaveAs fullname
        End If
        If Err.Number <> 0 Then
            wb.Close False
            Set wb = Nothing
        Else
            getOpenWb = True
        End If
    End If

End Function


Saludos,
Pablo.


Última edición por P@li el Miér Ago 12, 2009 2:16 pm, editado 1 vez (Razón : encontré errores en el código y los corregí)

P@li
Admin

Masculino Cantidad de envíos : 243
Edad : 34
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Enlace a hoja predeterminada de un libro excel

Mensaje por Esgrimidor el Miér Ago 12, 2009 9:18 pm

Muchas gracias Pablo. Le echaré un vistazo y seguro que me voy a aproximando al objetivo.

Esgrimidor

Masculino Cantidad de envíos : 60
Edad : 50
Ciudad - Pais : Santa Cruz de Tenerife
Version de Excel : XP
Fecha de inscripción : 28/06/2009

Volver arriba Ir abajo

Re: Enlace a hoja predeterminada de un libro excel

Mensaje por Esgrimidor el Miér Ago 19, 2009 8:47 pm

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
set wblibro = objExcel.WorkBooks.Open("ubicacion_y_nombre_del_archivo.xls")
With wbLibro
.WorkSheets("nombre_de_la_hoja_que _quieres_que_se_abra").select
End With
Set wbLibro = Nothing
Set objExcel = Nothing


Conseguido.

Muchas gracias

Esgrimidor

Masculino Cantidad de envíos : 60
Edad : 50
Ciudad - Pais : Santa Cruz de Tenerife
Version de Excel : XP
Fecha de inscripción : 28/06/2009

Volver arriba Ir abajo

Re: Enlace a hoja predeterminada de un libro excel

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.