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
Si quelqu'un a une idée je suis preneur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Merci
Partager