Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !
Public Sub HookMouseX(ByVal CtrL As Object, Optional ByVal FenParent As Object = Nothing)
Dim pos As POINTAPI
If Not FenParent Is Nothing Then Set USFForm = FenParent
If Not CtrlHooked Is Nothing Then If CtrlHooked.Name <> CtrL.Name Then UnHookMouse
If plHooking < 1 Then
Set CtrlHooked = CtrL
If Not FenParent Is Nothing Then
rct2 = getControlRectangleForM(CtrL)
Else
rct2 = getControlRectangleWorksheet(CtrL)
CtrL.Activate '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
End If
plHooking = SetWindowsHookExA(WH_MOUSE_LL, AddressOf LowLevelMouseProc, 0, 0)
End If
End Sub
Public Sub UnHookMouse()
' désactive le hook s'il existe
derefige
If plHooking <> 0 Then UnhookWindowsHookEx plHooking: plHooking = 0: Set CtrlHooked = Nothing
End Sub
Sub derefige()
Application.ScreenUpdating = False
If TypeName(CtrlHooked) = "ComboBox" Then Exit Sub
With ActiveWindow
X = .SplitRow
Y = .SplitColumn
frz = .FreezePanes
.FreezePanes = False
DoEvents
If X > 0 Or Y > 0 Then
.SplitRow = X
.SplitColumn = Y
.FreezePanes = frz
End If
End With
Application.ScreenUpdating = True
End Sub
tu a pris parti de tout régler dans le loopingOk, j'ai pas bien compris comment tu peux intervenir sur le Scroll alors qu'on n'a pas la main vu que l'évènement MouseMouve() n'est pas déclenché sur une ListBox en Pane #2 à #4.
Function objectpane()
'extrait de la fonction getControlRectangleWorksheet
GetCursorPos psX ' le curseur se promene on capte ses point X et Y
panIndex = 1 'on considere le pane1 par defaut au départ
With ActiveWindow
'si le point x > que le left de la panes(2) alors panindex= 2
If .Panes.Count >= 2 Then If psX.X > .Panes(2).PointsToScreenPixelsX(.Panes(2).VisibleRange.Left) Then panIndex = 2
'la dessus on va ajouter
'si il y plus de 2 panes alors
'si le point y plus grand que le pane(3).top alors panindex=panindex+2
If .Panes.Count > 2 Then If psX.Y > .Panes(3).PointsToScreenPixelsY(.Panes(3).VisibleRange.Top) Then panIndex = panIndex + 2
End With
End Function
'c'est simple comme un bonjour et c'est dynamique puisque lancé lors du move de la souris avant plhooking dans hookmouse
mes soupcons que j'avais sont confirmé à 100%
dans ton modèle en fait tu n'arrête pas le hook même après être sorti depuis longtemps du moindre control
Interviens quand tu veux, mais utilise ton code et un fichier pour démontrer ce qu'il y a à démontrer au lieu de passer ton temps à critiquer le plus souvent à tors tel ou tel point dans mon code. Si tu sais ce qu'il faut faire, alors fais-le, envoie le fichier et basta.maintenant si ca te fait C..... je n'interviens plus y a pas de soucis reste comme c
We use cookies and similar technologies for the following purposes:
Est ce que vous acceptez les cookies et ces technologies?
We use cookies and similar technologies for the following purposes:
Est ce que vous acceptez les cookies et ces technologies?