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 :

Récupérer les données d'un listbox pour créer un formulaire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mai 2018
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Mai 2018
    Messages : 55
    Par défaut Récupérer les données d'un listbox pour créer un formulaire
    Bonjour,

    J'ai créé un userform pour faire un recherche dans une bdd. je souhaiterais pouvoir cliquer sur le résultat de ma listbox et créer un formulaire déja pré rempli avec les informations de ma BDD.

    Mon process voulu.

    > je recherche dans ma BDD une société > ok code ci-joint
    > je la valide dans la listebox
    > en validant j'ouvre un deuxième userform (formulaire) reprenant les informations déjà présente dans ma BDD.

    je ne sais pas comment créer le lien entre ma validation de société et mon nouveau formulaire déja pré-rempli des informations présente dans ma BDD.

    Pouvez vous m'aidez?

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Private Sub txt_SST_Change()
     
    'déclaration des variables
     
      Dim j As Integer
      Dim NbMax As String
      Dim mission_cherche As String
     
      'on reinitialise la listbox, efface les saisies
      Me.liste_SST.Clear
      'on enleve les couleurs
      Feuil1.Range("A7:AV500").Interior.ColorIndex = 0
     
      'on cherche la fin de la liste à parcourir
      'recherche a partir de la cellule 1000 la fin du tableau
      NbMax = Feuil1.Range("A500").End(xlUp)
     
      'on récupère la donnée saisie dans la textBox
      mission_cherche = Me.txt_SST.Value
     
      'on teste que la textbox n'est pas vide avant de faire la recherche
      If Me.txt_SST <> "" Then
     
        'on parcourt toute la liste afin de trouver les valeurs
        For j = 7 To NbMax
          'on teste le contenu de la cellule en prenant en compte toutes les valeurs saisies
          'grace au caractère de remplacement *
          If Feuil1.Cells(j, 4) Like "*" & UCase(Me.txt_SST) & "*" Then
            'colorier la ligne correspondante
            Rows(j).Interior.Color = RGB(100, 100, 100)
            'colorier la cellule
            'Cells(j, 4).Interior.Color = RGB(100, 100, 100)
                     'on complete la listbox des valeurs trouvées
             Me.liste_SST.AddItem Feuil1.Cells(j, 4)
     
          End If
     
        Next j
     
      End If
     
    End Sub

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Pour transférer une ligne de ListBox dans les TextBoxs de formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub ListBox1_Click()
      For i = 1 To NbCol
        tmp = Me.ListBox1.Column(i - 1)
        If Not IsError(tmp) Then Me("textbox" & i) = tmp
      Next i
      Me.Enreg = Me.ListBox1.Column(NbCol)
    End Sub
    Boisgontier

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Fdc_53 Voir le message
    Bonjour,

    Pourquoi un deuxième userform ?

    Autrement, regardez les exemples dans cette discussion : creation-fomulaire

  4. #4
    Membre averti
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mai 2018
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Mai 2018
    Messages : 55
    Par défaut
    Bonjour,


    Je vous remercie pour votre retour, je vais regarder votre fichier

    Voici ce que je cherche a faire.


    Je souhaite faire un formulaire de recherche de société a partir d'une base de données (liste des sociétés).
    De ce formulaire je sélectionne une société
    Cela ouvre un formulaire de commande à l'attention de cette société
    Qui complète une nouvelle base de données (liste de mes commandes) de mes commandes passées.

    j'ai déjà automatisé la création du bon de commande (a partir de la base de données 2) ainsi que l'envoi mail de mon bon de commande a partir de excel.

    Je ne maîtrise pas bien la gymnastique des userform et des formulaires. Je ne suis pas sur de me prendre au mieux.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Fdc_53 Voir le message
    Pour faire ce que vous souhaitez faire, j'utilise plutôt un contrôle Multipage si le nombre de contrôles n'est pas démesuré. Dans le premier onglet, vous sélectionnez votre client avec votre ListBox, dans un deuxième vous collectez les renseignements pour ce client dans une autre table. Vous n'avez pas à sortir de la boite de dialogue, vous avez juste le lien à faire entre les deux tables avec votre numéro de client.

    Mais c'est juste une question de préférence.

  6. #6
    Membre averti
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mai 2018
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Mai 2018
    Messages : 55
    Par défaut
    Merci effectivement j'ai réussi grâce au contrôle multi-page.

    Bonne journée

  7. #7
    Membre averti
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mai 2018
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Mai 2018
    Messages : 55
    Par défaut
    bonjour, de retour pour une modification du code.

    Comment afficher dans ma listbox 3 colonnes d'information (respectivement afficher colonne 3,4,5)

    Pour le moment j'affiche uniquement les informations en ligne je les voudrais en colonnes.

    par avance merci

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    Private Sub txt_CP_Change()
     
    'déclaration des variables
     
      Dim i As Integer
      Dim NbMax As Long
      Dim CP_cherche As String
     
      'on reinitialise la listbox, efface les saisies
        Me.liste_SST.Clear
      'on enleve les couleurs
      'Feuil1.Range("A7:XFD500").Interior.ColorIndex = 0
     
      'on cherche la fin de la liste à parcourir
      'recherche a partir de la cellule 1000 la fin du tableau
      NbMax = Feuil1.Range("A500").End(xlUp).Row
     
      'on récupère la donnée saisie dans la textBox
      CP_cherche = Me.txt_CP.Value
     
      'on teste que la textbox n'est pas vide avant de faire la recherche
      If Me.txt_CP <> "" Then
     
        'on parcourt toute la liste afin de trouver les valeurs
        For i = 7 To NbMax
          'on teste le contenu de la cellule en prenant en compte toutes les valeurs saisies
          'grace au caractère de remplacement *
                If Feuil1.Cells(i, 44) Like "*" & UCase(Me.txt_CP) & "*" Then
     
                  'on complete la listbox des valeurs trouvées
                  Me.liste_SST.AddItem Feuil1.Cells(i, 3)
                  Me.liste_SST.AddItem Feuil1.Cells(i, 4)
                  Me.liste_SST.AddItem Feuil1.Cells(i, 5)
     
             End If
     
        Next i
     
      End If
     
    End Sub

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

Discussions similaires

  1. [XL-2007] récupérer les données de mulltiselect listbox
    Par Merryy dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 06/07/2015, 11h52
  2. Réponses: 5
    Dernier message: 17/07/2013, 08h23
  3. [MySQL] récupérer les donnes d'une session pour afficher la table?
    Par keokaz dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/01/2010, 20h53
  4. Réponses: 62
    Dernier message: 16/04/2009, 10h09
  5. [Delphi for PHP] Récupérer les données d'un Datagrid pour une combobox ou listbox
    Par Truebison dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 27/08/2007, 09h27

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