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 :

Lien entre listbox et texbox [XL-2013]


Sujet :

Macros et VBA Excel

  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 extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    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
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  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 extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    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
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  5. #5
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    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 : 272
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
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  6. #6
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    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
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  7. #7
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    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
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  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 extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    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
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  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 extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    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
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  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, 09h32
  2. lien entre Listbox et textbox en wpf
    Par brad63 dans le forum VB.NET
    Réponses: 3
    Dernier message: 23/01/2009, 10h05
  3. Faire le lien entre une listBox et des donnees
    Par kacedda dans le forum MFC
    Réponses: 2
    Dernier message: 18/11/2008, 17h01
  4. [VB2005] lien entre combobox et listbox
    Par Petrolia dans le forum Windows Forms
    Réponses: 20
    Dernier message: 04/06/2006, 14h28
  5. [debutant][servlet]lien entre formulaire et servlet
    Par omega dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 05/03/2004, 08h54

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