Listbox boucle sur 2 tableaux structurés
Bonjour,
Je rencontre un problème mon fichier avec 2 tableaux.
Le premier tableau "DEMANDE" Contient des tâches à réaliser
Le second tableau "REALISE" contient les tâches réalisées
Dans le principe: L
L'utilisateur ouvre un Userform avec un Listbox1 qui affiche la liste des demandes en cours
Il saisi une date dans TextBox1
Il sélectionne toutes les lignes qu'il veut dans la listbox
et Lors du click sur le Bouton "Valider"
On copie les champs du tableau "DEMANDE" dans le tableau "REALISE"
On supprime le Listrow du tableau DEMANDE
On supprime les éléments sélectionnés de la listbox
Mon problème (sur variable MyRowD apprament) est que dès lors que les éléments sélectionnés ne se suivent pas, ça ne copie pas les bonnes données.
Voilà à quoi celà ressemble
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| Option Explicit
Private MyRowR As ListRow
Private MyRowD As ListRow
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 5
ListBox1.ColumnWidths = "270;0;0;0;400"
ListBox1.List = Range("DEMANDE[DESIGNATION]:DEMANDE[DEMANDES]").Value
End Sub
Private Sub CmdValid_Click()
Dim I As Long
If TextBox1 = "" Then
MsgBox "Il faut obligatoirement saisir la date"
Exit Sub
End If
'Ici on fait le décompte du listcount à l'envers avec "Step -1"
'Parce que le dernier élément est supprimé en premier comme ça
'VBA a toujours les premiers éléments avec des Listcount connus (Qui n'ont pas été effacé)
For I = ListBox1.ListCount - 1 To 0 Step -1
If ListBox1.Selected(I) Then
Set MyRowR = Range("REALISE").ListObject.ListRows.Add
Set MyRowD = Range("DEMANDE").ListObject.ListRows(ListBox1.ListIndex + 1)
MyRowR.Range(1).Value = MyRowD.Range(1).Value
MyRowR.Range(2).Value = MyRowD.Range(5).Value
MyRowR.Range(3).Value = CDate(TextBox1.Value)
MyRowD.Delete
ListBox1.RemoveItem (I)
End If
Next
TextBox1.Value = ""
End Sub |
Si quelqu'un a une idée je suis preneur.
Merci