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. Le choix multiselect ne fait rien apparaître dans ma base de données.

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

d'avance merci

xavier

39classeur1.xlsm (45.63 Ko)

Bonjour,

le choix multiselect fonctionne bien, voici un test avec exemple,

bonjour,

merci pour votre retour

oui il fonctionne et encore mieux présenté now mais la sélection ne s'affiche pas dans ma base de donnée. J'aimerais pouvoir les voir apparaître. C'est possible ?

En tout cas merci pour la présentation et le msg box

J'aimerais pouvoir les voir apparaître. C'est possible ?

que les données (ou ligne entière) soient sélectionnées sur l'onglet "Base de donnée intervenants" ?

non, que les données que j'ai sélectionné via ma zone de liste et qui sont vérifiées avec la msgbox "vérifier mes choix" puissent s'intégrer dans la colonne "i" de ma base de donnée (pour mon champ mobilité).

si je passe la listbox en "fmmultiSelectSingle", pas de souci ça marche la valeur indiqué dans le formulaire sur la zone de liste apparaît bien dans ma base de donnée après validation de mon formulaire.

Mais des que je passe en multiselect l'intégration dans la cellule de destination ne se fait pas après validation du formulaire. (j'aimerais qu'il puisse apparaître séparé d'un ";" par exemple)

Bonjour,

il faudrait modifier la procédure permettant d'ajouter un nouvel enregistrement dans la base de donnée'

Private Sub btnAjout_Click()
Dim i As Integer

ctrl = Array("txtNom", "txtPrenom", "txtAdresse", "txtCP", "txtVille", "txtTelephone", "txtMail")

    For i = 0 To Me.lbMobilite.ListCount - 1
        If Me.lbMobilite.Selected(i) Then
            Mobilite = Mobilite & Me.lbMobilite.List(i) & ";"
        End If
    Next i

    For i = 0 To Me.lbCompetence.ListCount - 1
        If Me.lbMobilite.Selected(i) Then
            Competence = Competence & Me.lbCompetence.List(i) & ";"
        End If
    Next i

With Sheets("Base de donnée intervenants")
 lastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1

 For i = 1 To 6
   .Cells(lastRow, i) = Me.Controls(ctrl(i - 1))
 Next

 .Cells(lastRow, 8) = Competence
 .Cells(lastRow, 9) = Mobilite
 .Cells(lastRow, 10) = Me.Controls("txtCommentaire")
 End With

MsgBox "Votre intervenant a bien été ajouté à votre base de données", vbOKOnly + vbInformation, "Confirmation"
End Sub

edit:

il faut modifier

 For i = 1 To 6

par

 For i = 1 To 7

je suis un peu dépassé la ...

alors j'ai modifié la procédure permettant donc un nouvel enregistrement avec le code que tu m'as fourni :

message d'erreur lors de l'exécution :

Erreur de compilation, erreur de syntaxe.

je relis et tente de comprendre le code (ça ne fait pas longtemps que je me suis mis à la VBA .....)

Bonjour,

voici la modification,

plus de message d'erreur , mais les enregistrements ne se font plus sur la base de données malgré le message de la msgbox qui valide l'enregistrement, mais rien n'apparait dans la feuille base de donnée

Bonjour,

pourriez-vous réessayer,


voici ce que j'obtiens,

xavier22 im1

c'est top pour les list box merci infiniment.

votre code dépasse mes compétences, mais avec l'utilisation du tableau que je fais si je supprime les test que nous avons effectué ne faudrait il pas que je rajoute :

Selection.End(xlDown).Select

afin que la saisie se place automatiquement sur la dernière ligne vide


en fait juste une problèmatique de mise en forme de tableau.

c'est au top

je continu sur ce projet grace à vous

merci SabV

non puisque la première ligne vide est trouvé sur la variable lastRow

lastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1

Merci pour ce retour, au plaisir!

pour clôturer le fil, cliquer sur le bouton V vert du post à coté du bouton EDITER, merci!

merci pour cette leçon que je vais continuer à déchiffrer.

@ très bientôt sans nul doute

Bonjour SabV,

Je souhaite pouvoir rajouter ce code au code que tu m'as créer :

Sheets("compétences".activate

Range("e8").select

Activeworkbook.refresall

bien évidemment ça ne fonctionne pas

peux tu m'éclairer ?

Bonjour, essayer comme ça,

Application.Goto Sheets("Compétences").Range("A3")
ActiveWorkbook.RefreshAll

Bah ouaih c'est génial ...................

mais le truc c'est que je comprends pas .......................................

pkoi le mien ne fonctionnait pas ??

si je souhaite rajouter encore qqchose je saisi "applicationgoto" ?

en tout cas vraiment merci pour les leçons

vous n'avez pas besoin de sélectionner la cellule pour ajouter ou modifier une valeur de cellule,

par exemple:

Sheets("Compétences").Range("A3") = "maValeur"
Rechercher des sujets similaires à "choix multiples zone liste formulaire"