Discussion: Lien entre listbox et texbox [XL-2013]

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    mai 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mai 2017
    Messages : 5
    Points : 1
    Points
    1

    Par défaut

    Tout d'abord bonjour à tous,

    Je cherche depuis plus d'une semaine sur divers forum sans trouver solution à mon problème, je ne suis pas très calée dans la partie "VBA" de excel c'est pour cela que je me permets de vous exposez mon "énigme"

    J'ai un Userform 1 sur lequel je fais une recherche via une combobox qui reprend les entêtes de mon tableau de base de données (Nom, prénom, ville, CP, téléphone ....) et une textbox pour choisir le mot à rechercher dans la catégorie choisie de ma combobox.

    Cette recherche va chercher ses données dans ma base de donnée (feuille excel). Une fois la recherche lancé les résultats s'affiche dans ma listbox (toujours sur mon Userform1) qui reprend les 11 colonnes de ma bases de données avec les entêtes.

    J'aimerai pouvoir modifier les enregistrements de ma base de données via un formulaire pour cela sur mon Userform1 j'ai programmé un bouton Modifier qui ouvre mon Userform2 dans lequel j'aimerai pouvoir récupérer les informations de ma ligne sélectionné de ma listbox mais répartie dans 11 textbox reprennant les entêtes de ma base de données (Nom, prénom, ville, CP, téléphone ....)

    J'espère que quelqu'un parmi vous pourra m'aider

    J'ai l'impression d'avoir été claire mais n'hésiter pas à me demander si au final je suis la seule à me comprendre

    Merci d'avance !

  2. #2
    Membre éprouvé Avatar de mjpmjp
    Homme Profil pro
    Chôme Dur des Ambulances
    Inscrit en
    avril 2012
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chôme Dur des Ambulances
    Secteur : Santé

    Informations forums :
    Inscription : avril 2012
    Messages : 734
    Points : 1 203
    Points
    1 203

    Par défaut

    bonjour,
    j'ai pas tout compris,

    J'ai un Userform 1
    ok...
    je fais une recherche via une combobox qui reprend les entêtes de mon tableau de base de données (Nom, prénom, ville, CP, téléphone ....)
    une combo avec 11 colonnes ?
    et une textbox pour choisir le mot à rechercher dans la catégorie choisie de ma combobox.
    tu veux dire choisir la colonne ? (si pas çà ...explique)
    Cette recherche va chercher ses données dans ma base de donnée (feuille excel). Une fois la recherche lancé les résultats s'affiche dans ma listbox (toujours sur mon Userform1) qui reprend les 11 colonnes de ma bases de données avec les entêtes.
    tu re expliques les lignes du dessus ou on parle d'autres choses ?
    J'aimerai pouvoir modifier les enregistrements de ma base de données via un formulaire pour cela sur mon Userform1 j'ai programmé un bouton Modifier qui ouvre mon Userform2 dans lequel j'aimerai pouvoir récupérer les informations de ma ligne sélectionné de ma listbox mais répartie dans 11 textbox reprennant les entêtes de ma base de données (Nom, prénom, ville, CP, téléphone ....)
    le form 2 n'est pas obligatoire mais bon....

    donc,
    tu as une liste de 11 colonnes ...quand tu cliques sur la ligne (de 11 colonnes)...aucun problème pour répartir les colonnes 0 à 10 dans chaque textbox
    mais avant tout... re explique

    @+JP
    Mes contributions
    Form GRAPHIQUE, Gestion des boutons
    Form GRAPHIQUE, Liste Onglet dynamique
    Form GRAPHIQUE, Liste Multi-Colonne et ScrollBar Externe

    Les Gens "Instruit" ont passé leur temps à apprendre ce que les Gens "Intelligent" ont passé leur temps à trouver...(JP)

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    mai 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mai 2017
    Messages : 5
    Points : 1
    Points
    1

    Par défaut

    Désolée de mal m'exprimer..

    Donc au départ j'ai ma base de donnée sur feuil excel en forme de tableau.

    J'ai un formulaire (userform1) qui me permet de faire une recherche dans ma base de données, ce formulaire est composé d'une ComboBox qui reprend les entêtes que j'ai donné à mon tableau de Base de données (IDENTIFICATION, ADRESSE, VILLE...), d'une TextBox dans laquelle si par exemple je met PARIS en ayant choisie dans ma combobox Ville, il va dans la LISTBOX de ce même formulaire me donner toutes les lignes de ma basse de donnée ou j'ai pour la colonne ville "PARIS".

    Et dans ma listbox, je reprend également les entêtes de ma base de données.

    Jusque là j'ai pas de souci, ça fonctionne, mon souci vient après car j'aimerai par rapport a cette liste pouvoir sélectionner une des lignes, cliquer sur mon bouton modifier et qu'il m'ouvre un nouveau formulaire(userform2) avec une TextBox par colonne, modifier ce que je souhaite et pouvoir l'enregistrer dans ma bases de données.

    Ci dessous une capture des 2 Formulaires en question pour aider si besoin.
    http://zupimages.net/viewer.php?id=17/20/bwfc.jpg

    Merci

  4. #4
    Membre éprouvé Avatar de mjpmjp
    Homme Profil pro
    Chôme Dur des Ambulances
    Inscrit en
    avril 2012
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chôme Dur des Ambulances
    Secteur : Santé

    Informations forums :
    Inscription : avril 2012
    Messages : 734
    Points : 1 203
    Points
    1 203

    Par défaut

    bonjour,
    ok donc tu as une liste de ligne "résultat de recherche"

    il te faut juste le code pour extraire les colonnes vers les textbox..

    code à main levée...code à mettre dans form 1 ---> de la liste
    remplacer "TextBox1" par le vrai nom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub ExtraireColonne(ByVal objLbx As Object, objForm as Object)
        'parcourir le nombre de colonne
        For n = 0 To objLbx.ColumnCount-1
            objForm.TextBox1.Text = objLbx.List(objLbx.ListIndex, n)
        Next n
    End Sub
    appel dans form 1 ---> de la liste
    sur événement, au choix et a tester, "Click ", "MouseDown",...
    Call ExtraireColonne(Me.NomDeListe,UserForm2)

    attention à la propriété des Form : en cas de problème : ShowModal = False
    @+JP
    Mes contributions
    Form GRAPHIQUE, Gestion des boutons
    Form GRAPHIQUE, Liste Onglet dynamique
    Form GRAPHIQUE, Liste Multi-Colonne et ScrollBar Externe

    Les Gens "Instruit" ont passé leur temps à apprendre ce que les Gens "Intelligent" ont passé leur temps à trouver...(JP)

  5. #5
    Membre éprouvé Avatar de mjpmjp
    Homme Profil pro
    Chôme Dur des Ambulances
    Inscrit en
    avril 2012
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chôme Dur des Ambulances
    Secteur : Santé

    Informations forums :
    Inscription : avril 2012
    Messages : 734
    Points : 1 203
    Points
    1 203

    Par défaut

    bonjour,

    pour utiliser la boucle objForm.TextBox1.Text ne fonctionne pas ...
    je l'ai désactivée (en commentaire)
    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
    16
    17
     
    Private Sub ExtraireColonne(ByVal objLbx As Object, ByRef objForm As Object)
        'parcourir le nombre de colonne
        'For n = 0 To objLbx.ColumnCount-1
            objForm.TextBox1.Text = objLbx.List(objLbx.ListIndex, 0)
            objForm.TextBox2.Text = objLbx.List(objLbx.ListIndex, 1)
            objForm.TextBox3.Text = objLbx.List(objLbx.ListIndex, 2)
            objForm.TextBox4.Text = objLbx.List(objLbx.ListIndex, 3)
            objForm.TextBox5.Text = objLbx.List(objLbx.ListIndex, 4)
            objForm.TextBox6.Text = objLbx.List(objLbx.ListIndex, 5)
            objForm.TextBox7.Text = objLbx.List(objLbx.ListIndex, 6)
            objForm.TextBox8.Text = objLbx.List(objLbx.ListIndex, 7)
            objForm.TextBox9.Text = objLbx.List(objLbx.ListIndex, 8)
            objForm.TextBox10.Text = objLbx.List(objLbx.ListIndex, 9)
            objForm.TextBox11.Text = objLbx.List(objLbx.ListIndex, 10)
        'Next n
    End Sub
    Nom : Capture2.PNG
