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! :)
 

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


Preguntas similares