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

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  2. 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