Affichages : 27
Taille : 100,7 Ko

    appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub ListBox1_Click()
        Call ExtraireColonne(Me.ListBox1, UserForm2)
    End Sub
    @+JP
    Mes contributions
    Form GRAPHIQUE, Gestion des boutons
    Form GRAPHIQUE, Liste Onglet dynamique
    Form GRAPHIQUE, Liste Multi-Colonne et ScrollBar Externe

    Les Gens "Instruit" ont passé leur temps à apprendre ce que les Gens "Intelligent" ont passé leur temps à trouver...(JP)

  6. #6
    Membre éprouvé Avatar de mjpmjp
    Homme Profil pro
    Chôme Dur des Ambulances
    Inscrit en
    avril 2012
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chôme Dur des Ambulances
    Secteur : Santé

    Informations forums :
    Inscription : avril 2012
    Messages : 734
    Points : 1 203
    Points
    1 203

    Par défaut

    bonjour,

    avec ce code, on s'approche de la solution, mais s'il y a des autres contrôles !!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        For n = 0 To objLbx.ColumnCount - 1
            objForm.Controls.Item(n).Text = objLbx.List(objLbx.ListIndex, n)
        Next n
    @+JP
    Mes contributions
    Form GRAPHIQUE, Gestion des boutons
    Form GRAPHIQUE, Liste Onglet dynamique
    Form GRAPHIQUE, Liste Multi-Colonne et ScrollBar Externe

    Les Gens "Instruit" ont passé leur temps à apprendre ce que les Gens "Intelligent" ont passé leur temps à trouver...(JP)

  7. #7
    Membre éprouvé Avatar de mjpmjp
    Homme Profil pro
    Chôme Dur des Ambulances
    Inscrit en
    avril 2012
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chôme Dur des Ambulances
    Secteur : Santé

    Informations forums :
    Inscription : avril 2012
    Messages : 734
    Points : 1 203
    Points
    1 203

    Par défaut

    bonjour,

    ce code fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        For n = 0 To objLbx.ColumnCount - 1
            objForm.Controls("TextBox" & n + 1).Text = objLbx.List(objLbx.ListIndex, n)
        Next n
    @+JP
    Mes contributions
    Form GRAPHIQUE, Gestion des boutons
    Form GRAPHIQUE, Liste Onglet dynamique
    Form GRAPHIQUE, Liste Multi-Colonne et ScrollBar Externe

    Les Gens "Instruit" ont passé leur temps à apprendre ce que les Gens "Intelligent" ont passé leur temps à trouver...(JP)

  8. #8
    Nouveau Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    mai 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mai 2017
    Messages : 5
    Points : 1
    Points
    1

    Par défaut

    Je te remercie pour ton labeur

    Je ne voudrais pas abuser de ta gentillesse mais comme dit au début je suis pas fortiche dans le VBA du coup j'ai essayé de rentrer ton code comme je l'ai compris mais cela ne fonctionne pas pourrai-tu me guider ...

    Dans le code du premier formulaire (userform1) ou il y a ma listbox j'ai mis ça pour quand je clic sur le bouton modifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CommandButton2_Click()
    userform2.Show
    Call ExtraireColonne(Me.ListBox1, userform2)
    End Sub
    Et dans le code de mon deuxième formulaire (userform2) j'ai repris ton code :

    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
    16
    17
    Private Sub ExtraireColonne(ByVal objLbx As Object, ByRef objForm As Object)
        'parcourir le nombre de colonne
        For n = 0 To objLbx.ColumnCount - 1
            objForm.Controls("TextBox" & n + 1).Text = objLbx.List(objLbx.ListIndex, n)
            objForm.TextBox1.Text = objLbx.List(objLbx.ListIndex, 0)
            objForm.TextBox2.Text = objLbx.List(objLbx.ListIndex, 1)
            objForm.TextBox3.Text = objLbx.List(objLbx.ListIndex, 2)
            objForm.TextBox4.Text = objLbx.List(objLbx.ListIndex, 3)
            objForm.TextBox5.Text = objLbx.List(objLbx.ListIndex, 4)
            objForm.TextBox6.Text = objLbx.List(objLbx.ListIndex, 5)
            objForm.TextBox7.Text = objLbx.List(objLbx.ListIndex, 6)
            objForm.TextBox8.Text = objLbx.List(objLbx.ListIndex, 7)
            objForm.TextBox9.Text = objLbx.List(objLbx.ListIndex, 8)
            objForm.TextBox10.Text = objLbx.List(objLbx.ListIndex, 9)
            objForm.TextBox11.Text = objLbx.List(objLbx.ListIndex, 10)
         Next n
    End Sub
    Vraiment désolée d'abuser


  9. #9
    Membre éprouvé Avatar de mjpmjp
    Homme Profil pro
    Chôme Dur des Ambulances
    Inscrit en
    avril 2012
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chôme Dur des Ambulances
    Secteur : Santé

    Informations forums :
    Inscription : avril 2012
    Messages : 734
    Points : 1 203
    Points
    1 203

    Par défaut

    bonjour,
    à la place de
    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
    16
    17
     
    Private Sub ExtraireColonne(ByVal objLbx As Object, ByRef objForm As Object)
        'parcourir le nombre de colonne
        'For n = 0 To objLbx.ColumnCount-1
            objForm.TextBox1.Text = objLbx.List(objLbx.ListIndex, 0)
            objForm.TextBox2.Text = objLbx.List(objLbx.ListIndex, 1)
            objForm.TextBox3.Text = objLbx.List(objLbx.ListIndex, 2)
            objForm.TextBox4.Text = objLbx.List(objLbx.ListIndex, 3)
            objForm.TextBox5.Text = objLbx.List(objLbx.ListIndex, 4)
            objForm.TextBox6.Text = objLbx.List(objLbx.ListIndex, 5)
            objForm.TextBox7.Text = objLbx.List(objLbx.ListIndex, 6)
            objForm.TextBox8.Text = objLbx.List(objLbx.ListIndex, 7)
            objForm.TextBox9.Text = objLbx.List(objLbx.ListIndex, 8)
            objForm.TextBox10.Text = objLbx.List(objLbx.ListIndex, 9)
            objForm.TextBox11.Text = objLbx.List(objLbx.ListIndex, 10)
        'Next n
    End Sub
    utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        For n = 0 To objLbx.ColumnCount - 1
            objForm.Controls("TextBox" & n + 1).Text = objLbx.List(objLbx.ListIndex, n)
        Next n
    dans tous les cas met ce code dans le form 1 celui de la liste
    @+JP
    Mes contributions
    Form GRAPHIQUE, Gestion des boutons
    Form GRAPHIQUE, Liste Onglet dynamique
    Form GRAPHIQUE, Liste Multi-Colonne et ScrollBar Externe

    Les Gens "Instruit" ont passé leur temps à apprendre ce que les Gens "Intelligent" ont passé leur temps à trouver...(JP)

  10. #10
    Nouveau Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    mai 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mai 2017
    Messages : 5
    Points : 1
    Points
    1

    Par défaut

    je met juste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        For n = 0 To objLbx.ColumnCount - 1
            objForm.Controls("TextBox" & n + 1).Text = objLbx.List(objLbx.ListIndex, n)
        Next n
    Pas de private ... et de End ??

  11. #11
    Membre éprouvé Avatar de mjpmjp
    Homme Profil pro
    Chôme Dur des Ambulances
    Inscrit en
    avril 2012
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chôme Dur des Ambulances
    Secteur : Santé

    Informations forums :
    Inscription : avril 2012
    Messages : 734
    Points : 1 203
    Points
    1 203

    Par défaut

    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub ExtraireColonne(ByVal objLbx As Object, ByRef objForm As Object)
        'parcourir le nombre de colonne
        For n = 0 To objLbx.ColumnCount - 1
            objForm.Controls("TextBox" & n + 1).Text = objLbx.List(objLbx.ListIndex, n)
        Next n
    End Sub
    pourquoi dans le form1 et pas dans le 2 ?
    c'est à cause de "la portée des variables", fais une recherche tu comprendras

    @+JP
    Mes contributions
    Form GRAPHIQUE, Gestion des boutons
    Form GRAPHIQUE, Liste Onglet dynamique
    Form GRAPHIQUE, Liste Multi-Colonne et ScrollBar Externe

    Les Gens "Instruit" ont passé leur temps à apprendre ce que les Gens "Intelligent" ont passé leur temps à trouver...(JP)

  12. #12
    Nouveau Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    mai 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mai 2017
    Messages : 5
    Points : 1
    Points
    1

    Par défaut

    Un grand merci à toi c'est

    Et bon week end

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

Discussions similaires

  1. [XL-2003] Problème liens entre deux Listbox
    Par Maxgad dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/06/2012, 10h32
  2. lien entre Listbox et textbox en wpf
    Par brad63 dans le forum VB.NET
    Réponses: 3
    Dernier message: 23/01/2009, 11h05
  3. Faire le lien entre une listBox et des donnees
    Par kacedda dans le forum MFC
    Réponses: 2
    Dernier message: 18/11/2008, 18h01
  4. [VB2005] lien entre combobox et listbox
    Par Petrolia dans le forum Windows Forms
    Réponses: 20
    Dernier message: 04/06/2006, 15h28
  5. [debutant][servlet]lien entre formulaire et servlet
    Par omega dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 05/03/2004, 09h54

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