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 -
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
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
-
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 -
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