XL 2010 [VBA] Ouverture URL dans un nouvel onglet

F22Raptor

XLDnaute Impliqué
Hello
J'utilise la procédure suivante pour ouvrir une URL (à base de ie.Navigate).
(je ne peux pas utiliser FollowHyperLink qui me cause des plantages).
Cela marche bien, mais cela ouvre une nouvelle fenêtre d'IE, plutôt que d'ouvrir dans un nouvel onglet de la fenêtre existante.

Y a t il moyen, par la même méthode, d'ouvrir un onglet (avec le Set ie , peut-être) ?

Dim ie As Object
Set ie = CreateObject("Internetexplorer.Application")
ie.Visible = True
ie.Navigate "http://www.google.fr"

Merci !

EDIT : apparemment c'est le paramètre TargetFrame sur https://docs.microsoft.com/en-us/pr.../ie-developer/platform-apis/aa752093(v=vs.85)
Mais je ne vois pas comment préciser "la fenêtre déjà ouverte d'IE" !
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Vois ce que tu peux faire avec ce bout de code
(retrouvé dans la poussière de mes archives ;) )
VB:
Sub IE_Nouvel_Onglet()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
With IE
    .GoHome
    .Visible = True
    While .ReadyState <> 4
    DoEvents
    Wend
    'ajouter nouvel onglet
    .Navigate "https://www.excel-downloads.com/threads/vba-ouverture-url-dans-un-nouvel-onglet.20022699/", CLng(2048)
End With
End Sub
 

F22Raptor

XLDnaute Impliqué
Hello Staple,
En effet, l'effet est différent de mon bout de code.
Il ouvre une nouvelle instance d'IE (avec l'onglet par défaut), et dans cette instance, crée un nouvel onglet.
Mais il n'utilise pas la fenêtre d'IE ouverte sur le poste avant de cliquer sur le bouton.

La méthode FollowHyperLink fait bien cela (nouvel onglet dans la fenêtre existante), mais elle plante mon Excel quand je la lance depuis le Userform où j'ai mis le bouton.
Plus précisément, elle plante SI un classeur est actif dans Excel : s'il n'y pas de classeur actif (le classeur avec le Userform est caché), alors FollowHyperLink ne plante pas ... Bizarre !
 

Staple1600

XLDnaute Barbatruc
Re

Ne plante pas chez moi.
VB:
Private Sub CommandButton1_Click()
Dim sURL$
sURL = "https://www.excel-downloads.com/threads/vba-ouverture-url-dans-un-nouvel-onglet.20022699/#post-20169467"
ActiveWorkbook.FollowHyperlink _
    Address:=sURL, _
    NewWindow:=False, _
    AddHistory:=False, _
    ExtraInfo:=Address, _
    Method:=msoMethodGet
End Sub
 

F22Raptor

XLDnaute Impliqué
C'est assez curieux : j'uilise FollowHyperLink sur certains de mes classeurs, et ça marche.
Mais lancé à parti de ce classeur masqué (assez conséquent, avec pas mal de Userforms, de modules), ça me plante Excel (quand un classeur est actif).
Il doit y avoir un conflit qq part, mais c'est trop gros à débugger !
 

F22Raptor

XLDnaute Impliqué
C'est en fait un "environnement" pro ce classeur (que mes collègues ouvrent automatiquement en lecture seule). Il y a des boutons dans la barre d'accès rapide qui permettent d'ouvrir différents UF de ce classeur, qui servent à lancer des actions/fichiers.
Et les feuilles de ce classeur contiennent des petites listes/bases liées aux fonctions des UF.

Et donc c'est plus propre/pro s'il est masqué ! ;)
Cela dit, ce n'est pas le fait qu'il soit masqué qui fait planter XL.

Situation 1 :
Excel démarré, le classeur masqué.
Aucun autre classeur ouvert (fonds gris sur Excel).
Je clique sur mon icône d'accès rapide, ça ouvre l'UF, je clique sur le bouton qui lance le FollowHL, et tout marche bien.

Situation 2 :
Excel démarré, le classeur masqué.
Un classeur est ouvert (nouveau classeur vierge, ou classeur existant).
Je lance l'icône, je clique sur le bouton : ça plante !
 

Staple1600

XLDnaute Barbatruc
Re

Et donc c'est plus propre/pro s'il est masqué !
C'est juste un point de vue esthétique, pas fonctionnel.
(Là encore, je mets en avant le KISS ;) )

La seule chose qui compte c'est que l'utilisateur final utilise un outil qui ne plante pas ;)

Ce qui n'est pas actuellement le cas.

NB: Plutôt que de masquer, pourquoi ne pas transformer ton classeur en *.xlam ?
 

F22Raptor

XLDnaute Impliqué
Tout à fait d'accord ! :)

Cela dit, ça ne change rien : quand j'affiche le classeur, c'est même "pire", car dans ce cas, par définition, il y a un classeur actif, celui-là !
Et donc classeur actif=plantage !

Au moins s'il est masqué, pas de plantage si le user n'a rien ouvert dans XL !

Mais bon du coup, je passe par Navigate : ça marche bien, le seul (léger) souci étant la nouvelle fenêtre IE.
 

Discussions similaires

Réponses
8
Affichages
632

Statistiques des forums

Discussions
312 196
Messages
2 086 092
Membres
103 116
dernier inscrit
kutobi87