Ouverture de sites dans un navigateur (Microsoft Excel)
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]
.