Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

comment vérifier si une cellule contient un lien hypertexte

saadmechiche

XLDnaute Junior
bonjour ,

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.
 

Efgé

XLDnaute Barbatruc
Re : comment vérifier si une cellule contient un lien hypertexte

Bonjour saadmechiche, (Re) Bonjour Staple,
J'étais parti, alors je livre....
Pour boucler:
VB:
Sub test()
For Each C In Sheets("Feuil1").Hyperlinks
     MsgBox C.Range.Address, 64, "Une cellule trouvée"
Next C
End Sub
Cordialement
 

Staple1600

XLDnaute Barbatruc
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
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
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
 

Efgé

XLDnaute Barbatruc
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
Cordialement
 

Staple1600

XLDnaute Barbatruc
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
 

Staple1600

XLDnaute Barbatruc
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
 

Discussions similaires

Réponses
5
Affichages
243
Réponses
7
Affichages
506
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…