Steve possède une plage de cellules (A1: A10) qui contient des adresses de sites Web, par exemple www.example.com. Il se demande s’il est possible, dans une macro, d’ouvrir chacune de ces adresses dans un navigateur en une seule fois dans des onglets de navigateur distincts.

Vous pouvez aborder cette tâche de plusieurs manières, et celle que vous choisissez dépend en grande partie de la nature des données de votre feuille de calcul. Si les cellules contiennent des hyperliens actifs (ceux qui, si vous cliquez dessus, l’adresse est ouverte dans un navigateur), vous pouvez utiliser une macro assez simple:

Sub FollowHyperlinks1()

Dim MyRange As Range     Dim hl As Hyperlink

On Error Resume Next     Set MyRange = Range("A1:A10")

For Each hl In MyRange.Hyperlinks         hl.Follow     Next hl End Sub

La macro regarde simplement tous les hyperliens dans la plage A1: A10 et utilise la méthode Follow pour ouvrir chacun d’eux dans votre navigateur par défaut.

En raison de la manière dont votre système d’exploitation transfère les informations d’Excel vers votre navigateur, il est judicieux d’ouvrir votre navigateur avant d’exécuter la macro. La raison en est que, lors des tests, nous avons constaté que vous pouvez en fait vous retrouver avec deux instances du navigateur ouvertes, certaines adresses étant ouvertes dans une instance et d’autres dans l’autre.

Cela se produit apparemment en raison du retard dans l’ouverture de la première instance du navigateur. Si le navigateur est ouvert avant l’exécution de la macro, il n’y a aucun délai et chaque adresse s’ouvre dans un onglet différent de la même instance de navigateur.

Si les adresses de votre feuille de calcul ne sont peut-être pas des hyperliens actifs, vous ne pouvez pas compter sur l’utilisation de la collection Hyperlinks pour la plage.

Au lieu de cela, vous devez regarder la valeur de chaque cellule de la plage:

Sub FollowHyperlinks2()

Dim MyRange As Range     Dim cell As Range     Dim sTemp As String

On Error Resume Next     Set MyRange = Range("A1:A10")

For Each cell In MyRange         sTemp = cell.Value         ThisWorkbook.FollowHyperlink Address:=sTemp     Next cell End Sub

Cette approche utilise la méthode FollowHyperlink pour charger l’adresse dans la variable sTemp. Dans ce cas, peu importe que le contenu des cellules soit des hyperliens actifs ou non; le code tente toujours de les ouvrir dans un navigateur.

Enfin, si vos données ne contiennent pas d’adresses pleinement qualifiées, vous devrez tout de même utiliser une approche différente. Par exemple, Steve a mentionné avoir des adresses telles que www.example.com dans la feuille de calcul, mais une telle adresse ne fonctionnera pas avec les exemples jusqu’à présent. Si vos données manquent http: // au début (ou une variante, telle que https: //), le code n’ouvrira pas l’adresse dans le navigateur. Dans vos données a cette particularité, alors une légère modification de la macro est en ordre:

Sub FollowHyperlinks3()

Dim MyRange As Range     Dim cell As Range     Dim sTemp As String

On Error Resume Next     Set MyRange = Range("A1:A10")

For Each cell In MyRange         sTemp = cell.Value         If InStr(sTemp, "://") = 0 Then             sTemp = "http://" & sTemp         End If         ThisWorkbook.FollowHyperlink Address:=sTemp     Next cell End Sub

Notez que cet exemple examine le contenu de sTemp pour voir s’il contient les caractères « : // ». Sinon, le préfixe http: // est ajouté au contenu de la cellule et Excel tente d’utiliser la méthode FollowHyperlink pour ouvrir l’adresse modifiée.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (11414) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.

Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici: link: / excel-Opening_Sites_in_a_Browser [Ouvrir des sites dans un navigateur].