Comprobar hyperlink

13/09/2006 - 12:41 por cristina | Informe spam
Hola! tengo una macro en un Excel, lo que hace es ir abriendo otros Excel de
una lista de hipervinculos, seleccionar un texto y copiarlo en el primer
Excel. El problema que tengo es que no se como hacer para comprobar primero
si existe o no el Excel del hipervinculo, si no existe que pase al siguiente
hipervinculo y si existe que copie el trozo de texto y lo pegue en el primer
Excel. Alguien puede ayudarme? como se puede comprobar si el archivo
asociado al hipervinculo existe?
Gracias! :)

Preguntas similare

Leer las respuestas

#1 cristina
14/09/2006 - 09:01 | Informe spam
Muchas gracias Vinchenzo! Me ha sido de gran gran ayuda!! :) Ya funciona todo!



"Vinchenzo vinç" escribió:

"cristina" escribió en el mensaje news:

> ...como se puede comprobar si el archivo asociado al hipervinculo existe?

Hola Cristina,
una opción es mediante la función 'Dir', que por suficiencia y simplicidad usaría yo, por ejemplo:

'*************************
Public Function FicheroExiste(Byval strRutaFichero As String) As Boolean
FicheroExiste = Dir(strRutaFichero, vbSystem Or vbHidden) <> ""
End Function
'*************************

Otra opción es intentando leer sus atributos capturando el error:
'==> Public Function FicheroExiste(Byval strRutaFichero As String) As Boolean
On Error Resume Next
GetAttr strRutaFichero
FicheroExiste = Err.Number = 0
End Function
'==> O lo que sería lo mismo, intentando abrirlo en modo lectura.
'==> Public Function FicheroExiste(Byval strRutaFichero As String) As Boolean
Dim intFf As Integer
On Error Resume Next
intFf = FreeFile()
Open strRutaFichero For Input As #intFf
Close #intFf
FicheroExiste = Err.Number = 0
End Function
'==>
Otra opción es a través de la función de la API de Windows 'PathFileExists':
'************
'En la sección "Declaraciones":
Private Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" ( _
ByVal pszPath As String) As Long

Public Function FicheroExiste(Byval strRutaFichero As String) As Boolean
FicheroExiste = PathFileExists(strRutaFichero)
End Function
'************

Otra opción sería usando el modelo de objetos del sistema de ficheros (FileSystemObject), donde dispones también de su método '.FileExists':
'=> Public Function FicheroExiste(Byval strRutaFichero As String) As Boolean
With CreateObject("Scripting.FileSystemObject")
FicheroExiste = .FileExists(strRutaFichero)
End With
End Function
'=>
Entre otras innecesarias...
Mi sugerencia, la primera.

Saludos
( ! ) Respuestas precedentes en Google:
http://groups.google.com/group/micr...c.es.excel
( i ) Temperancia en el foro:
http://support.microsoft.com/defaul...newsreglas


Respuesta Responder a este mensaje
#2 Gabriel Raigosa
30/09/2006 - 18:42 | Informe spam
Carpeta
Descripción
Dirección

1
** Microsoft Excel *
http://esnips.com/web/GabrielRaigosa

2
Archivos para usar en clase
http://esnips.com/web/RaigosaClase

3
Fechas y Horas
http://esnips.com/web/RaigosaFechasHoras

4
Formato y Formato Condicional
http://esnips.com/web/RaigosaFormatos

5
Foro Excel
http://esnips.com/web/ForoExcel

6
Funciones de Busqueda
http://esnips.com/web/RaigosaBusqueda

7
Funciones de Texto
http://esnips.com/web/RaigosaTexto

8
Funciones Financieras
http://esnips.com/web/RaigosaFinancieras

9
Funciones Logicas
http://esnips.com/web/RaigosaLogicas

10
Graficos con Excel
http://esnips.com/web/RaigosaGraficos

11
Grupo (Sabados)
Privado

12
Grupo (Viernes)
Privado

13
Grupo Excel Septiembre
Privado

14
Juegos con Excel
http://esnips.com/web/RaigosaJuegosExcel

15
Macros con Excel
http://esnips.com/web/Macros-con-Excel

16
Manuales Excel
http://esnips.com/web/RaigosaManuales

17
Paginas WEB
http://esnips.com/web/RaigosaPaginasExcel

18
Practicas - XLS
http://esnips.com/web/RaigosaPracticasXLS

19
Tablas Dinámicas
http://esnips.com/web/RaigosaTablasDinamicas

20
TEST
http://esnips.com/web/GabrielRaigosa-test

21
Validación
http://esnips.com/web/RaigosaValidacion

22
Varios
http://esnips.com/web/RaigosaVarios

23
VBA - Visual Basic para Aplicaciones
http://esnips.com/web/RaigosaVBA



Gabriel Raigosa
http://esnips.com/web/Raigosa
http://esnips.com/web/ForoExcel
"Vinchenzo vinç" escribió en el mensaje
news:OqJ$
"cristina" escribió en el mensaje
news:

...como se puede comprobar si el archivo asociado al hipervinculo existe?



Hola Cristina,
una opción es mediante la función 'Dir', que por suficiencia y
simplicidad usaría yo, por ejemplo:

'*************************
Public Function FicheroExiste(Byval strRutaFichero As String) As Boolean
FicheroExiste = Dir(strRutaFichero, vbSystem Or vbHidden) <> ""
End Function
'*************************

Otra opción es intentando leer sus atributos capturando el error:
'==Public Function FicheroExiste(Byval strRutaFichero As String) As Boolean
On Error Resume Next
GetAttr strRutaFichero
FicheroExiste = Err.Number = 0
End Function
'== O lo que sería lo mismo, intentando abrirlo en modo lectura.
'==Public Function FicheroExiste(Byval strRutaFichero As String) As Boolean
Dim intFf As Integer
On Error Resume Next
intFf = FreeFile()
Open strRutaFichero For Input As #intFf
Close #intFf
FicheroExiste = Err.Number = 0
End Function
'==
Otra opción es a través de la función de la API de Windows
'PathFileExists':
'************
'En la sección "Declaraciones":
Private Declare Function PathFileExists Lib "shlwapi.dll" Alias
"PathFileExistsA" ( _
ByVal pszPath As String) As Long

Public Function FicheroExiste(Byval strRutaFichero As String) As Boolean
FicheroExiste = PathFileExists(strRutaFichero)
End Function
'************

Otra opción sería usando el modelo de objetos del sistema de ficheros
(FileSystemObject), donde dispones también de su método '.FileExists':
'=Public Function FicheroExiste(Byval strRutaFichero As String) As Boolean
With CreateObject("Scripting.FileSystemObject")
FicheroExiste = .FileExists(strRutaFichero)
End With
End Function
'=
Entre otras innecesarias...
Mi sugerencia, la primera.

Saludos
( ! ) Respuestas precedentes en Google:
http://groups.google.com/group/micr...c.es.excel
( i ) Temperancia en el foro:
http://support.microsoft.com/defaul...newsreglas
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida