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

Macros et VBA Excel Discussion :

Comment avoir toutes infos d'une ligne excel en double cliquant dans une textbox [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 142
    Points : 84
    Points
    84
    Par défaut Comment avoir toutes infos d'une ligne excel en double cliquant dans une textbox
    Bonjour à tous,
    Je suis actuellement bloqué sur le point suivant. Peut être pourriez-vous m'aider ?
    J'ai un tableau Excel avec des données (15 colonnes). Afin de rendre plus convivial la lecture et la documentation, j'ai créé des formulaires comme suit :
    1°) 1er userform > les données sont affichées dans un texbox avec juste 5 colonnes pour synthétiser.
    2°) 2ème userform > Il comporte l'ensemble des champs du tableau Excel.

    Je souhaiterais qu'en doublecliquant sur une ligne du texbox, le 2ème Userform s'affiche et que toutes les informations correspondantes à la ligne sélectionnée s'affichent.
    J'ai trouvé la fonction doubleClic du textBox mais je ne sais pas comment alimenter tous les champs. A l'affichage ils sont tous vides .

    Merci par avance
    MichaSarah

  2. #2
    Membre éclairé Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Points : 879
    Points
    879
    Par défaut
    bonjour MichaSarah ,

    dans un texbox avec juste 5 colonnes
    est ce que tu parle d'un ListBox (5 colonnes) ?
    ou de 5 TexBox ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 142
    Points : 84
    Points
    84
    Par défaut
    Bonjour Sabzzz,
    J'utilise une textbox mais celà n'est peut-être pas le plus adapté. J'ai régulièrement des doutes sur l'utilisation des TextBox/ListBox.
    Ce que je souhaite avoir à l'écran , c'est une image des données d'un tableau Excel (avec certaines colonnes masquées).

    Salutations
    MichaSarah

  4. #4
    Membre éclairé Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Points : 879
    Points
    879
    Par défaut
    bonjour MichaSarah,

    pour retrouver la position d'une valeur dans le tableau j'utilise la fonction de feuille de calcul EQUIV combiné à la fonction ESTERREUR en vba,
    par exemple si la valeur à retrouver est en colonne A

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Not IsError(Application.Match(Me.TextBox1, Sheets("Feuil1").Range("A:A"), 0)) Then
    ligne = Application.Match(Me.TextBox1, Sheets("Feuil1").Range("A:A"), 0)
    End If
    pour alimenter un ListBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Me
    .ListBox1.RowSource = "Prestations!A" & ligne & " :E" & ligne
    .ListBox1.ColumnCount = 5    'nombre de colonne 5
    .ListBox1.ColumnWidths = "50;30;20;20;20"  'largeur des colonnes
    End With

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 142
    Points : 84
    Points
    84
    Par défaut
    Bonsoir sabzzz,
    Je n'ai pas très bien compris ton explication . J'ai peut être mal expliqué ou je bloque.
    J'ai une ListBox "ResultatRecherche" qui affiche les infos issues d'un tableau Excel. Lorsque je doubleClick sur une des lignes de cette ListBox, un autre formulaire s'affiche avec toutes les informations de la ligne de la ListBox. En Cherchant sur différents sites j'ai pu créer le code suivant. Le nouveau problème que je recontre est que le deuxième formulaire affiche les informations avec un décalage d'un coup .
    Ex je doubleClick sur une ligne de la listeBox et rien ne s'affiche dans le 2ème formulaire. Je doubleclick à nouveau sur la listBox et les informations qui s'affichent dans le nouveau formulaire sont celles qui auraient dues s'afficher avec le Doubleclick précédent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub ResultatRecherche_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
     
    Dim i As Long
     
        If UsfListeElectrique.ResultatRecherche.ListCount < 1 Then Exit Sub
        i = UsfListeElectrique.ResultatRecherche.ListIndex
     
        UsfElectrique.Show
            UsfElectrique.TxtCommentaire = UsfListeElectrique.ResultatRecherche.List(i, 0)
            UsfElectrique.TxtQuestions = UsfListeElectrique.ResultatRecherche.List(i, 1)
     
    End Sub
    Merci pour votre aide
    MichaSarah

  6. #6
    Membre éclairé Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Points : 879
    Points
    879
    Par défaut
    bonjour MichaSarah,

    il faudrait déclarer i en variable de niveau module et public.
    mais attention si tu as utilisé i dans d'autre macro il faudrait changer de lettre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub ResultatRecherche_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    If UsfListeElectrique.ResultatRecherche.ListCount < 1 Then Exit Sub
    i = UsfListeElectrique.ResultatRecherche.ListIndex
    UsfElectrique.Show
    UsfElectrique.TxtCommentaire = UsfListeElectrique.ResultatRecherche.List(i, 0)
    UsfElectrique.TxtQuestions = UsfListeElectrique.ResultatRecherche.List(i, 1)
    End Sub

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 142
    Points : 84
    Points
    84
    Par défaut
    Bonjour sabzzz,

    J'ai déclaré i en variable de niveau module et public mais maintenant quel que soit la ligne "douclecliquée" ce sont uniquement les items de la première ligne qui s'affichent. Pour éviter toutes confusion j'ai renommé "i"

    merci
    Salutations
    MichaSarah

  8. #8
    Membre éclairé Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Points : 879
    Points
    879
    Par défaut
    bonjour MichaSarah,

    j'ai fait un test sur le fichier suivant, je n'arrive pas à reproduire le probleme que tu rencontre, si tu peut, ajoute un point d'arrêt dans la macro et tu pourra suivre son execution en mode pas à pas.
    http://cjoint.com/?fkrT7LpcQq"]http://cjoint.com/?fkrT7LpcQq[/URL]

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 142
    Points : 84
    Points
    84
    Par défaut
    Bonsoir sabzzz,
    J'ai du faire une erreur que je ne retrouve pas dans la première procédure . J'ai tout réécris en suivant tes dernières explications et celà fonctionne.

    Encore merci pour ton aide précieuse.
    MichaSarah

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/04/2015, 16h41
  2. Réponses: 9
    Dernier message: 23/02/2008, 08h07
  3. Insérer une ligne d'un fichier texte dans une table
    Par Atemi76 dans le forum Administration
    Réponses: 1
    Dernier message: 10/07/2007, 17h32

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