Bonjour
Sur un formulaire qui permet l'ajout , la modification et la suppression de données (ligne)
l'ajout se fait bien en dernière ligne mais la modification et la suppression se fait sur la première ligne au lieu de la ligne sélectionnée dans une listbox.
je pense que me.enreg ne prend pas la bonne valeur mais je ne trouve pas la solution.
Cette question est peut-être pour boisgontierjacques
merci pour votre aide
Ouverture Userform
Sélection Listbox
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 Private Sub UserForm_Initialize() Set f = Sheets("BD") Set Rng = f.Range("A2:m" & f.[A65000].End(xlUp).Row) BD = f.Range("A2:N" & f.[A65000].End(xlUp).Row).Value 'BD = f.Range("A2:M" & f.[A65000].End(xlUp).Row).Value ' BD = Rng.Value Ncol = Rng.Columns.Count Set d = CreateObject("Scripting.Dictionary") Tri BD, LBound(BD), UBound(BD), 2 ' version tri col ville d("*") = "" For i = LBound(BD) To UBound(BD) d(BD(i, 2)) = "" Next i Me.ComboBox2.List = d.keys Me.ComboBox2 = "*" d.RemoveAll Tri BD, LBound(BD), UBound(BD), 3 ' version tri cerem d("*") = "" For i = LBound(BD) To UBound(BD) d(BD(i, 3)) = "" Next i Me.ComboBox3.List = d.keys: Me.ComboBox3 = "*" d.RemoveAll Tri BD, LBound(BD), UBound(BD), 4 ' version tri date d("*") = "" For i = LBound(BD) To UBound(BD) d(Year(BD(i, 4))) = "" Next i Me.ComboBox1.List = d.keys: Me.ComboBox1 = "*" 'd.RemoveAll Me.ListBox1.ColumnCount = 14 Me.ListBox1.ColumnWidths = "50;60;150;50;30;30;50;50;50;50;50;50;50;50;1" Me.ListBox1.List = BD Me.Enreg = f.[A65000].End(xlUp).Row + 1 End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub ListBox1_Click() For K = 1 To Ncol Me("textBox" & K) = Me.ListBox1.Column(K - 1) Next K Me.Enreg = Me.ListBox1.Column(Ncol) + Rng.Row - 1 End Sub
Bouton ajout/modif
Bouton Supprimer
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
32
33
34
35
36
37
38
39
40
41 Private Sub b_modif_Click() Me.TextBox11 = Year(Now) If Me.Enreg <> "" And Me.textbox1 <> "" Then NoEnreg = Me.Enreg For K = 1 To Ncol X = Replace(Me("textBox" & K), " ", "") If IsNumeric(X) Then f.Cells(NoEnreg, K) = Val(X) Else f.Cells(NoEnreg, K) = Me("textBox" & K) End If Next K raz Me.Enreg = "" 'Me.textbox1.Paste Unload F_dates Unload F_calendrier2datesForm F_dates.Hide F_calendrier2datesForm.Hide UserForm_Initialize End If End Sub Private Sub b_ajout_Click() raz Me.Enreg = f.[A65000].End(xlUp).Row + 1 End Sub Private Sub B_sup_Click() If MsgBox("Etes vous sûr de suppimer la demande de : " & f.Cells(Enreg, 2) & " du " & f.Cells(Enreg, 4) & " ?", vbYesNo) = vbYes Then Enreg = Me.Enreg f.Cells(Enreg, 1).Resize(, Ncol).Delete Shift:=xlUp raz Me.Enreg = "" UserForm_Initialize End If End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub B_sup_Click() If MsgBox("Etes vous sûr de suppimer la demande de : " & f.Cells(Enreg, 2) & " du " & f.Cells(Enreg, 4) & " ?", vbYesNo) = vbYes Then Enreg = Me.Enreg f.Cells(Enreg, 1).Resize(, Ncol).Delete Shift:=xlUp raz Me.Enreg = "" UserForm_Initialize End If End Sub
Partager