Remplir un tableau par textbox en fonction d'une listbox

Bonjour à tous,

J'ai une base de donnée (BDD) regroupant les noms et prénom de mon équipe, utilisé sous forme de listbox dans un userform. Cette userform est composé de 6 textbox qui doivent (d'où mon souci) enregistrer les données saisi dans mon tableau BDD en fonction du noms ou des noms sélectionner dans ma listbox. J'ai cherché sur pas mal de site sans trouver mon bonheur ou pas suffisamment décrit pour que je puisse l'adapté à mon modèle.

Pour le moment j'ai juste créer l'userform et configurer la listbox pour avoir la liste de noms issue de mon tableau. Malheureusement les autres boutons ne fonctionne pas, sans savoir pourquoi...

Je vous remercie par avance pour toute l'aide et les conseils que vous pourrez m'apportez. En espérant avoir suffisamment décrit ma demande.

243bdd-formation.xlsm (31.50 Ko)

Bonsoir,

Tout d'abord, lorsque tu initialises un Userform, et quelque soit son nom, le code associé est "TOUJOURS" :

Private Sub UserForm_Initialize()....

Ensuite, pour associer des codes à tes boutons, il faut mettre ces-dits codes "DANS" le code de l'USF, et non dans un module....

Recopie ces codes (que tu as toi-même créé), dans le code de l'USF ;

Private Sub all_formation_Click() 'selectionner tout
Dim i As Integer

For i = 0 To ListBox1.ListCount - 1
  ListBox1.Selected(i) = True
Next
End Sub
Private Sub valider_formation_click() 'valider

Dim i As Integer

For i = 0 To ListBox1.ListCount - 1
  If ListBox1.Selected(i) Then
    NewLine.Cells(1, 2 + i) = "X"
  End If
Next
End Sub

Private Sub UserForm_Initialize()
Dim Lig As Integer, drLig As Integer

With Sheets("BDD")
    drLig = .Range("B5").End(xlDown).Row
    For Lig = 5 To drLig
        Formation.ListBox1.AddItem .Range("B" & Lig)
    Next Lig
End With

End Sub

Et supprime les codes dans le Module1...

tu as maintenant une base de travail...

Bon courage

PS : je ne vois pas du tout ce que tu veux désigner par "NewLine"....

Bonsoir cousinhub et merci de prendre du temps pour mon problème.

J'ai corrigé le fichier d'après t'es commentaire. Concernant la fonction "newline" c'est un copier/coller résiduel de mes essais, j'ai oublié de le supprimer .

Bilan, il me reste le gros blocs d'enregistrement des données enclenché par le bouton "valider" par rapport à ma listbox, en espérant que ce soit réalisable

Merci encore

up

Bonsoir,

Je ne comprends pas ton "Up"....

Pour moi, tu avançais dans ton projet (Personnellement, je ne m'en suis plus du tout occupé....)

Donc, je suppose que tu avances, et que tu as un pb pour la suite.

Il serait alors bien que tu mettes un nouveau fichier, avec l'avancement en cours, et en signalant l'endroit où tu coinces...

Pour ma part, je ne vais pas te faire du "tout cuit"....

Bon courage

Bonjour,

ok c'est un mal entendu, désolé.

voici donc le fichier et la ligne spécifique qui me pose problème, j'ai pas un haut niveau de connaissance en vba alors désolé pour le coté "artisanale" du code.

Private Sub valider_formation_click() 'bouton valider
Dim i As Integer
    For i = 0 To ListBox1.ListCount - 1
        ListBox1.Selected(i) = False
    Next i                                 'indexer les items de la liste
    intitulé_formation.Select       'récupérer la valeur de l'intitulé de formation
    Selection.Copy                    'par défaut je fait un copier coller des infos
    Sheets("BDD").Select
    ***column ("G") & line i          'la colonne sera fixe mais la ligne est en fonction de "i"
    ActiveSheet.Paste

End Sub

***= mon souci vient de cette ligne, je n'arrive pas à formuler cette commande en VBA pour lui dire que la colonne sera fixe pour ce textbox et que la ligne sera déterminé par le i de ma listbox. Merci d'avance

373bdd-formation.xlsm (28.04 Ko)

Bonsoir,

Essaie avec ce code :

Private Sub valider_formation_click() 'bouton valider
Dim i As Integer
If Me.intitulé_formation = "" Then
    MsgBox "Vous devez remplir une formation"
    Exit Sub
End If
With Sheets("BDD")
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then
            .Cells(i + 5, "E").Value = Me.intitulé_formation
        End If
    Next i                          'indexer les items de la liste
End With
End Sub

Bonne soirée

Rechercher des sujets similaires à "remplir tableau textbox fonction listbox"