OVH Cloud OVH Cloud

[97] pb avec un controle webbrowser.

1 réponse
Avatar
Orel
bonjour a tous !


j'aimerai réaliser la meme chose que les barre de defilement de mon controle
webbrowser mais avec un controle : SpinButton ou un ScrollBar ....


en fait dans ma userform j'ai un webbrowser et je voudrai remplacé les barre
de défilement du webbrowser par mes propre controle .... je sais ca peu
paraitre absurde mais comme qui dirai .... j'ai mes raison !!! ;o))

Comment faire ??

merci
orel

1 réponse

Avatar
Pascal Engelmajer
Salut,
pas vraiment précis comme question.
de toute façon le controle pour le webbrowser n'est pas WebBrowser mais
DHTML Control Edit afin de pouvoir bidouiller sur les évènement du
document...
Attention au restriction de droits en ligne...
Le reste est une question de patience ..
Un exemple tiré d'un fil avec Michel Pierron, le spécialiste de ce genre de
trucs, pour donner des pistes ...

avec usr1.html sans évènement mais avec des ID pour usage en VBA
//=============================================== Private Sub UserForm_Initialize()
Me.DHTMLEdit1.BrowseMode = True
Me.DHTMLEdit1.LoadURL "usr1.html"
Me.DHTMLEdit1.ActivateActiveXControls = True
End Sub
Private Sub DHTMLEdit1_onclick()
With Me.DHTMLEdit1.DOM
Select Case .activeElement.ID
Case "saisie" 'ID
.activeElement.Value = ""
Case "btnOK" 'ID
ThisWorkbook.Sheets(1).Range("A1").Value
=.all.Item("saisie").Value
Unload Me
Case "btnCancel" 'ID
Unload Me
End Select
End With
End Sub

Private Sub DHTMLEdit1_onmouseover()
With Me.DHTMLEdit1.DOM
Select Case .parentWindow.event.srcElement.ID
Case "btnOK"
.all.Item("btnOK").Style.Color = "red"
If .all.Item("saisie").Value = "" Then
.parentWindow.execScript ("fs()")
End If
Case "btnCancel"
.all.Item("btnCancel").Style.Color = "red"
End Select
End With
End Sub
Private Sub DHTMLEdit1_onmouseout()
With Me.DHTMLEdit1.DOM
Select Case .parentWindow.event.srcElement.ID
Case "btnOK"
.all.Item("btnOK").Style.Color = "green"
Case "btnCancel"
.all.Item("btnCancel").Style.Color = "green"
End Select
End With
End Sub

============================ usr1.html
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> userform ie bis</title>
</head>
<body style="background-color: #99FFCC; color: #336600">
<h2 id=test>Saisie d'un texte</h2>
<span id=temoin valueúlse></span>
<hr>
<input type=password id=saisie style="background-color: #CCFFFF; color:
#FF3300" onFocus="this.value=true" value=''>
saisir votre mot de passe
</div>
<hr>
<button id=btnOK style="color: green">validation</button>
<button id=btnCancel style="color: green">abandon</button>
</body>
<script>
//ie6 requis
var oPopup = window.createPopup();
var oPopBody = oPopup.document.body;
function fs(){
if (saisie.value==''){
oPopBody.style.backgroundColor='yellow';
oPopBody.innerHTML = "Attention !!! <br> vous n'avez pas saisi de mot de
passe.";
oPopup.show(100,150,180,40, document.body);
}
}
</script>
</html>

============================ Dans ton cas il suffit d'intercepter les évènements de Scrolling du
navigateur (document.body.onscroll) à l'aide de
Private Sub DHTMLEdit1_onscroll()
pour les annuler,
de créer un controle adéquat en VBA et de scroller le document HTML
en utilisant
window.pageYOffset,
window.pageYOffset,
document.body.scrollTop,
window.scrollBy(x, y)
pour le vertical par exemple

bon courage
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Orel" <pub[nospam]@owel.fr.st> a écrit dans le message de news:
#
bonjour a tous !


j'aimerai réaliser la meme chose que les barre de defilement de mon
controle

webbrowser mais avec un controle : SpinButton ou un ScrollBar ....


en fait dans ma userform j'ai un webbrowser et je voudrai remplacé les
barre

de défilement du webbrowser par mes propre controle .... je sais ca peu
paraitre absurde mais comme qui dirai .... j'ai mes raison !!! ;o))

Comment faire ??

merci
orel