IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

ListBox1 & MouseMove


Sujet :

VBA

  1. #1
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2017
    Messages : 49
    Points : 18
    Points
    18
    Par défaut ListBox1 & MouseMove
    Bonjour,
    J'ai une ListBox1 qui contient 20 items. Pour sélectionner l'un d'entre eux, j'utilise ListBox1.MouseMove(). Cela fonctionne très bien.
    Le passage de la souris sur un itemX, ou l'arrêt sur celui-ci, déclenche l'affichage dans Listbox2 d'items associés à l'itemX survolé.
    Mon pb est plus esthétique que fonctionnel. Le voici :
    Si ma dernière sélection effectuée est sur l'item 18 et que je remonte la souris jusqu'à l'tem 2 sans aucun arrêt intermédiaire, parvenu sur l'item 2, la souris 'scintille' (dans mon cas cela décrit un petit cercle à la pointe de la souris) autant de fois que le nb d'items d'écart, soit dans mon exemple 15 fois. J'en déduis que cela doit correspondre à 15 fois le 'MouseMove". Bien entendu le phénomène est identique en descendant.
    Comment peut on éviter ça et figer ce 'scintillement' de la souris ?
    Je vous remercie par avance pour vos solutions.
    Cordialement
    Kirtap

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour,
    Comment peut on éviter ça et figer ce 'scintillement' de la souris ?
    en modifiant quelques lignes du code (que l'on ne voit pas) que tu as écrit ou en lui en ajoutant quelques lignes.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2017
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    Bonjour Unparia
    Voici les lignes, très simples, trop? du MouseMove.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub LD_Niveau0_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
     
    Index_album = LD_Niveau0.TopIndex + 1 + Int((y - 10) / (LD_Niveau0.FontSize * 1.25)) 'orig = + Int((y - 8)
    If Index_album < 0 Or Index_album >= LD_Niveau0.ListCount Then Exit Sub
     
        With Me.LD_Niveau0
            .ListIndex = Index_album
        End With
     
    End Sub
    Merci par avance de tes propositions.
    Kirtap

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Je veux bien tenter de t'aider, mais pas en acceptant de le faire n'importe comment.
    Détaille-moi avec précision ce que tu penses que fait cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Index_album = LD_Niveau0.TopIndex + 1 + Int((y - 10) / (LD_Niveau0.FontSize * 1.25)) 'orig = + Int((y - 8)
    en précisant de manière claire et technique l'utilisation/raison de chacune de ces "valeurs" mises en dur :
    TopIndex + 1 + Int((y - 10)
    FontSize * 1.25
    et en signalant de manière non moins claire ce que tu penses qu'elles représentent sans erreur (donc toujours exactes, quels que puissent - entre autres - être la police, sa taille, son style ...)

    EDIT : il faudra également me dire ce que tu penses de cet exit sub ici :
    If Index_album < 0 Or Index_album >= LD_Niveau0.ListCount Then Exit Sub
    mis dans l'évènement Mouse_move, qui ne peut que se re-déclencher puisque tu es encore sur la listbox et que ta souris va forcément y bouger !

    Et également me dire ce que tu as prévu de mettre en oeuvre pour éviter (tes expressions conditionnelles étant vérifiées) que le listindex se répète inlassablement en cas d'arrêt sur un article ...
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Pour être beaucoup plus "limpide" en ce qui concerne mon lot de réactions :
    Ne crois surtout pas une seule seconde que je ne saurais faire ce "truc". Je viens d'ailleurs d'en faire l'essentiel (tout ou presque tout) en deux coups de cuillères à pot et sans ces très vilains et vraiment peu rigoureux TopIndex + 1 + Int((y - 10) et FontSize * 1.25.
    Je tiens par contre absolument à ce que l'on sache ce que l'on fait, pourquoi on le fait et comment on le fait. Surtout s'il s'agit de soit-disant "perfectionnements" qui n'apportent en réalité pas grand-chose. Voire qui risquent au contraire, dans certains cas, de provoquer des réactions concomitantes (et nous sommes en plein dans ce cas si le listindex de la listbox ainsi traitée doit générer la liste d'articles à mettre dans une seconde listbox ... ce qui peut demander dans certains cas plus de temps qu'il n'en faut pour, en bougeant la souris dans la première listbox, en modifier son propre listindex ! --->> Es-tu conscient du prix que tu fais payer à ton processeur pour cette futilité, oui ? ...)
    Tu as enfin ouvert cette discussion dans la section "générale" de VBA Office, tant et si bien que nous ne savons ni quelle application Office est utilisée, ni sur quoi est posée cette listbox.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  6. #6
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2017
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    Bonjour Unparia,
    A vos questions, mes réponses :
    1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Index_album = LD_Niveau0.TopIndex + 1 + Int((y - 10) / (LD_Niveau0.FontSize * 1.25)) 'orig = + Int((y - 8)
    Avec votre niveau d' Expert éminent, il me semble futile de vous détailler le contenu de cette ligne, qui se justifie pour positionner la souris sur un élément de la Listbox. Ligne de code que j'ai eu l'occasion de rencontrer dans de nombreux exemples sur différents sites.
    2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Index_album < 0 Or Index_album >= LD_Niveau0.ListCount Then Exit Sub
    3)
    Ne sert strictement à rien ... dans le cadre de mon application. Et en ai parfaitement conscience.
    4)
    Je ne me suis pas trop penché sur la souffrance de mon processeur. Mais j'ai bien conscience que celui-ci doit mouliner un peu lorsque je remonte ou descend dans la Listbox, prenant en compte que chaque item est associé à une Listbox2 et plus. Si celui-ci est configuré en obsolescence programmée et que j'ai participé à sa mise hors service de par mon ignorance et mon obstination dans son exploitation actuelle, j'aurais alors certainement beaucoup de regrets. Aussi pour éviter cela, il me faut trouver une solution ou bien procéder différemment avec les Listbox. D'où ma seconde consultation sur ce forum ....CQFD
    5)
    Et qui dit seconde fois dit quelques maladresses de débutant d'où mon omission ou le mauvais choix de la section. Que cela soit clair, il s'agit d'Excel VBA.
    Kirtap

  7. #7
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Avec votre niveau d' Expert éminent, il me semble futile de vous détailler le contenu de cette ligne, qui se justifie pour positionner la souris sur un élément de la Listbox.
    Futile ???? Absolument pas ! Bien au contraire, car le seul fait de faire cet effort te permettra de comprendre les failles ENORMES de telles méthodes !
    Ce n'est donc pas "futile", mais EXTREMEMENT IMPORTANT
    J'attends donc (VRAIMENT) que tu répondes à chacun des points.
    Ligne de code que j'ai eu l'occasion de rencontrer dans de nombreux exemples sur différents sites.
    Grave erreur, que d'acheter au comptant n'importe quoi ! Je ne sais pas où tu as "ramassé" cela, mais ça ne vaut même pas un demi pet ! -->> à jeter à la poubelle !

    J'attends, j'attends ...
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    kirtap
    ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LD_Niveau0.FontSize * 1.25
    fonctionne peut etre sur to pc actuel mais sur un autre pc avec une resolution differente tu aura des surprises

    pour calculer le heit d'un item de listbox il te faut pas calculer en fait

    1. prend un label
    2. met lui le fontsize idem a la liste
    3. pareil pour le fontname
    4. le bold si la liste l'est
    5. le borderstyle=0
    6. le autozize a true
    7. dans la caption met"Aa"
    8. recupere ensuite le height du label voila tu a ton height d'un item de la liste


    dis merci a jacques
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour Patrick
    Merci de me citer, mais dans ce cas précis, il va y avoir nécessairement une petite gymnastique de plus à faire (deux, en fait).
    Sans compter (et là ... je le laisserai faire cette seconde partie car je suis opposé à des méthodes de ce genre, surtout si de nombreux articles dans la seconde listbox), ce que j'ai dit plus haut en ce qui concerne les mouvements de la souris et la durée de la mise à jour dans l'autre listbox.

    Pour ce qui est de la seule partie concernant les listindex au parcours/souris, je viens de le faire complètement, mais refuse de le montrer ici sans qu'il fasse l'effort de réflexion que je lui ai demandé et réponde donc aux questions que je lui ai posées. Tu sais comment je suis, non ? (je ne veux pas contribuer à l'ignorance).

    Et j'ignore encore si listbox sur Feuille de calcul ou sur Userform ... Il n'a pas non plus répondu à cela !

    Pour mémoire :
    tant et si bien que nous ne savons ni quelle application Office est utilisée, ni sur quoi est posée cette listbox.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re:
    bonjour jacques
    oui moi aussi je me le suis fait hier juste pour m'amuser
    le parcours des item et scroll automatique montant descendant au mouve du mulot

    j'ai tenté une sorte de timer pour la mise a jour mais bon c'est jojo

    si je me souviens bien j'ai fait un truc du genre dans le mouve
    ' h etant le resultat du label
    ' y etant le resultat du byval de l'evenement
    'yy etant ma variable index calculé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    With listbox1
     
    yy=y/h +.topindex      'list index 
    if y<3  and yy>-1 then yy=yy-1'scroll haut auto
    if y>list.height-3 and yy<.listcount-1 then yy=yy+1 ''scroll auto bas 
    .listindex=yy
    end with

    je le referait se soir en rentrant au propre


    et voila
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #11
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour Patrick
    C'est là la base du mécanisme. Elle ne suffit pas entièrement (tu verras).
    Un petit cadeau (un morceau de fromage ?) en passant :
    Font n'est pas seulement une propriété. C'est également un OBJET.
    Et donc :
    Set tel_contrôle.Font = tel_autre_contrôle.Font
    fait que toutes les propriétés de l'objet Font passent d'un seul coup de l'un à l'autre (au lieu de passer propriété par propriété, l'une après l'autre)
    (mais ce n'est là qu'un tout petit cadeau ...)
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    oui c'est vrai ca simplifie le code label
    donc selon toi label1.font=listbox1.font fonctionnerait ?
    je testerais ce soir la je part pour la journée
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    donc selon toi label1.font=listbox1.font fonctionnerait ?
    NON !
    relis bien.
    Enfin quoi --->> Font est aussi un OBJET --->> SET SET SET SET !!!
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    je reconnais que je ne l'ai jamais abordé comme ca en VBa en effet
    disons que c'est plus courant d'utiliser les propriété du font
    je vais faire un test
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    comme ca vite fait la je m'en vazis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Dim H
    Private Sub ListBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    With ListBox1
    yy = Round((Y / H) + .TopIndex)
    If Y < 3 And yy > 0 Then yy = yy - 1
    If Y > .Height - 3 Then yy = yy + 1
    If yy > .ListCount - 1 Then yy = .ListCount - 1
    .ListIndex = yy
    End With
    End Sub
     
    Private Sub UserForm_Activate()
    With ListBox1: .List = Split(Application.Rept("toto,", 50), ","): End With
    With Label1: .BorderStyle = 0: .AutoSize = True: .Caption = "Aa": Set .Font = ListBox1.Font: H = .Height: End With
    End Sub
    bye! a +

    je montrerais ce soir commanet je fait pour ne pas etre obligé de bouger en bas ou en haut pour scroller
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  16. #16
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2017
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    Bonjour Unparia, Patrick
    Merci à Patrick d'être entré dans la discussion. Un autre merci car j'ai toujours lu et apprécié ses réponses au gré de différentes et diverses recherches.
    Je n'ai pas encore lu toutes vos réponses car je viens juste de me connecter et je te tiens à répondre aussi rapidement que possible à la requête d'hier d'Unparia.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Index_album = LD_Niveau0.TopIndex + 1 + Int((y - 10) / (LD_Niveau0.FontSize * 1.25)) )
    Comme je l'ai dit, c'est un code que j'ai souvent lu, à quelques détails près.
    Pour <+ 1 + Int((y - 10) et 1.25>. Excepté y et int(), je n'ai pas vraiment de justifications précises à donner pour -10 et 1.25. Utilisant du Tahoma, 1.25 hauteur de cette police ? Désolé.
    Pour être clair, je souhaitais que la pointe de ma souris soit centrée sur la hauteur d'affichage d'un Item. En ajustant, 'bricolant' pour vous , ces 2 valeur, j'ai obtenu ce que je voulais ....
    Mon objectif est de ne pas utiliser les touches Haut et Bas mais uniquement la souris (une version précédente fonctionnait parfaitement avec ces 2 touches)
    A moins que la solution ne soit dans l'une de vos réponses, j'en suis toujours à me demander comment faire pour passer, par exemple, de l'Item1 à l'Item8 sans déclencher quoique ce soit par le survol de la souris des lignes 2 à 7 et d'atterrir en douceur sur l'Item8 ?
    J'ai commencé à regarder comment faire autrement avec la roulette et le click gauche de la souris....Une solution qui pourrait satisfaire à mon objectif et qui est très acceptable.
    En attendant, je vais prendre connaissance de vos réponses. Bien évidement que je suis prêt à suivre vos conseils, casser et recommencer le code déjà écrit s'il le faut. Qui en plus est synonyme d'amélioration et instructif pour moi.
    Kirtap

  17. #17
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2017
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    Je viens de lire ceci qui m'avait échappé dans les messages précédents :
    "Et j'ignore encore si listbox sur Feuille de calcul ou sur Userform"
    C'est dans un UserForm.
    Je pense que le mieux, et peut être aurais je du le faire au départ mais j'étais loin de penser que cela susciterait tant d'aller et retour, que je vous détaille le contenu de mon projet.
    Je suis un grand amateur de musique,de tout genre. De la pop de mon époque, au jazz actuel en passant par le blues et j'en passe. En y a 12 !!
    J'ai des milliers de morceaux stockés sur un Disque Dur multimédia et un matériel hifi que je que qualifierai, en toute modestie, de sérieux. Aujourd'hui je connecte le DDMédia à l'ampli et la TV pour le piloter et ça marche comme cela est prévu initialement. Mais c'est limité et un quelque peu fastidieux et je ne veux pas investir dans un NAS. Mais là n'est pas le sujet ...
    Donc, ayant quelques notions de VBA* acquises seul depuis plusieurs années, j'ai décidé de réaliser une application pour écouter les morceaux à volonté depuis mon PC. Elle se nomme Exploitation.
    Donc actuellement, avec les défauts que vous lui connaissez (et peut être d'autres cachés), une fois un Genre sélectionné, j'affiche dans la LB1 les Artistes. A l'ouverture, j'affiche dans la LB2 les Albums qui concerne le premier Artiste, en LB3 les Titres du 1er album. Cela se répète à chaque fois que je sélectionne (ou survole) un Artiste. il peut même y avoir une LB3 si l'album a plusieurs équivalents 'CD'. Bien entendu, je peux naviguer parmi les Albums pour visualiser les Titres.
    Je peux filtrer, dans un Genre, le type de fichier Album (flac, mp3, etc), et/ou filtrer une sous catégorie "Best of", "Live", "Discographie". De tout ça, à tout moment je peux écouter sur mon matériel HiFi via wifi, soit un album complet, ou plusieurs titres d'albums différents pour un même artiste ou bien créer des playlists (m3u). Si j'ajoute que pour chaque artiste et album j'affiche la photo correspondante (depuis un fichier Zip afin de limiter le volume de stockage) alors vous saurez tout ou presque. Car il me reste à vous dire, rapidement, comment j'ai procédé.
    Sur mon DDMédia, j'ai un dossier pour chaque Genre. Ensuite tous les sous dossiers Genre sont architecturéss de façon identique.
    J'ai développé une application que j'appelle de Production, qui pour un Genre sélectionné, va générer une feuille Excel précisément structurée. Cette feuille est copiée dans mon classeur d'Exploitation. Ayant longtemps développé en RPG puis en C++ (Clipper, Funcky) j'ai toujours conservé l'habitude de travailler avec des tableaux. Donc avec application Exploitation, à la sélection d'un Genre et à partir de sa feuille Excel correspondante, je charge dans un tableau, toutes les informations qui me seront nécessaires pour une restitution expliquée plus haut. C'est une solution bien plus simple pour moi, car en commençant par exploiter directement les données de la feuille, dans le cas de filtre je rencontrais de nombreuses et sérieuses difficultés, jamais incontournables mais toujours plus complexes à coder. Et lourdes.
    Excepté lors d'une demande d'écoute, l'exploitation des données est totalement indépendante de mon DDMédia.
    J'espère que cette présentation vous aura éclairés. Je reste à votre disposition si vous souhaitez d'autres informations.

    Enfin sans vouloir froisser Unparia, lorsqu'il écrit :
    'Pour ce qui est de la seule partie concernant les listindex au parcours/souris, je viens de le faire complètement, mais refuse de le montrer ici sans qu'il fasse l'effort de réflexion que je lui ai demandé et réponde donc aux questions que je lui ai posées. Tu sais comment je suis, non ? (je ne veux pas contribuer à l'ignorance).'
    Ignorance ou méconnaissance, la philo pourrait peut être y répondre? Pas moi mais à Unparia, oui. Que j'ai longtemps fait office de "formateur" dans le milieu automobile dans mon domaine de la Gestion de stock tournant sur des grosses applications (et dans le monde entier). Et si ce n'était pourtant pas ma fonction principale, je l'ai fait pour répondre et satisfaire aux besoins des utilisateurs. J'en suis venu à programmer moi même en RPG que j'ai du apprendre dans mon coin (et le RPG à l'époque en effrayait plus d'un !). Puis C++ avec l'arrivée des ordinateurs personnels. J'en ai tiré aucun laurier que de la satisfaction personnelle.
    Donc on a pas tout à fait la même vision du partage de connaissances. Et je respecte complètement son point de vue. Je demande de l'aide, on me la fournit et je l'apprécie à sa plus grande valeur car je sais que derrière il y a de l'investissement personnel. Sinon que faire, ou que dire? Rien et on passe à autre chose.

    Avec tout ça , peut être y a t il d'autres messages arrivés .. donc encore plus en retard sur leur lecture !!
    Kirtap

  18. #18
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2017
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    juste pour compléter la présentation de mon appli Exploitation.
    Je ne remplis que 2 Tableaux : 1 pour les Artistes et un second pour les Albums
    Avec eux je connais début et fin d'un Artiste, début et fin de chaque Album d'un Artiste.
    Avec ces infos, je charge les Titres en LB3 depuis la feuille Excel ...
    Je me remets à la lecture des messages ...

  19. #19
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Sinon que faire, ou que dire? Rien et on passe à autre chose.
    et c'est ce qui va être fait, du moins par moi, tant que, n'ayant toujours pas fait l'effort demandé (montrer que tu sais la signification exacte de ce que tu copies/colles), tu n'auras pas répondu aux questions posées.
    A toi de voir, donc ...
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  20. #20
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Août 2017
    Messages : 49
    Points : 18
    Points
    18
    Par défaut
    Nom : Sans titre1.jpg
Affichages : 755
Taille : 78,7 Ko
    Voilà à quoi cela ressemble ..
    Kirtap

Discussions similaires

  1. Envoie Mouseclick et MouseMove à une appli DirectX
    Par cpdump dans le forum DirectX
    Réponses: 3
    Dernier message: 21/11/2003, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo