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 d'une ligne par VBA dans une zone de liste


Sujet :

IHM

  1. #1
    Membre régulier Avatar de DeFCrew
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 167
    Points : 94
    Points
    94
    Par défaut Selection d'une ligne par VBA dans une zone de liste
    Bonjour à tous

    Surtout ne vous dites pas : "Encore un qui pose des question et qui ne regarde pas l'aide !!!"

    Non,non,non j'ai déjà regarder et j'ai essayer cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.lstResults.Selected(1) = True
    Pour pouvoir séléctionner la première ligne d'une zone de liste après avoir fait une recherche à partir d'une zone de texte comme dans l'excellent tutorial de caféine.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub txtRechTitre_BeforeUpdate(Cancel As Integer)
     
     
     
    RefreshQuery
    Me.lstResults.Selected(1) = True
    ' MsgBox Me.lstResults.ListIndex
     
    If Me.txtRechTitre <> "" Then
    DoCmd.OpenForm "frmAutoMedias", acNormal, , "[CodProd] = " & Me.lstResults
    End If
     
    End Sub
    Après le RefreshQuery, aucune ligne n'est séléctionné pourtant ce que je cherche apparaît bien dans la zone de liste. Et du coup frmAutoMedias n'ouvre pas la bonne ligne...

    La première ligne n'est pas surligné comme quand on clique dessus. Et c'est ce que j'aimerais bien obtenir, automatiquement et sans avoir à cliquer dessus, sachant que chaque recherche est unique, il y a toujours qu'une reponse possible, c'est pour sa que je voudrait que ça séléctionne et ouvre frmAutoMedias tout seul avec la seule ligne présente après recherche.

    Alors si jamais sur votre chemin, vous trouvez une solution, jrépond présent

    Merci d'avance
    "Si tu tape ta tête contre une cruche, et que ça sonne creux...n'en déduit pas pour autant que c'est la cruche qui est vide !"
    Lao Tseu

  2. #2
    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
    Bonjour,

    Je ne comprends pas bien ton problème. Lorsque tu seléctionnes une valeur dans ta liste, ton controle contient la valeur correspondant à la colonne liée soit généralement la clé primaire
    Donc pour ouvrir ton formulaire il suffit de :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "frmAutoMedias", acNormal, , "[CodProd] = " & Me.lstResults
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  3. #3
    Membre régulier Avatar de DeFCrew
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 167
    Points : 94
    Points
    94
    Par défaut
    Et bien en fait, j'entre ma recherche dans une textbox "txtRechTitre".
    J'écrit un nombre comme "1645" et j'appuye sur [Entrée]. (j'ai pris exemple sur le tut de caféine et j'ai laissé les noms originaux pour les textbox. Sa n'a rien a voir avec de la musique, c'est pour ça que je cherche un nombre = un Ordre de Production)

    Ensuite, la zone de liste "lstResults" affiche la ligne correspondant au nombre recherché (l'ordre de production).

    Après je dois double cliquer pour pouvoir afficher une feuille détaillé "frmAutoMedias" de l'ordre de production concerné.

    Et c'est la où j'ai besoin d'aide.

    J'aimerais éviter d'avoir à double cliquer pour ouvrir la feuille détaillé sachant qu'il y aura toujours qu'un ligne après avoir lancer la recherche.

    Est-il possible d'ouvrir la fiche détaillé "frmAutoMedias" juste après avoir lancer la recherche ?

    J'ai essayer de tester ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "frmAutoMedias", acNormal, , "[CodProd] = " & Me.txtRechTitre
    Mais ça ne fonctionne pas, j'ai un message qui me dis que Me.txtRechTitre = Null alors que dans Me.txtRechTitre il y a marqué "1645" et que la liste "lstResults" affiche bien l'ordre de production "1645" ?

    La colonne liée est "CodProd "qui correspond à l'ordre de production

    Re merci d'avance
    "Si tu tape ta tête contre une cruche, et que ça sonne creux...n'en déduit pas pour autant que c'est la cruche qui est vide !"
    Lao Tseu

  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
    Re,

    Est ce que CodProd est numérique ou Alpha, dans le second cas il faudrait utiliser de '

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "frmAutoMedias", acNormal, , "[CodProd] = '" & Me.lstResults & "'"
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  5. #5
    Membre régulier Avatar de DeFCrew
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 167
    Points : 94
    Points
    94
    Par défaut


    CodProd est numérique.

    Mais depuis j'ai trouvé la solution.

    Je ne sais pas pourquoi mais tant que je ne cliquais pas sur la ligne avec la souris, CodProd ne se mettait pas a jour malgré l'utilisation de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Me.lstResults.Selected(1) = True
    Call lstResults_Click 'pour simuler le clic de la souris
    qui a pour but de selectionné la ligne 0 du tableau si je ne me trompe pas, puis de simuler un clic sur la ligne selectionnée.
    La zone de liste se mettait à jour ainsi que d'autres zones de texte par le biais de la fonction Column mais pas CodProd ??? ???

    Du coup j'ai utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "frmAutoMedias", acNormal, , "[CodProd] = " & Me.lstResults.Column(0) 'La colonne 0 = CodProd
    et là magique ça fonctionne

    En fait ça m'est utile car j'utilise un scanner de code barres avec émulation clavier, du coup lorsque je scan un code barre le scanner envoie le nombre correspondant au code barre puis l'envoie au pc et simule la touche entrée, ensuite une fenêtre (frmAutoMedias) s'ouvre automatiquement avec toutes les informatons concernant ce numéro code barres.

    Plus besoin de toucher au clavier.

    Merci pour ton aide Jeannot45 et si une autres solution existe je suis partant

    Peace ^_^
    "Si tu tape ta tête contre une cruche, et que ça sonne creux...n'en déduit pas pour autant que c'est la cruche qui est vide !"
    Lao Tseu

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup pour la solution, ça m'a été d'une grande aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Remplacer nom de cellule par sa position absolue dans une formule par vba
    Par dar06 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/01/2014, 13h51
  2. Réponses: 2
    Dernier message: 08/01/2014, 11h47
  3. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  4. Inscrire une formule dans une cellule par VBA
    Par marc56 dans le forum Excel
    Réponses: 6
    Dernier message: 23/11/2008, 23h57
  5. remplacer les retour de ligne par <br> dans une chaine?
    Par cortex024 dans le forum Langage
    Réponses: 2
    Dernier message: 03/12/2006, 17h22

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