dans mon code j aimerai boucler sur toutes les cellules du usedrange mais ne prendre que les cellules qui ont un hyperlink , comment dois je faire ? merci pour votre aide.
Re : comment vérifier si une cellule contient un lien hypertexte
Re; salut Efgé
Bon bah je livre aussi, histoire d'entrer dans le jeu
Code:
Sub a()
Dim c As Range, p As Range
For Each c In Selection
If c.Hyperlinks.Count = 1 Then
If p Is Nothing Then
Set p = c
Else
Set p = Application.Union(p, c)
End If
End If
Next c
MsgBox p.Address
End Sub
PS1: Crédits à Messieurs kjin et pierrejean que je salue au passage
PS2: Efgé, ta boucle est moins bouclée que la mienne, et donc je l'adopte illico
Re : comment vérifier si une cellule contient un lien hypertexte
Re
Donc la précédente avec la sauce Efgé dedans
Code:
Sub b()
Dim c, p As Range
For Each c In ActiveSheet.Hyperlinks
If p Is Nothing Then
Set p = Range(c.Range.Address)
Else
Set p = Application.Union(p, Range(c.Range.Address))
End If
Next c
MsgBox p.Address
End Sub
Re : comment vérifier si une cellule contient un lien hypertexte
Re,
La version conjointe avec moins de ligne mais peut être pas plus rapide (mais j'aime bien le IIf, même si il faut souvent s'en méfier):
VB:
Sub Test2()
Dim C As Hyperlink, p As Range
For Each C In ActiveSheet.Hyperlinks
Set p = Union(Range(C.Range.Address), IIf(p Is Nothing, Range(C.Range.Address), p))
Next C
MsgBox p.Address
End Sub
Re : comment vérifier si une cellule contient un lien hypertexte
Re
Tu as raison, le IIF a ses détracteurs
mais pas le Switch
Code:
Sub Test3()
Dim C As Hyperlink, p As Range
For Each C In ActiveSheet.Hyperlinks
Set p = Union(Range(C.Range.Address), Switch(p Is Nothing, Range(C.Range.Address), Not p Is Nothing, p))
Next C
MsgBox p.Address
End Sub
Re : comment vérifier si une cellule contient un lien hypertexte
Re
Efgé:
Nos deux codes précédents ont un léger problème
Alors je retire les oignons et je mets le String
Code:
Sub Test4()
Dim C As Hyperlink, a$
For Each C In ActiveSheet.Hyperlinks
a = a & C.Range.Address & ","
Next C
'MsgBox Range(Left(a, Len(a) - 1)).Address
'Si il faut vraiment sélectionner ;o)
Range(Left(a, Len(a) - 1)).Select
End Sub