Evenement Scrollbar dans un ActiveX

Modeste geedee

XLDnaute Barbatruc
Bonjour, une fois n'est pas coutume, j'ai besoin d'aide...:rolleyes:
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...;)

upload_2017-11-30_0-47-22.png

upload_2017-11-30_0-50-37.png
 

Pièces jointes

  • scrollbar.xlsm
    24.7 KB · Affichages: 34

Si...

XLDnaute Barbatruc
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

  • Scrollbar( Multipage).xlsm
    30.7 KB · Affichages: 35

Dranreb

XLDnaute Barbatruc
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:

Modeste geedee

XLDnaute Barbatruc
Bonsour®Merci SI... Merci Dranreb
grâce à vos suggestions j'ai quasiment obtenu ce que je souhaitai ...;):rolleyes::):cool:
reste plus qu'a intégrer tout ceci dans ...
Je vous en ferai la primeur en cadeau de Noël
:confused:en tant que Béta Testeurs :p

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 ;)
Capture01.JPG


Capture02.JPG
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir Modestee geedee

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

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)
 

Staple1600

XLDnaute Barbatruc
Re

Suite
Un souci ici quand je clique sur Annuler sur la boite de dialogue pour changer d'image
Private Sub Image9_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Dim dRVB As Double
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
 

Modeste geedee

XLDnaute Barbatruc
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"
 

Staple1600

XLDnaute Barbatruc
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)
 

Modeste geedee

XLDnaute Barbatruc
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 :
upload_2017-12-10_22-24-54.png

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

  • GD_CouleursV0c 12-2017.xlsm
    3.2 MB · Affichages: 74
Dernière édition:

Staple1600

XLDnaute Barbatruc
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é?
 

Modeste geedee

XLDnaute Barbatruc
Dernière édition: