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

IHM Discussion :

Selection dans Zone de Liste


Sujet :

IHM

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 3
    Points
    3
    Par défaut Selection dans Zone de Liste
    Bonjour, voici mon problème :
    Je veut sélectionner à paris d'une variable une ligne dans une zone de liste
    à l'aide du code suivant :

    IMPORTANT : UNE ZONE DE LISTE NON DEROULANTE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    '----------------------------------------------------
    '//SELECTION DE LA LIGNE DANS LA ZONE DE LISTE "LISTE"
    '//VARIABLE --> ValFind
    For i = 0 To Me.Liste.ListCount
        target = Nz(Me.Liste.Column(0, i))
     
        If target = ValFind Then
            Me.Liste.Selected(i) = True
            GoTo Fin
        End If
     
    Next i:
    Fin:
    Ce code fonctionne très bien mais si la ligne sélectionnée n'est pas visible dans la zone de liste au moment de la recherche, il faut dérouler celle-ci pour visualiser la sélection.

    Je voudrais que à la sélection de la ligne , celle-ci soit visible automatiquement dans la Zone de Liste.

    Merci beaucoup de votre aide.

    PS : si besoin je peut fournir un fichier avec table, formulaire et vba.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 034
    Points : 24 605
    Points
    24 605
    Par défaut
    Bonjour,

    Par une simple affectation, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
        If target = valfind Then
            Me.Liste.Selected(i) = True
            Me.Liste = Me.Liste.Column(0, i) 'ici l'affectation de la valeur à la liste
            GoTo Fin
        End If
    ...

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Cela fonctionne impeccable.

    Merci beaucoup à Loufab.

    Question subsidiare ci cela est possible)

    Je voudrait que à l'affectation de la ligne dans la zone de liste, celle-ci se retrouve en haut de la zone de liste , tout en ayant le même ordre dans la zone de liste.

    Merci encore.:cool:

  4. #4
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Intéressé par ton problème, j'ai fait ce petit exemple qui, si j'ai bien compris ta problématique, doit répondre à ton souci.

    Pour ce faire dans la table source de ma liste (T_Employes), j'ai ajouté un champ, NumOrdre, qui correspond au CodeEmploye (Clé primaire).
    Le fonctionnement de la liste :
    La source : 3 champs (CodeEmploye, NomEmploye, NumOrdre) triée sur le NumOrdre
    La Sélection : Après saisie du nom de l'employé, je liste mes enregistrements et je mets à zéro le NumOrdre de l'employé sélectionné puis je mets à jour l'affichage de la liste. (Le nom sélectionné apparait en première position).

    Sur fermeture du formulaire, je réaffecte le CodeEmploye au NumOrdre afin de gardé toujours l’intégrité de ma liste.

    Bonne continuation
    Fichiers attachés Fichiers attachés

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Merci à Jeannot45.

    Toutefois je voudrait éviter d'utiliser ce genre de méthode .

    En fait je voudrais suivre le raisonnement suivant :
    j'ai un Zone de Liste qui contient 40 lignes mais qui affiche seulement 5 lignes.

    SI mon vba sélectionne la ligne 16 alors ma zone de liste
    doit afficher les lignes 16 à 20

    SI mon vba sélectionne la ligne 33 alors ma zone de liste
    doit afficher les lignes 33 à 37

    Peut être que cela n'est pas possible.

    Merci .

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 034
    Points : 24 605
    Points
    24 605
    Par défaut
    Bonjour,

    Pour couper cours à ce projet alambiqué :

    Une liste contient ou ne contient pas de lignes. Pas question de contenir mais de ne pas afficher.

    Dans le cas ou tu souhaites afficher quelques enregistrements d'une table (cas de la liste alimentée par une requete) sur quel(s) critère(s) te bases-tu pour inclure (ou exclure) les enreg. de la dite table ?

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Bonjour , OK je me suis mal expliqué sur cette question qui reste je le rappelle subsidiaire.

    Le problème n'est pas les critères de la requête de la zone de liste mais la présentation du résultat.

    Le résultat de la requête est toujours supérieure au nombre de ligne que peut "présenter" ma Zone de liste.

    Exemple : 200 lignes de résultats dans ma zone de liste qui en "présente" uniquement 20 mais qui en contient néanmoins 200 consultable avec l'ascenseur.

    Avec l'affectation (merci à Loufab) la ligne rechercher est "présenter" dans la fenêtre des 20 lignes.

    Seulement , je voudrais que si la ligne rechercher est la 60 ième, la fenêtre de ma zone de liste "présente" les lignes 60 à 80 de façons à ce que la ligne rechercher se retrouve en haut de la Zone de liste à chaque fois.


    Merci, si cela est impossible on peut fermer le sujet.

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 034
    Points : 24 605
    Points
    24 605
    Par défaut
    Bonjour,

    Je n'ai pas d'idée. Sachant qu'il est impossible de savoir ou se trouve positionné le curseur dans la fenêtre de la liste.
    Peut-être via une API ?

    A voir.

    Cordialement,

  9. #9
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Voici ci-joint une solution qui répond au souci d'affichage que tu t'es fixé.
    Après avoir saisi un nom dans la zone de texte, seuls les 5 noms qui suivent le nom saisi s'affichent dans la liste.

    Ouvrir le formulaire : F_Selection5Lignes

    Le principe : changer à la volée la source de la liste.
    à l'ouverture du formulaire :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM T_Employes
    Après la saisi d'un nom après MAJ de la zone de Texte :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TOP 5 * FROM T_Employes WHERE NomEmploye >= '" & Target

    Bonne continuation

  10. #10
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    salut, merci à jeannot car je viens d'apprendre le le TOP en SQL.Mais la solution n'est pa là.

    Je ne veux pas intervenir sur le "rowsource "de ma Zone de Liste car je le gère déjà avec des paramètres.

    Ce que je voudrais , c'est un peu le système du pied à coulisse
    Mon sql de départ (déjà paramètré) me fournit les mm et je voudrait gérer le déplacement de la fenêtre de lecture des mesures.

    EX :

    SQL paramètré: Tout les nombres entre 50 et 100

    Ma Zone de liste affiches les lignes avec tout les nombres de 32 à 100

    je sélectionne avec du vba et une variable le nombre 32 .

    Ma fenêtre de Zone de liste qui affiche 5 lignes affiche
    32
    33
    34
    35
    36
    (Donc ma ligne 32 en premier)

    et si je monte avec l'ascenseur , ma fenêtre présentera
    31
    32
    33
    34
    35
    ensuite
    30
    31
    32
    33
    34 etc.


    tout en laissant la ligne 32 sélectionnée.


    Merci

  11. #11
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    On revient alors à la première proposition de loufab () en diminuant la taille de la liste. (Voir la pièce jointe en lançant le formulaire : F_SelectionPiedACoulisse)

    Enfin, si j'ai bien compris
    Fichiers attachés Fichiers attachés

  12. #12
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Bonjour jeannot, merci pour ton travail fournit.:cool:

    Dans les 4 formulaires proposés : (-F_Liste ; -F_Selection5Lignes ; F_SelectionEnPremiereLigne ; -F_SelectionPiedACoulisse)
    juste "F_SelectionPiedACoulisse" se rapproche de la solution que je souhaite.

    Dans le zip joint tu trouveras 4 .jpg pour deux exemples que j'ai créé pour la sélection de "Alice" et "Manuel"

    "ALICE"
    .jpg "Proposition pour Alice avec F_SelectionPiedACoulisse"
    .jpg "Solution pour Alice avec F_SelectionPiedACoulisse"
    "MANUEL"
    .jpg "Proposition pour Manuel avec F_SelectionPiedACoulisse"
    .jpg "Solution pour Manuel avec F_SelectionPiedACoulisse"

    Les .jpg Proposition sont ce que j'obtient avec ""F_SelectionPiedACoulisse""
    Les .jpg Solution sont ce que je souhaite obtenir comme resultat.

    Bien sur tout en me servant du controle "Saisir un nom" uniquement

    Procédure :
    A - je saisis "ALICE" et je valide
    B - j'obtient .jpg "Solution pour Alice avec F_SelectionPiedACoulisse"
    C - je saisis "MANUEL"et je valide
    D - j'obtient .jpg "Solution pour Manuel avec F_SelectionPiedACoulisse"

    Bien sur, je souhaite (là est la difficulté) après la sélection de "ALICE" ou "MANUEL" pouvoir me servir de l'ascenseur afin de consulter la liste de ma Zone et qui est la même (tous les enregistrements initiaux et dans le même ordre)

    Donc Procédure :

    A - je saisis "ALICE" dans controle et je valide
    B - j'obtient l'image "Solution pour Alice avec F_SelectionPiedACoulisse"
    C - je me sert de l'ascenseur pour descendre en bas de liste
    je vois "ZOE" (je peut éventuellement sélectionner "ZOE")
    donc je consulte toute ma liste d'origine
    D - je saisi "MANUEL" dans controle et je valide
    E - j'obtient l'image "Solution pour Manuel avec F_SelectionPiedACoulisse"

    etc ...

    Merci
    Fichiers attachés Fichiers attachés

  13. #13
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Je t'avoue ne rien comprendre. Lorsque je tape Alice ou Manuel, j'obtiens bien comme résultat ce que tu souhaites en solution.

  14. #14
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Bonjour Jeannot45.

    Le résultat oui mais pas la forme qui est :
    - l'ordre de la liste n'est pas modifié
    - la ligne sélectionnée via procédure se retrouve en haut de liste sans modification d'ordre et de données de la liste originale


    Avec le formulaire "F_Selection5Lignes" --> L'ordre de la liste est modifié
    Avec le formulaire "F_SelectionEnPremiereLigne"--> L'ordre de la liste est modifié

    merci.

  15. #15
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Voici une image représentant les deux solutions qui répondent à ton problème.
    Quant au formulaire ""F_SelectionEnPremiereLigne", il est hors jeu puisqu'il s'agissait de la première proposition que je t'avais faite (n'ayant pas encore compris ce que tu souhaitais )

    Bonne journée
    Images attachées Images attachées  

  16. #16
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Bonjour Jeannot
    voici ce que j'obtiens en saisissant Carl, et je voudrait que cela se présente comme dans l'image de ton message précédent.
    C'est à dire que la sélection se place automatiquement en haut de liste et ce sans modifier l'ordre et les données de la liste.
    merci
    Images attachées Images attachées  

  17. #17
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Vérifies que dans ton code tu as bien la ligne :

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.lstNom = CInt(Me.lstNom.Column(0, i))

  18. #18
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 034
    Points : 24 605
    Points
    24 605
    Par défaut
    Bonjour,

    Soft veut que la sélection apparaisse en haut de la liste. Perso je ne vois pas trop comment... à part faire de l'injection via un Sendkeys

    Cordialement,

  19. #19
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Dans mon formulaire, le nom saisi dans la zone de texte est toujours le premier de la liste !!! :koy:

Discussions similaires

  1. Formulaire contact html avec fichier texte dans zone de liste select
    Par lemask dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 14/01/2014, 14h54
  2. Selection date jour dans zone de liste
    Par Hydatid dans le forum VBA Access
    Réponses: 7
    Dernier message: 25/04/2010, 20h25
  3. Réponses: 3
    Dernier message: 24/10/2009, 19h38
  4. Réponses: 2
    Dernier message: 14/11/2008, 16h01
  5. Réponses: 6
    Dernier message: 22/09/2008, 14h55

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