Bug lorsque lien hypertexte est vide??

jojo2006

XLDnaute Occasionnel
Bonjour à tous voici mon souci je veux récuperer le lien hypertexte d'une cellule dans une variable string (ici appelée Lien_hyper).

Le probleme est lorsque le lien hypertexte de la cellule est vide.



dim Lien_hyper as string

Lien_hyper = Sheets("Feuil1").Cells(2, 1).Hyperlinks(1).Address


Message d'erreur

erreur d'execution '9'

l'indice n'appartient pas à la selection



Comment mettre une condition sur l'existence d'un lien hyper??

Merci à tous
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : Bug lorsque lien hypertexte est vide??

Bonjour Jojo, le Forum

Trois méthodes pour le prix d'une !! :)


Code:
Sub [B]TestHyperlinkIfEndIf[/B]()
Dim Lien_hyper As String
Dim R As Range
Dim x As Byte
Set R = Sheets("Feuil1").Cells(2, 1)
x = R.Hyperlinks.Count
If x = 0 Then
    MsgBox "Pas de lien"
Else
    Lien_hyper = R.Hyperlinks(1).Address
        MsgBox Lien_hyper
End If
End Sub


Code:
Sub [B]TestHyperlinkOnError[/B]()
Dim Lien_hyper As String
Dim R As Range
Set R = Sheets("Feuil1").Cells(2, 1)
On Error GoTo Out
    Lien_hyper = R.Hyperlinks(1).Address
        MsgBox Lien_hyper
Exit Sub
Out:
    If Err.Number = 9 Then
        MsgBox "Pas de lien"
    Else
        MsgBox "une erreur non gérée s'est produite " & Err.Number & " " & Err.Description
    End If
End Sub



Code:
Sub [B]TestHyperlinkResumeNext[/B]()
Dim Lien_hyper As String
Dim R As Range
Set R = Sheets("Feuil1").Cells(2, 1)
On Error Resume Next
    Lien_hyper = R.Hyperlinks(1).Address
        MsgBox Lien_hyper
On Error GoTo 0
End Sub


Bon Appétit
@+Thierry
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : Bug lorsque lien hypertexte est vide ou incorrect??

Bonjour Jojo, le Forum

Comment ça "sais tu comment mettre une condition sur l'existence du lien??"

Dans la première Sub "TestHyperlinkIfEndIf" si x = 0, c'est bien un test vu que x représente => R.Hyperlinks.Count...

Les deux autres codes sont, quant à eux, basés sur une gestion d'erreur...

Bon Aprèm
@+Thierry
 

jojo2006

XLDnaute Occasionnel
Re : Bug lorsque lien hypertexte est vide??

tout à fait thierry !! (meme pas fais exceprès)
si le lien est vide X=0

mais si le lien n'est pas vide mais incorrect (par exemple si le repertoire cible a été supprimé)
et donc X=1. Mais le programme plante si le lien n'existe pas.


en fait j'aimerai faire une condition si lien "non vide" ET lien "existe"

Le X répresente la condition "vide" ou "non vide"

mais aucune condition sur l'existence.


Une idée??

merci
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : Bug lorsque lien hypertexte est vide??

Bonsoir Jojo, le Forum

Avec un "FSO"....(FileSystemObject)

Code:
Option Explicit
Sub FileCheck()
Dim FSO As Object
Dim TheLink As String
 
[COLOR=green]'A adapter pour ton cas...[/COLOR]
TheLink = "C:\Documents and Settings\Thierry\My Music\Rolling Stones\Streets Of Love.wma"
 
 
Set FSO = CreateObject("Scripting.FileSystemObject")
    If FSO.fileExists(TheLink) = True Then
        MsgBox "Glop Glop"
    Else
        MsgBox "Pas Glop"
    End If
End Sub

Bon Week End je file du bureau

@+Thierry

 

jojo2006

XLDnaute Occasionnel
Re : Bug lorsque lien hypertexte est vide??

salut
en fait c glop mais à moitier. :)

je m'explique,

le code marche impeccable lorsque le lien hyper pointe vers un fichier et non vers un dossier.
Il se trouve que mon projet mes liens pointes tous vers des dossier.

le code du dessus ne permets d'identifier un lien incorrect vers un dossier.

Une idée??:confused:


Merci
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : Bug lorsque lien hypertexte est vide??

Bonsoir Jojo

Toujours dans la même lignée :

Sub FolderOrFileCheck()
Dim FSO As Object
Dim ThePath As String
Dim Rep As String

'A Adapter pour la variable de tes Links :
'ThePath = "C:\My Music\Rolling Stones\Streets Of Love.wma"
ThePath = "C:\My Music\Rolling Stones\"


Set FSO = CreateObject("Scripting.FileSystemObject")
Rep = Dir(ThePath)

If Rep <> "" Or FSO.FileExists(ThePath) = True Then
MsgBox "Glop Glop"
Else
MsgBox "Pas Glop"
End If


End Sub

Bonne Soirée
@+Thierry
 

ChTi160

XLDnaute Barbatruc
Re : Bug lorsque lien hypertexte est vide??

Salut jojo2006
bonsoir mon ami @+Thierry

si ce n'est pas du File c'est du Folder lol
donc ceci doit répondre à ton attente lol
Sub MyFolderNuit()
Dim Fso as Object, Dossier as String
Dossier = "d:\test\"
Set Fso = CreateObject("Scripting.FileSystemObject")
If Fso.FolderExists(Dossier) Then
MsgBox "Le répertoire """ & Dossier & """ existe !!!"
Else
MsgBox "Le répertoire """ & Dossier & """ n'existe pas !!!"
End If
Set Fso = Nothing
End Sub
Bonne fin de Soirée :D
New Edition :eek:
Arffff avec ce tte nouvelle présentation je n'avais pas vu la réponse de @+Thierry
 
Dernière édition:

Discussions similaires

Réponses
21
Affichages
1 K

Statistiques des forums

Discussions
312 492
Messages
2 088 942
Membres
103 989
dernier inscrit
jralonso