Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ouverture Page Html dans nouvel onglet (tab)

8 réponses
Avatar
hasco
Bonjour à toutes et tous
je n'arrive pas à faire ouvrir une page html dans un nouvel onglet de
l'instance IE7 en cours.
Pour cela j'utilise une fonction (avec Api Windows) pour savoir si ie7 est
actif, puis une autre pour connaître sa version.
Voici le code :

Const navOpenInNewTab = 800
dim ieApp as Object

Sub testIE()
Dim Adr
Adr = "http://www.adressedusite.fr/index.php"

SetIeApp ' initialise ieApp suivant qu'il est déjà ouvert ou pas

If Not ieApp Is Nothing Then

If GetVersion() >= 7 Then

' LE PROBLEME EST LA : ouverture dans une nouvelle fenêtre au lieu
d'un nouvel onglet

ieApp.navigate Adr, navOpenInNewTab

Else

ieApp.navigate Adr, navOpenInNewWindow

End If

ieApp.Visible = True

End If

'...Suite du traitement

'...Fin
Set ieApp = Nothing

End Sub

8 réponses

Avatar
Jacques93
Bonjour hasco,
hasco a écrit :
Bonjour à toutes et tous
je n'arrive pas à faire ouvrir une page html dans un nouvel onglet de
l'instance IE7 en cours.
Pour cela j'utilise une fonction (avec Api Windows) pour savoir si ie7 est
actif, puis une autre pour connaître sa version.
Voici le code :

Const navOpenInNewTab = 800
dim ieApp as Object




La constante navOpenInNewTab = &h800 ' (Hexadécimal), et non pas 800 en
décimal :

Enum BrowserNavConstants
navOpenInNewWindow = &H1
navNoHistory = &H2
navNoReadFromCache = &H4
navNoWriteToCache = &H8
navAllowAutosearch = &H10
navBrowserBar = &H20
navHyperlink = &H40
navEnforceRestricted = &H80
navNewWindowsManaged = &H100
navUntrustedForDownload = &H200
navTrustedForActiveX = &H400
navOpenInNewTab = &H800
navOpenInBackgroundTab = &H1000
navKeepWordWheelText = &H2000
End Enum

En mettant 800 (décimal) c'est à dire &h320 (Hexadécimal), cela revient à :

navUntrustedForDownload Or navNewWindowsManaged or navBrowserBar

donc pas de nouvel onglet.

--
Cordialement,

Jacques.
Avatar
hasco
Bonjour Jacques et merci de ta réponse rapide mais hélas j'ai déjà fait ce
que tu me suggère, sans résultat....

"Jacques93" a écrit :

Bonjour hasco,
hasco a écrit :
> Bonjour à toutes et tous
> je n'arrive pas à faire ouvrir une page html dans un nouvel onglet de
> l'instance IE7 en cours.
> Pour cela j'utilise une fonction (avec Api Windows) pour savoir si ie7 est
> actif, puis une autre pour connaître sa version.
> Voici le code :
>
> Const navOpenInNewTab = 800
> dim ieApp as Object
>

La constante navOpenInNewTab = &h800 ' (Hexadécimal), et non pas 800 en
décimal :

Enum BrowserNavConstants
navOpenInNewWindow = &H1
navNoHistory = &H2
navNoReadFromCache = &H4
navNoWriteToCache = &H8
navAllowAutosearch = &H10
navBrowserBar = &H20
navHyperlink = &H40
navEnforceRestricted = &H80
navNewWindowsManaged = &H100
navUntrustedForDownload = &H200
navTrustedForActiveX = &H400
navOpenInNewTab = &H800
navOpenInBackgroundTab = &H1000
navKeepWordWheelText = &H2000
End Enum

En mettant 800 (décimal) c'est à dire &h320 (Hexadécimal), cela revient à :

navUntrustedForDownload Or navNewWindowsManaged or navBrowserBar

donc pas de nouvel onglet.

--
Cordialement,

Jacques.



Avatar
Jacques93
hasco a écrit :
Bonjour Jacques et merci de ta réponse rapide mais hélas j'ai déjà fait ce
que tu me suggère, sans résultat....




Désolé, pas d'autre idées, chez moi ça marche ...
--
Cordialement,

Jacques.
Avatar
hasco
Par contre en forçant le format long par &h800&
cela ouvre une nouvelle instance IE7 avec un onglet à la bonne adresse et un
nouvel onglet vide

"hasco" a écrit :

Bonjour Jacques et merci de ta réponse rapide mais hélas j'ai déjà fait ce
que tu me suggère, sans résultat....

"Jacques93" a écrit :

> Bonjour hasco,
> hasco a écrit :
> > Bonjour à toutes et tous
> > je n'arrive pas à faire ouvrir une page html dans un nouvel onglet de
> > l'instance IE7 en cours.
> > Pour cela j'utilise une fonction (avec Api Windows) pour savoir si ie7 est
> > actif, puis une autre pour connaître sa version.
> > Voici le code :
> >
> > Const navOpenInNewTab = 800
> > dim ieApp as Object
> >
>
> La constante navOpenInNewTab = &h800 ' (Hexadécimal), et non pas 800 en
> décimal :
>
> Enum BrowserNavConstants
> navOpenInNewWindow = &H1
> navNoHistory = &H2
> navNoReadFromCache = &H4
> navNoWriteToCache = &H8
> navAllowAutosearch = &H10
> navBrowserBar = &H20
> navHyperlink = &H40
> navEnforceRestricted = &H80
> navNewWindowsManaged = &H100
> navUntrustedForDownload = &H200
> navTrustedForActiveX = &H400
> navOpenInNewTab = &H800
> navOpenInBackgroundTab = &H1000
> navKeepWordWheelText = &H2000
> End Enum
>
> En mettant 800 (décimal) c'est à dire &h320 (Hexadécimal), cela revient à :
>
> navUntrustedForDownload Or navNewWindowsManaged or navBrowserBar
>
> donc pas de nouvel onglet.
>
> --
> Cordialement,
>
> Jacques.
>


