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

Evenement Scrollbar dans un ActiveX

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 !

Modeste geedee

XLDnaute Barbatruc
Bonjour, une fois n'est pas coutume, j'ai besoin d'aide...🙄
afin de synchroniser 2 listes parallèles(couleur/texte), je cherche à détecter ou bien simuler un évènement sur une scrollbar de textbox ou combobox
la synchro (couleurs) s'effectue en décalé par événement mousemove sur la liste mais pas lors du déplacement du curseur(scrollbar)

- j'ai bien tenté une scrollbar contigüe mais je n'arrive pas à la superposer afin de masquer celle existante qui reste toujours en premier plan
en pièce jointe mise en situation succincte de la problématique (pour une mise en oeuvre beaucoup plus complexe)...
merci à vos lumières...😉


 

Pièces jointes

Re

Suite à un arrêt forcé du progamme, j'ai eu le titre avec la mention (Récupéré) et dans cette version je n'avais pas encore ajouté la macro du retour (pour relancer la synchronisation)

VB:
Private Sub MultiPage1_Change()
  ListBox1.ListIndex = 0: Synchro
End Sub
 

Pièces jointes

Bonjour.
En faisant une modif toute simple dans le classeur joint au #14 ça marcher chez moi.
J'ai simplement mis en commentaire la condition derrière Loop
Synchro continue donc tout simplement à tourner quand on change de page et ça ne gêne en rien le fonctionnement des ScrollBar de la Page 2, et quand on revient à la page 1 il est tout naturellement toujours opérationnel.
Cela dit, c'est un tout petit peu plus fluide si au lieu de Range("Coloridx")(TopIdx + I, 3) on prend TColorIdx(TopIdx + I, 3), avec au début :
VB:
Option Explicit
Private MajIdx As Boolean, TopIdx As Integer, TColorIdx()
Private Sub UserForm_Initialize()
    TColorIdx = Range("Coloridx").Value
    MultiPage1.Value = 0
End Sub
 
Dernière édition:
Bonsour®Merci SI... Merci Dranreb
grâce à vos suggestions j'ai quasiment obtenu ce que je souhaitai ...😉🙄🙂😎
reste plus qu'a intégrer tout ceci dans ...
Je vous en ferai la primeur en cadeau de Noël
😕en tant que Béta Testeurs 😛

Bonjour.
Synchro continue donc tout simplement à tourner quand on change de page et ça ne gêne en rien le fonctionnement des ScrollBar de la Page 2, et quand on revient à la page 1 il est tout naturellement toujours opérationnel.
j'ai réussi à l'occasion à stopper cette synchro inutile quand pas utilisée et qui me turlupinait en terme de ressources 😉


 
Dernière édition:
Bonsoir Modestee geedee

Leeloo : Big. Badabigboom. Big, boom.
Korben : Oui, big badaboom.
Leeloo : Badaboom.
Me rememorre-je quand sur mon écran apparut

NB: J'avais plusieurs classeurs ouverts quand est survenu l'irrémédiable 😉
Et pour fermer Excel obliger de passer par le gestionnaire des tâches.

Ensuite, j'ai ouvert ton classeur seul et là pour le moment pas de soucis
(à part d'ordre esthétique)
 
Re

Suite
Un souci ici quand je clique sur Annuler sur la boite de dialogue pour changer d'image
 
Bonsour®
Me rememorre-je quand sur mon écran apparut
Regarde la pièce jointe 1002248
désolé pour le plantage...🙁
quelques infos sur le contexte du développement :
Developpement
Processeur Dual Core 2,10Ghz T4300
Résolution 1366x768 Testées 1280x768 ;
1024x768;
800x600
Ram 4Go, 2,93 usable
système 32-bit
Windows 10 Family V 1709
Excel 2007
Mémoire 51%
Api's utilisées :
Function GetAsyncKeyState Lib "User32"
'GetCursorPos: renvoie la position de la souris sur l'écran.
Function GetCursorPos Lib "User32"
'GetDC: Renvoie le Handle d'un Contexte d'Affichage hDC (Handle of Device Context)
Function GetDC Lib "User32"
'GetPixel: renvoie la couleur du pixel en fonction des coordonnées spécifiées (X et Y)
GetPixel Lib "gdi32"
 
Re

Testé sur W10 64 bits Excel 2013 32 bits
4Go 3.5 usable
1680x1050

Je ne comprends pas pourquoi ça plante alors que cela fonctionne avec l'image présente dans l'userform.
(La plantage intervient quand je veux changer l'image ou que j'annule le changement d'image)
 
Bonsour®
Un souci ici quand je clique sur Annuler sur la boite de dialogue pour changer d'image
j'avais activé arrêt sur toute les erreurs, sinon le débogage souligne Userform1.show
et dans ce cas pas facile de déboguer...

🙁 un code erreur est généré dans la proc getopenfilename,
celui-ci non traité reste monté sur la proc image9_mousemove
qui est activée lorsque le boite de dialogue disparaît ...le curseur se trouve sur l'image sous-jacente !!!

dans l'editeur VBE
- désactiver arrêt sur toutes les erreurs
- activer l'option arrêt sur les erreurs non traitées :

dans proc image9_mousemove : ajouter on error resume next
VB:
Private Sub Image9_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  Dim dRVB As Double
  On Error Resume Next
  dRVB = GetDcColor
  Lbl_P_RGB = GetRVB(dRVB, 1) & ", " & GetRVB(dRVB, 2) & ", " & GetRVB(dRVB, 3)
  Lbl_P_dec = dRVB
  Lbl_P_Hex = "&h" & Application.Dec2Hex(dRVB, 6)
  Lbl_P_RVB.BackColor = dRVB
End Sub
 

Pièces jointes

Dernière édition:
Re

C'était déjà coché
Avec le On error plus d'erreur
Mais bizarrement, on a l'impression d'un code se lance deux fois
Le curseur mouline disparait puis remouline et enfin la boite de dialogue s'affiche.
Idem quand on survole la nouvelle image.

PS: Je suis en train de tester avec ton classeur ouvert et un autre.
Peut-être est-ce lié?
 
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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…