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 :

Listbox à userform


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
    Agriculture-agroalimentaire
    Inscrit en
    Novembre 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agriculture-agroalimentaire
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2017
    Messages : 24
    Par défaut Listbox à userform
    Bonjour à tous,

    je suis en train de construire un Base de données sur Excel (plus accessible pour moi que Access). Jusqu'à présent, j'ai réussi à coder comme je le voulais, grâce à ce forum. Mais là, je sèche et ne trouve pas de réponses.
    Sur ma base de données, j'ai une feuille appelée "bd" sur laquelle je recense des établissements scolaires.
    J'ai crée un formulaire "consult", qui me permet, grâce à une recherche en cascade, d'afficher les établissements qui répondent à la recherche dans une ListBox appelée "ListBox1" (je changerai le nom ultèrieurement).
    Ce que je voudrais arriver à faire c'est :
    Sélectionner une ligne (qui correspond à un établissement) dans ListBox1. A partir de cette sélection, si je clique sur "modifier l’établissement sélectionné", je voudrais ouvrir le formulaire ajout_etab_1 avec les champs pré remplis, à savoir :

    L'id de la colonne 1 (donc colonne 0) de la ligne sélectionnée de la listbox1 vient s'incrémenter dans la zone de texte "id_etab" du formulaire ajout_etab_1
    le "nom" de la colonne 2 (donc colonne 1) de la ligne sélectionnée de la Listbox1 vient s'incrémenter dans la zone de texte "nom" du formulaire ajout_etab_1
    le type d’établissement de la colonne 3 (donc colonne 2) de la ligne sélectionnée de la Listbox1 vient s'incrémenter dans la zone de texte "typ_etab" du formulaire ajout_etab_1

    etc .....
    Le formulaire me servira à modifier les informations d'un établissement.

    J'espère que mon message est claire et que quelqu'un pourra m'apporter un début de réponse.
    Je vous remercie par avance pour votre contribution.

    Bien cordialement
    Stéphane Bernier

    Ps : en PJ ce que j'ai déjà réalisé.
    Fichiers attachés Fichiers attachés

  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,

    Pgm générique:Recherche par 6 comboboxs puis recherche intuitive multi-mots multi-colonnes , Ajout,Modif.


    Bouton de lancement du formulaire sur la feuille BD

    On peut remplacer des TextBoxs par des comboBoxs.

    Pour créer un identifiant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub B_ajout_Click()
     raz
     Me.Enreg = Range(NomTableau).Rows.Count + 1
     Me.TextBox1 = Application.Max(Application.Index(TabBD, , 1)) + 1
    End Sub


    Boisgontier
    Fichiers attachés Fichiers attachés

  3. #3
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Attention à la liste d'adresses mail contenue dans le fichier
    Même si ces adresses ne sont pas confidentielles, elles pourraient être utilisées ou revendues dans le but de diffuser du SPAM (ou autre), il vaut mieux supprimer ce genre de contenu avant diffusion (ça n'est que mon avis).

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  4. #4
    Membre averti
    Homme Profil pro
    Agriculture-agroalimentaire
    Inscrit en
    Novembre 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agriculture-agroalimentaire
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2017
    Messages : 24
    Par défaut
    Bonjour Jacques, Bonjour Qwazerty,

    Dans un premier temps, je vous remercie des retours que vous avez réalisés.
    Toutefois, ce n'est pas tout à fait ce que je souhaite. En effet, le userform "consult" a été créé pour consulter les établissements, et le cas échéants, ajouter un événement avec la possibilité de modifier également au besoin. Si je parviens à trouver la solution pour repiquer les infos d'une ligne pour alimenter un autre formulaire alors je pense que je pourrai avancer.
    La solution que vous me proposez Jacques est certes très bien construite (je ne serais pas capable d'en faire autant) et je pense pouvoir me servir de certaines lignes de code que vous avez utilisées. Néanmoins, je voudrais vraiment partir du formulaire "consult" et chaîner vers un formulaire de modification.
    Attention au liste d'adresse mail contenu dans les fichiers
    Qwerty, c'est exact, tu as raison de me faire la remarque et je t'en remercie. Bien évidement, ces adresses sont en accès libre sur le site en accès libre du ministère et sur les sites des différents établissements. Effectivement, s'il s'était agit des adresses mais persos des chefs d'établissement, je ne les aurais pas intégrées. Merci en tout cas.

    Mon problème n'est pas encore complètement résolu, et je laisse donc la discussion ouverte.

    Bien cordialement et merci à nouveau.

    Stéphane

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Les modifications:

    Dans Consult
    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
    Private Sub modif_Click()
    Dim iLigne As Integer
     
    'On boucle sur les item de la liste
    For iLigne = 0 To (ListBox1.ListCount - 1)
     
        If ListBox1.Selected(iLigne) Then
            'ajout_etab_1.id_etab.Caption = Me.ListBox1.List(compteur, 0)
            'ajout_etab_1.Show
            'On appel la procedure d'affiche du userofrm
            ajout_etab_1.ShowLigneByID ListBox1.List(iLigne, 0)
            'On quitte la boucle (sauf si le traitement de plusieurs ligne est autorisée
            Exit For
        End If
    Next
    Dans ajout_etab_1
    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
    Private Sub UserForm_Initialize()
     
    'Dim i As Integer
    'Dim nb As Integer
    '    nb = consult.ListBox1.ListCount
    '    For i = 0 To nb
    '        Me.id_etab.Caption = consult.ListBox1.List(i)
    '    Next i
    '
    End Sub
     
    Sub ModifLigneByID(IDLigne As Long)
    Dim TheRow As ListRow, aCtrl As Control
     
        'On pointe le tableau structuré
        With F_BD.ListObjects("Tab_BD")
            'On recherche la ligne contenant l'ID
            On Error Resume Next
            Set TheRow = .ListRows(WorksheetFunction.Match(IDLigne, .ListColumns("ID").DataBodyRange, 0))
            On Error GoTo 0
            If TheRow Is Nothing Then
                'ID inexistant dans le tableau
                'Gestion à faire...
            Else
                'On procéde à l'affichage
                'On boucle sur les controles du userorm
                For Each aCtrl In Me.Controls
                    'On regarde si le tag est renseigné
                    If aCtrl.Tag <> "" Then
                        'On va chercher l'info dans therow
                        'Là il serait bien de gérer le cas ou le tag ne correspond à aucune colonne
                        aCtrl.value = TheRow.Range(1, .ListColumns(aCtrl.Tag).Index).value
                    End If
                Next
                'On affiche le userform
                Me.Show
            End If
        End With
    End Sub
    Puis sur le userform il faut rentrer dans la propriété tag de chaque controle le nom de la colonne correspondante dans le tableau BD

    ++
    Qwaz
    Fichiers attachés Fichiers attachés

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  6. #6
    Membre averti
    Homme Profil pro
    Agriculture-agroalimentaire
    Inscrit en
    Novembre 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Agriculture-agroalimentaire
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2017
    Messages : 24
    Par défaut A Qwazerty
    Bonjour Qwazerty,

    Merci beaucoup pour ce que tu as fait. Je n'ai, pour l'heure, pas pu tester, mais toute aide est bienvenue et je t'en remercie.
    Je vais tester cela aujourd'hui.

    Bien cordialement.

    Stéphane

Discussions similaires

  1. Calcul listbox userforme
    Par dgeo10 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 22/06/2018, 10h12
  2. [XL-2013] Probleme ListBox Userform
    Par crywiddo dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 07/10/2015, 10h44
  3. [XL-2010] Comment tranférer une valeur d'une listbox (userform) à une cellule de worksheet?
    Par Guy7090 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/07/2014, 14h29
  4. Réponses: 0
    Dernier message: 30/08/2008, 09h59
  5. [VBA-E] Liaison entre une listbox et un userform
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 25/02/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