Avatar
hasco
Re-Merci
C'est peut-être une question d'installation ou de mise à jour ou des
bloblotements dans les profondeurs abyssales des produits Microsoftiens!

A bientôt peut-être

"Jacques93" a écrit :

hasco a écrit :
> Bonjour Jacques et merci de ta réponse rapide mais hélas j'ai déjà fait ce
> que tu me suggère, sans résultat....
>

Désolé, pas d'autre idées, chez moi ça marche ...
--
Cordialement,

Jacques.



Avatar
Jacques93
hasco a écrit :
Re-Merci
C'est peut-être une question d'installation ou de mise à jour ou des
bloblotements dans les profondeurs abyssales des produits Microsoftiens!

A bientôt peut-être




A tout hasard, le code que j'utilise, et qui fonctionne chez moi (je ne
gère pas la version) :

Option Explicit
Enum BrowserNavConstants
navOpenInNewWindow = &H1
navNoHistory = &H2
navNoReadFromCache = &H4
navNoWriteToCache = &H8
navAllowAutosearch = &H10
navBrowserBar = &H20
navHyperlink = &H40
navEnforceRestricted = &H80
navNewWindowsManaged = &H100
navUntrustedForDownload = &H200
navTrustedForActiveX = &H400
navOpenInNewTab = &H800
navOpenInBackgroundTab = &H1000
navKeepWordWheelText = &H2000
End Enum

Private Sub Command1_Click()
Dim objInstances As Object, objIE As Object
Dim IE As InternetExplorer

Set objInstances = CreateObject("Shell.Application").windows
If objInstances.Count > 0 Then
For Each objIE In objInstances
If UCase(Right(objIE.FullName, 12)) = "IEXPLORE.EXE" Then
MsgBox " Ouverture onglet dans l'instance d'Internet Explorer "
& objIE.LocationURL
objIE.Navigate "faq.vb.free.fr", navOpenInNewTab
Exit Sub
End If
Next
End If
End Sub



--
Cordialement,

Jacques.
Avatar
hasco
Excuse le retard à répondre mais fallait aller chercher du pain

J'ai essayé ta procédure et elle fonctionne correctement chez moi aussi.

Alors peut-être que la difficulté venait de la manière dont je récupérait
l'objet IE par:

Set ieApp = GetObject("", "InternetExplorer.Application")

Même si les objets renvoyés sont de même type, ils ne semblent pas
fonctionner de la même façon dans ta procédure et la mienne. Mystère

En tous cas Merci beaucoup. Le bonjour de Vendée!


"Jacques93" a écrit :

hasco a écrit :
> Re-Merci
> C'est peut-être une question d'installation ou de mise à jour ou des
> bloblotements dans les profondeurs abyssales des produits Microsoftiens!
>
> A bientôt peut-être
>

A tout hasard, le code que j'utilise, et qui fonctionne chez moi (je ne
gère pas la version) :

Option Explicit
Enum BrowserNavConstants
navOpenInNewWindow = &H1
navNoHistory = &H2
navNoReadFromCache = &H4
navNoWriteToCache = &H8
navAllowAutosearch = &H10
navBrowserBar = &H20
navHyperlink = &H40
navEnforceRestricted = &H80
navNewWindowsManaged = &H100
navUntrustedForDownload = &H200
navTrustedForActiveX = &H400
navOpenInNewTab = &H800
navOpenInBackgroundTab = &H1000
navKeepWordWheelText = &H2000
End Enum

Private Sub Command1_Click()
Dim objInstances As Object, objIE As Object
Dim IE As InternetExplorer

Set objInstances = CreateObject("Shell.Application").windows
If objInstances.Count > 0 Then
For Each objIE In objInstances
If UCase(Right(objIE.FullName, 12)) = "IEXPLORE.EXE" Then
MsgBox " Ouverture onglet dans l'instance d'Internet Explorer "
& objIE.LocationURL
objIE.Navigate "faq.vb.free.fr", navOpenInNewTab
Exit Sub
End If
Next
End If
End Sub



--
Cordialement,

Jacques.



Avatar
Jacques93
hasco a écrit :
Excuse le retard à répondre mais fallait aller chercher du pain



Pas de problème, y'a pas que VB dans vie :-)

J'ai essayé ta procédure et elle fonctionne correctement chez moi aussi.

Alors peut-être que la difficulté venait de la manière dont je récupérait
l'objet IE par:

Set ieApp = GetObject("", "InternetExplorer.Application")

Même si les objets renvoyés sont de même type, ils ne semblent pas
fonctionner de la même façon dans ta procédure et la mienne. Mystère

En tous cas Merci beaucoup. Le bonjour de Vendée!




Bonjour aux vendéens, et merci du retour. Il semblerait effectivement
que GetObject ait un comportement étrange avec IE7 (il réagit comme
CreateObject apparemment). Il y a quelques traces sur google, mais pas
vu d'explications.

--
Cordialement,

Jacques.