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 :

Choix multiples dans ma zone de liste sur formulaire [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Août 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2017
    Messages : 3
    Par défaut Choix multiples dans ma zone de liste sur formulaire
    Bonjour à toutes et tous,

    je cherche à pouvoir générer un choix multiples avec mes zones de liste dans mon formulaire et renvoyer ce choix après validation du formulaire dans une cellule de ma base de donnée. Le choix multiselect ne fait rien apparaître dans ma base de données qd je valide mon formulaire après sélection de mes données pour mes 2 zone de liste.

    pouvez vous me donner un coup de main pour comprendre la manip.

    d'avance merci

    xavier

    Copie de Xavier22-ListBox.xlsm

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour et bienvenue au forum,
    Conformément aux règles du forum, n'envoie pas de fichier joint, mais expose nous ton problème dans ton message. Donne-nous ton code actuel (entre balises codes!) et dis-nous là où ça ne marche pas. Message d'erreur ? Lequel et où ?
    A bientôt avec plus de précisions

  3. #3
    Candidat au Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Août 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2017
    Messages : 3
    Par défaut
    oups désolé. merci pour l'info je suis passé à travers...

    J'ai créé un formulaire afin de remplir une base de donnée.

    Dans ce formulaire j'ai intégré 2 zones de liste à choix multiples, à savoir :

    - lbCompétence
    - lbMobilité

    j'ai rentré ce code afin de récupérer les données dans ma base de donnée. Seulement ça ne marche pas pour mes list box: ça me renvoi : "vraie"

    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
    Private Sub btnAjout_Click()
     
    'Activer la première cellule vide de la base de donnée'
     
     
    Sheets("Base de donnée intervenants").Activate
    Range("a1").Select
    Selection.End(xlDown).Select 'on se positionne sur la dernière ligne vide'
    Selection.Offset(1, 0).Select 'on se décale d'une ligne vers le bas'
    ActiveCell = txtNom.Value
    ActiveCell.Offset(0, 1).Value = txtPrenom
    ActiveCell.Offset(0, 2).Value = txtAdresse
    ActiveCell.Offset(0, 3).Value = txtCP
    ActiveCell.Offset(0, 4).Value = txtVille
    ActiveCell.Offset(0, 5).Value = txtTelephone
    ActiveCell.Offset(0, 6).Value = txtMail
    ActiveCell.Offset(0, 7).Value = lbCompetence.Selected(i)
    ActiveCell.Offset(0, 8).Value = lbMobilite.Selected(i)
    ActiveCell.Offset(0, 9).Value = txtCommentaire
     
     
     
    MsgBox "Votre intervenant a bien été ajouté à votre base de données", vbOKOnly + vbInformation, "Confirmation"
     
     
     
    End Sub
    et celui ci pour mes list box

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
          Dim Msg As String
          Dim i As Integer
          For i = 0 To Me.lbMobilite.ListCount - 1
              If Me.lbMobilite.Selected(i) Then
                  Msg = Msg & Me.lbMobilite.List(i) & vbNewLine
              End If
          Next i
          MsgBox Msg
    End Sub

  4. #4
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Je t'invite à lire ceci : http://silkyroad.developpez.com/VBA/...serForm/#LII-G
    La propriété Selected(i) pour une listbox renvoie vrai si l'élément n° i de la listbox est sélectionné, elle renvoie faux sinon. Come tu ne donnes pas de valeur à i, le programme cherche à savoir su l'élément n°0 de la listbox est sélectionné et renvoie vrai ou faux selon le cas.

    La propriété List(i) de listbox renvoie l'élément n° i de la listbox. Si tu as une listbox à choix multiples, tu peux donc parcourir les éléments de la listbox et les récupérer grâce à List(i).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 0 To lbCompetence.ListCount
        If lbCompetence.Selected(i) Then comp = comp & vbNewLine & lbCompetence.List(i)
    Next i
    Petit commentaire par rapport à ton code : évite les Activate/Select/Selection/ActiveCell etc... ça entraîne souvent des problèmes difficilement résolvables. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub btnAjout_Click()
    Dim rngl As Range
     
     Set rng Sheets("Base de donnée intervenants").Range("A1").End(xlDown).Offset(1, 0)
     rng.Value = txtNom.Value
     rng.Offset(0, 1).Value = txtPrenom
     rng.Offset(0, 2).Value = txtAdresse
    [...]
     MsgBox "Votre intervenant a bien été ajouté à votre base de données", vbOKOnly + vbInformation, "Confirmation"
     End Sub

  5. #5
    Candidat au Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Août 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2017
    Messages : 3
    Par défaut
    merci infiniment pour votre retour

    @ très bientôt

    Xavier

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

Discussions similaires

  1. [AC-2003] Suppression d'un selection multiple dans une zone de liste
    Par yieiyiei dans le forum VBA Access
    Réponses: 15
    Dernier message: 25/02/2015, 15h34
  2. Sélection multiple dans une zone de liste
    Par mawi dans le forum VBA Access
    Réponses: 5
    Dernier message: 25/09/2007, 18h00
  3. Réponses: 1
    Dernier message: 06/07/2007, 13h44
  4. selection multiple dans une zone de liste
    Par issam16 dans le forum Access
    Réponses: 1
    Dernier message: 22/06/2006, 10h44
  5. sélection multiple dans plusieurs zones de liste
    Par malabar92 dans le forum Access
    Réponses: 2
    Dernier message: 16/05/2006, 01h08

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