Récupérer les données d'une liste box exel

mimicor Messages postés 2 Statut Membre -  
mimicor Messages postés 2 Statut Membre -
Bonjour,
je ne suis pas trop doué, j'ai créer un masque de saisi pour un suivi de formation, mon userform comprend plusieurs combolist et 1 listbox en multltiselection.
Je voudrais que les données selectionner de la liste box incremente une ligne par agents séléctionnés avec à chaque fois les données des combo.
en fait lorsque je valide suivant ou je place le next i soit il ne met q'1 seule ligne soit j'ai toute la liste qui s'incremente. Déja j'y vais à taton mais comme je ne comprend rien je deviens fou. fichier exel 2007
si quelqu'un peut me donner un coups de main ça serai simpa, merci d'avance.
ci dessous les differents codes

"bouton valider "Private Sub CommandButton1_Click()

' On teste la saisie de la dat

If Me.thémes_jour.Text = "" Then
MsgBox "Vous devez entrer une date."
Me.thémes_jour.SetFocus
Exit Sub

End If
If Not IsDate(thémes_jour.Text) Then
MsgBox "format incorrect"
thémes_jour.Text = ""
Exit Sub

End If
'On teste la saisie de l'agent
If Me.agent.Text = "" Then
MsgBox "Vous devez entrer un Nom."
Me.agent.SetFocus
Exit Sub

End If
' On teste la saisie de la date
If Me.thémes_modules.Text = "" Then

MsgBox "Vous devez entrer un modules."
Me.thémes_modules.SetFocus
Exit Sub

End If
' On teste la saisie du thémes de manoeuvres
If Me.Thémes_Manoeuvres.Text = "" Then
MsgBox "Vous devez entrer un Thémes pratique."
Me.Thémes_Manoeuvres.SetFocus
Exit Sub

End If
' On teste la saisie de l'agent

If Me.Temps_prat.Text = "" Then
MsgBox "Vous devez entrer un temps de formation pratique."
Me.Temps_prat.SetFocus
Exit Sub

End If
If Me.théorie.Text = "" Then
MsgBox "Vous devez entrer un Thémes théorique."
Me.théorie.SetFocus


End If
If Me.Temps_théo.Text = "" Then
MsgBox "Vous devez entrer un temps de formation théorique."
Me.Temps_théo.SetFocus
Exit Sub

End If


Dim i As Byte
Dim ValeurARetourner As String

For i = 0 To agent.ListCount - 1
If agent.Selected(i) = True Then
ValeurARetourner = ValeurARetourner & agent.List(i) & "&"
End If
Range("B65536").End(xlUp).Offset(1, 0).Value = ValeurARetourner
Range("A65536").End(xlUp).Offset(1, 0).Value = thémes_jour
Range("c65536").End(xlUp).Offset(1, 0).Value = thémes_modules
Range("d65536").End(xlUp).Offset(1, 0).Value = Thémes_Manoeuvres
Range("e65536").End(xlUp).Offset(1, 0).Value = Temps_prat
Range("f65536").End(xlUp).Offset(1, 0).Value = théorie
Range("g65536").End(xlUp).Offset(1, 0).Value = Temps_théo
Next i
Exit Sub
End Sub


" mon format date" il fonctionne

Private Sub thémes_jour_Change()
Dim valeur As Byte
thémes_jour.MaxLength = 10
valeur = Len(thémes_jour)
If valeur = 2 Or valeur = 5 Then thémes_jour = thémes_jour & "/"
End Sub

" mon user form avec placement à l'écran au demarage"

Private Sub UserForm1_Activate()
With UserForm1
.StartUpPosition = 1
.Width = Application.Width
.Height = Application.Height
End With
End Sub


" mon user form avec chargement des liste au demarage"

Private Sub UserForm1_initialize()
Dim i As Integer, derlig As Integer
agent.Clear
With Sheets("listes")
derlig = .Range("B65536").End(xlUp).Offset(1, 0).Value
For i = 1 To derlig
agent.AddItem .Cells(i, 1).Value
Next i
End With
For i = 0 To agent.ListCount - 1
If agent.Selected(i) = True Then
agent.Selected(i) = False
End If
Next i



Cbothémes_modules.RowSource = (Modules)
Cbothémes_modules.ListIndex = -1
CboThémes_Manoeuvres.RowSource = (Thémes_Manoeuvres)
CboThémes_Manoeuvres.ListIndex = -1
Listagent.RowSource = (agents)
Listagent.ListIndex = -1
cbothéorie.RowSource = (théorie)
cbothéorie.ListIndex = -1
cboTemps_prat.RowSource = (Temps_formation)
cboTemps_prat.ListIndex = -1
cbotemps_théo.RowSource = (Temps_formation)
cbotemps_théo.ListIndex = -1
End Sub


2 réponses

pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 768
 
Bonjour,
Essaye déjà comme ceci :
Dim i As Byte  
Dim ValeurARetourner As String  

For i = 0 To agent.ListCount - 1  
    If agent.Selected(i) = True Then  
        ValeurARetourner = ValeurARetourner & agent.List(i) & "&"  
        'End If  
        Range("B65536").End(xlUp).Offset(1, 0).Value = ValeurARetourner  
        Range("A65536").End(xlUp).Offset(1, 0).Value = thémes_jour  
        Range("c65536").End(xlUp).Offset(1, 0).Value = thémes_modules  
        Range("d65536").End(xlUp).Offset(1, 0).Value = Thémes_Manoeuvres  
        Range("e65536").End(xlUp).Offset(1, 0).Value = Temps_prat  
        Range("f65536").End(xlUp).Offset(1, 0).Value = théorie  
        Range("g65536").End(xlUp).Offset(1, 0).Value = Temps_théo  
    End If 
Next i  
'Exit Sub  
End Sub  


Cordialement,
Franck P
0
mimicor Messages postés 2 Statut Membre
 
merci la formule à l'air mieux ,je viens d'essayer, cette fois il me demande de rentrer un nom, en fait il ne voit pas les nonms dans la liste box
un vrai casse tête cette listbox "agent"
merci encore
0