Parametre du WebBrowser
- Messages
- 156
- Excel
- 2019 FR 64 Bits
- Inscrit
- 14/07/2015
- Emploi
- Ex-Conducteur Routier de convoi exceptionnel
Bonjour j'ai un fichier Client qui incorpore un WebBrowser
Ce même WebBrowser est paramétré pour afficher un plan par Google Maps.
Au début le fichier fonctionnait mais dans le WebBrowser une notification pour poursuivre.
Maintenant je n'ai plus le plan mais une page tel que l'image ci dessous :
Voici le code :
TextBox20.Text = ("http://maps.google.fr/maps?q=" & TextBox5 & ",+" & ComboBox3 & "+" & ComboBox2 & ", " & ComboBox9)
La suite:
Private Sub Initialise_ListBox1()
Dim MaSourceGoogle As String
Sheets("Feuil2").Activate ' ...........................Sélectionne la feuille
For T = 1 To 29 ' .....................................Boucle sur les Labels
Controls("Label" & T) = Range("A1:AC1").Cells(T) ' Alimente tous les labels
Next T ' ..............................................Fin de Boucle
With ListBox1
TextBox1 = .List(.ListIndex, 0) ' .................Numéro de la Ligne
ComboBox1 = .List(.ListIndex, 1) ' ................Civilité
For T = 2 To 6 ' ..................................Nom Prénom
UserForm2.Controls("TextBox" & T) = .List(.ListIndex, T)
Next T ' ..........................................Fin de boucle
ComboBox2 = .List(.ListIndex, 7) ' ................Code Postal Domicile
ComboBox3 = .List(.ListIndex, 8) ' ................Ville Domicile
For T = 7 To 19 ' .................................Nom Prénom
UserForm2.Controls("TextBox" & T) = .List(.ListIndex, T + 2)
Next T ' ..........................................Fin de boucle
ComboBox4 = .List(.ListIndex, 22) ' ..............Collaborateurs 1
ComboBox5 = .List(.ListIndex, 23) ' ..............Collaborateurs 2
ComboBox6 = .List(.ListIndex, 24) ' ..............Collaborateurs 3
ComboBox7 = .List(.ListIndex, 25) ' ..............Collaborateurs 4
ComboBox8 = .List(.ListIndex, 26) ' ..............Collaborateurs 5
ComboBox9 = .List(.ListIndex, 27) ' ..............Pays
TextBox20 = .List(.ListIndex, 28) ' ..............Lien Google Maps
TextBox2.SetFocus
End With
'*************************************************************
'* Format *
'*************************************************************
TextBox2.Font.Bold = True
ComboBox2 = Format(ComboBox2.Value, "0# ###")
TextBox11 = Format(TextBox11.Value, "(0#) ## ## ## ##")
TextBox16 = Format(TextBox16.Value, "dd mmmm yyyy")
' URL de l'image sur internet
MaSourceGoogle = TextBox20.Value
WebBrowser1.Navigate MaSourceGoogle
End Sub
J'espère que j'ai été explicite sinon je joindrai le fichier si besoin
En vous remerciant
Cordialement
Bonjour,
Tu as très bien expliqué le problème que tu rencontres ...
Cela dit, pour creuser et découvrir ce qui se passe ... tu devrais joindre ton fichier ...
Hello,
Dans son cas je doute que le fichier serve, le pb est bien plus complexe que ce qui apparaitra dans le fichier et vba.
De plus son pb à au moins 2 natures :
1/ Microsoft a fait des changements dans Office depuis 2013, en gros, Internet Explorer étant remplacé par Edge, (pas vu dans les ref VBA son ctrl par contre...), cela crée des tas de pb de compatibilité, qu'Office ne propose même pas gérer par Edge par défaut.
> Ctrl Webbrowser ne marche plus, sur les fichiers version >2013 (mon cas), sans à modifier les clefs registre système pour récupérer ce type de ctrl.
> Cela continuait à fonctionner étrangement par le mode compatibilité des anciens fichier pré-2013, mais Microsoft à eu la gentillesse de supprimer ce mode aussi, il y'a quelques mois.
Perso, je n'ai pas changé les clefs registre, donc je ne pourrai pas beaucoup aider, si tu as une DSI, tu devra leur demander avant car c'est leur responsabilité, à prendre en compte qu'il suffit d'une autre MàJ pour devoir tout à recommencer, en risquant d'avoir des bugs systèmes.
Un lien officiel parlant du pb Webbrowser par microsoft pour 2013 ici :
Concernant l'activation du ctrl webbrowser dans 2016 abordé par un forum :
2/ Concernant Google Map, webbrowser marche comme dit, avec Internet Explorer, du coup, le truc étant obsolète, remplacé par Edge, Google ne gère plus vraiment de liaisons avec, à cause des pb de sécu du à l’obsolescence, donc ça crée des soucis à ce niveau.
Néanmoins voir la solution de Google, si accès à Internet Exploreur (non pas Edge, pas pareil) ça pourrait résoudre le pb :
https://support.google.com/maps/answer/3118069?hl=fr
Possible aussi de changer des clefs registre vu dans ce lien :
http://forum.idimager.com/viewtopic.php?f=57&t=25681&sid=ff0c803d614d87ee95c7c9267a223cf5&start=15
2e solution trouvé qui semble meilleur, il semble possible de changer le navigateur lié à webbrowser, mais là encore je ne peux beaucoup aider, voir ce lien :
Si tu arrive à trouvé une solution, indique là sur le forum, ça permettra d'avoir une archive supplémentaire de ce qu'il faudra faire.
- Messages
- 156
- Excel
- 2019 FR 64 Bits
- Inscrit
- 14/07/2015
- Emploi
- Ex-Conducteur Routier de convoi exceptionnel
Merci Waard pour ton explication très argumentée et complète.
Modifié les clés de registre impossible pour moi car le fichier va être partagé. Chaque personne a une version d'office différente et il met impossible de changer les clés de registre de tous.
Je vais voir pour contourner le problème différament.
Je vais lire tout tes liens peut-être j'y trouverai une solution ou une autre vision de mon fichier
James007 je joins le fichier si tu vois une autre solution.
En attendant je vais me documenter avec l'explication de Waard.
Cordialement
- Messages
- 156
- Excel
- 2019 FR 64 Bits
- Inscrit
- 14/07/2015
- Emploi
- Ex-Conducteur Routier de convoi exceptionnel
Cela va fonctionnait qu'un temps ensuite tu auras le même soucis
J'ai contourné le problème en ouvrant automatiquement une fenêtre sur IE.
Private Sub Initialise_ListBox1()
Dim MaSourceGoogle As String
Sheets("Feuil2").Activate ' ...........................Sélectionne la feuille
For T = 1 To 29 ' .....................................Boucle sur les Labels
Controls("Label" & T) = Range("A1:AC1").Cells(T) ' Alimente tous les labels
Next T ' ..............................................Fin de Boucle
With ListBox1
TextBox1 = .List(.ListIndex, 0) ' .................Numéro de la Ligne
ComboBox1 = .List(.ListIndex, 1) ' ................Civilité
For T = 2 To 6 ' ..................................Nom Prénom
UserForm2.Controls("TextBox" & T) = .List(.ListIndex, T)
Next T ' ..........................................Fin de boucle
ComboBox2 = .List(.ListIndex, 7) ' ................Code Postal Domicile
ComboBox3 = .List(.ListIndex, 8) ' ................Ville Domicile
For T = 7 To 19 ' .................................Nom Prénom
UserForm2.Controls("TextBox" & T) = .List(.ListIndex, T + 2)
Next T ' ..........................................Fin de boucle
ComboBox4 = .List(.ListIndex, 22) ' ..............Collaborateurs 1
ComboBox5 = .List(.ListIndex, 23) ' ..............Collaborateurs 2
ComboBox6 = .List(.ListIndex, 24) ' ..............Collaborateurs 3
ComboBox7 = .List(.ListIndex, 25) ' ..............Collaborateurs 4
ComboBox8 = .List(.ListIndex, 26) ' ..............Collaborateurs 5
ComboBox9 = .List(.ListIndex, 27) ' ..............Pays
TextBox20 = .List(.ListIndex, 28) ' ..............Lien Google Maps
TextBox2.SetFocus
End With
'*************************************************************
'* Format *
'*************************************************************
TextBox2.Font.Bold = True
ComboBox2 = Format(ComboBox2.Value, "0# ###")
TextBox11 = Format(TextBox11.Value, "(0#) ## ## ## ##")
TextBox16 = Format(TextBox16.Value, "dd mmmm yyyy")
' URL de l'image sur internet
MaSourceGoogle = TextBox20.Value
Navigateur
If ComboBox2.Value > 1 Then
WebBrowser1.Navigate MaSourceGoogle
Else
WebBrowser1.Navigate "about:blank"
End If
End Sub
Sub Navigateur()
Dim Browser As SHDocVw.InternetExplorer 'Microsoft Internet Controls
Dim URL As String
Dim MaSourceGoogle As String
MaSourceGoogle = TextBox20.Value
URL = MaSourceGoogle
Set Browser = New InternetExplorer
Browser.Silent = True
Browser.Navigate URL
Browser.Visible = True
Do
Loop Until Browser.ReadyState = READYSTATE_COMPLETE
End Sub
En attendant de trouver mieux.
J'ai lu tous tes liens et en effets le plus simple et de modifier le registre. Mais je reste convaincu que l'on peut contourner le problème.
Je ne clos pas tant que je n'ai pas trouvé
Cordialement
- Messages
- 156
- Excel
- 2019 FR 64 Bits
- Inscrit
- 14/07/2015
- Emploi
- Ex-Conducteur Routier de convoi exceptionnel
Version plus simplifié :
dans les Userforms 2, 3 , 4 et 5 à remplacer par :
' URL de l'image sur internet
MaSourceGoogle = TextBox20.Value
' à partir d'ici on efface tout pour y mettre celà
ShellExecute 0, vbNullString, MaSourceGoogle, vbNullString, vbNullString, 0
If Not ComboBox2.Value = "" Then
WebBrowser1.Navigate MaSourceGoogle
Else
WebBrowser1.Navigate "https://www.google.fr/?gws_rd=ssl#spf=1"
End If
End Sub
et dans un module M_Affichage
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
J'ai beau parcourir tous les sites parlant de cette erreur de non pris en charge par office 2016 je n'ai toujours rien trouver.
Je n'ai pas assez de recul sur le sujet pour y trouver une solution à ce problème
- Messages
- 156
- Excel
- 2019 FR 64 Bits
- Inscrit
- 14/07/2015
- Emploi
- Ex-Conducteur Routier de convoi exceptionnel
Peut être une solution en modifiant la clé de registre dès le départ dans l'ouverture du fichier :
A remplacer par :
Private Sub Workbook_Open()
Call SetSettings("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION\Excel.exe", 11001, "REG_DWORD", False)
MsgBox ("Bonne journée !" & Chr(10) & "Nous sommes le " & Format(Date, "dddd d mmmm yyyy"))
Application.Speech.Speak [A4]
TesteSiDossierExiste
With Application
.DisplayFullScreen = True ' ...........................................................Masquer la barre d'état
.DisplayStatusBar = True ' .............................................................Masquer barre de formule
.DisplayFormulaBar = True ' ............................................................Masquer les onglets
.WindowState = xlNormal ' ..............................................................État de la fenêtre
End With
With ActiveWindow
.DisplayWorkbookTabs = False ' .........................................................Masquer les onglets
.DisplayHeadings = False ' ............................................................Masquer N°ligne et Colonne"
End With
Start
End Sub
et dans le module Démarrage
inserer :
Public Sub SetSettings(Optional strPfad As String, Optional strInhalt As String, _
Optional strTyp As String, Optional bolDeleteKey As Boolean = False)
Dim wshshell As Object
Set wshshell = CreateObject("WScript.Shell")
If bolDeleteKey Then
wshshell.RegDelete strPfad
Else
wshshell.RegWrite strPfad, strInhalt, strTyp
End If
Set wshshell = Nothing
End Sub
et dans le userform ;
' URL de l'image sur internet
MaSourceGoogle = TextBox20.Value
' Nous n'avons plus besoin de ceci
' ShellExecute 0, vbNullString, MaSourceGoogle, vbNullString, vbNullString, 0
If Not ComboBox2.Value = "" Then
WebBrowser1.Navigate MaSourceGoogle
Else
WebBrowser1.Navigate "https://www.google.fr/?gws_rd=ssl#spf=1"
End If
End Sub
En attendant de vous lire
Cordialement
- Messages
- 156
- Excel
- 2019 FR 64 Bits
- Inscrit
- 14/07/2015
- Emploi
- Ex-Conducteur Routier de convoi exceptionnel
Une erreur s'est glissé dans initialisation de la ListBox1 de l'userform3
Je n'arrive plus à voir mon erreur. Pouvez vous m'indiquer?
Le fichier est juste dans le message précédent
Private Sub Initialise_ListBox1()
Dim MaSourceGoogle As String
Sheets("Feuil3").Activate ' ............................................................Sélectionne la feuille
For T = 1 To 15 ' ......................................................................Boucle sur les Labels
Controls("Label" & T) = Range("A1:O1").Cells(T) ' ..................................Alimente tous les labels
Next T ' ...............................................................................Fin de Boucle
With ListBox1
TextBox1 = .List(.ListIndex, 0) ' ..................................................Groupe
ComboBox1 = .List(.ListIndex, 1) ' .................................................Civilité
For T = 2 To 8 ' ...................................................................Nom Prénom
UserForm3.Controls("TextBox" & T) = .List(.ListIndex, T)
Next T ' ...........................................................................Fin de boucle
ComboBox2 = .List(.ListIndex, 9) ' .................................................Code Postal
ComboBox3 = .List(.ListIndex, 10) ' ................................................Ville
ComboBox4 = .List(.ListIndex, 11) ' ................................................Certifié
TextBox9 = .List(.ListIndex, 12) ' .................................................Dare de création
ComboBox5 = .List(.ListIndex, 13) ' ...............................................Pays
TextBox10 = .List(.ListIndex, 14) ' ...............................................Lien Google Maps
TextBox1.SetFocus
End With
'**********************************************************************************************
'* Format *
'**********************************************************************************************
TextBox2.Font.Bold = True
ComboBox2 = Format(ComboBox2.Value, "0# ###")
TextBox6 = Format(TextBox6.Value, "(0#) ## ## ## ##")
TextBox9 = Format(TextBox9.Value, "dd mmmm yyyy")
' URL de l'image sur internet
MaSourceGoogle = TextBox10.Value
'ShellExecute 0, vbNullString, MaSourceGoogle, vbNullString, vbNullString, 0
If Not ComboBox2.Value = "" Then
WebBrowser1.Navigate MaSourceGoogle
Else
WebBrowser1.Navigate "https://www.google.fr/?gws_rd=ssl#spf=1"
End If
End Sub
Merci