Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres toutes versions tester le scrool avec la roulette sans passer par un hooking en addressof

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 !

patricktoulon

XLDnaute Barbatruc
Bonjour a tous
la principal raison des crash excel quand on utilise le hooking de la souris pour avoir le mouse wheel(la roulette)
c'est que le looping avec le (CallnextHook)est asynchrone avec le captage du message de la souris
donc quand une erreur se produit(on va trop vite ou autre)
le looping lui continue parfois au moins une fois même en erreur
résultat comme on déplace le block type du message en mémoire ça crash

je vous propose de tester ceci
ici on va rester dans un do/loop vba classique et le message de la souris sera récupéré par un peekmessage
si il y a une erreur (du au message de la souris non conforme) normalement on a une erreur vba classique
et donc le do/loop est interrompu
donc pas de relance avec un message de la souris erroné donc pas de crash
Vous constaterez que j'augmente l'allocation de la mémoire aussi (64 bits double (longlong ou longPtr))(+2&)

d'autant plus que la dans cette démo je met tout dans le userform
ce qui n'est pas possible avec un code de hooking bien entendu
et ça peut avoir un avantage lorsque l'on veut distribuer un interface(userform) sans devoir l'accompagner de x modules

toujours pareil pour déterminer le rectangle je me sert de ma fonction perso du calendar que j'ai modifié pour ce besoins
donc testez et si ça fonctionne je ferais une ressource au propre

merci d'avance pour votre participation

j'en connais un qui vas ouvrir grand les yeux 🤣

Patrick
 

Pièces jointes

Solution
Bonjour @jurassic pork , @Dudu2 , @Nathe
j'ai mis le controlrelease en optionnel dans la démo (fonctionne aussi dans userform)
j'en ai profité pour mettre un multipage
et dans la page 1 du multipage j'ai mi un label violet
et c'est lui qui pilote le scroll de la page
comme ca on peut mettre un fond sur chaque page vu que ce control n'a pas de propertie backcolor
bien évidemment j'ai ajouté le textbox
dans cette démo donc on a le controlrelease optionnel
et le scroll piloté par un autre control
voila comme ça on est au même niveau que la V 3.0 avec iaccessible (All control working)

patrick
ça correspond à quoi , par rapport a Excel 20xx ?
Hello ChTi160;
Voici ce que m'a répondu Léo , la tête pensante (I.A) de Brave :
Excel 365 et Excel 2024 offrent des fonctionnalités similaires, mais avec des différences notables en termes de mise à jour, de collaboration et de stockage en ligne.

  • Mises à jour : Excel 365 reçoit des mises à jour régulières avec de nouvelles fonctionnalités et des améliorations de sécurité. En revanche, Excel 2024 ne reçoit que des mises à jour de sécurité et des corrections de bugs, sans nouvelles fonctionnalités après l'achat.35
  • Collaboration : Excel 365 permet la co-édition en temps réel, où plusieurs utilisateurs peuvent travailler simultanément sur le même classeur, suivre les modifications et collaborer efficacement. Excel 2024 ne propose pas cette fonctionnalité et ne permet que la collaboration via des copies locales.3
  • Stockage en ligne : Excel 365 inclut 1 To de stockage OneDrive pour les comptes personnels et 1 To par employé pour les comptes professionnels, facilitant le partage et le stockage de fichiers. Excel 2024 ne fournit pas de stockage en ligne, et les fichiers sont stockés localement sur l'appareil.12
  • Performance : Excel 2024 offre des performances améliorées, notamment avec plusieurs classeurs ouverts en même temps, ce qui peut être un avantage pour les utilisateurs qui travaillent sur de grands ensembles de données.6
  • Licence : Excel 365 est basé sur un abonnement, offrant des options de paiement mensuelles ou annuelles. Excel 2024 est disponible avec un paiement unique, offrant une utilisation à vie sans frais supplémentaires


Ami calmant, J.P
 
bonjour à tous
@jurassic pork tu veux bien essayer cette version windowfrompoint uniquement pour 2007 32 bits
Il y a des corrections à effectuer :
1 - sur GetParent :
VB:
Private Declare Function GetParent Lib "user32" (ByVal hWnd As Long) As Long ' Pas de PtrSafe et de LongPtr en VBA < 7
2 - Dans le code Feuille ( pas de controle ActiveX et d'événement d'objet ActiveX dans le VBA des feuilles si VBA < 7 :
Code:
#If VBA7 Then
Private Sub ComboBox2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 SheetMouseWheel ComboBox2
End Sub

Private Sub ListBox2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 SheetMouseWheel ListBox2
End Sub
#End If
C 'est fluide dans le formulaire et bien sûr cela ne fonctionne pas dans la feuille
 
heu c'est quoi ces if vba7?????????????????????????
depuis quand on a vba7 dans excel2007?
dans la feuille tu dois n'avaoir que ça
VB:
Private Sub ComboBox2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
SheetMouseWheel ComboBox2
End Sub

Private Sub ListBox2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
SheetMouseWheel ListBox2
End Sub
 

Pièces jointes

re oui j'ai compris mais pourquoi tu bloque l'effet sur la feuille pour 2007 vb6??????????????
on est pas avec iaccessible là
je comprends pas ton intention
ben c'est simple : Dans Excel 2007 les controles ActiveX qui sont dans des feuilles on ne les voit pas dans le code VBA des feuilles donc pas de mouse move exploitable sur les controles ActiveX


Pas de ComboBox2 dans Feuil2 :
 
Dernière édition:
bon ben alors fait la conversion d'object
VB:
Private Sub ComboBox2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Dim combo As ComboBox
    Set combo = ActiveSheet.OLEObjects("Combobox2").Object
    SheetMouseWheel combo
End Sub
 
je t'ai dit qu'il n'y a pas les événements Activex -> PAS DE MOUSE MOVE
il n'y a pas d'erreur dessus car on peut définir n'importe quelle procédure
 
Dernière édition:
alors tu a un problème avec ton w 7 car moi j'ai bien les events qui marchent sur mon windows 7

a quoi servirait ces controls si on pouvait pas les manipuler avec leur event c'est absurde
Si Sylvanu qui a un Excel 2007 passe par là et peut me confirmer ce que je dis où me dire si j'ai raté une configuration ou que j'ai une version d'Excel 2007 pourrie. Le mien est en anglais mais je ne pense pas que cela influence.
a été cité dans cette discussion 😉
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

P
Réponses
1
Affichages
834
P
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…