Bonjour,
J'ai un ListBox dans un Userform alimenté par des TextBox et des ComboBox.
Je souhaite modifier les données de ce ListBox avant de les transférer dans une feuille.
Après de nombreuses heures de recherches sur les forum (et dans mon cerveau), je n'ai que des embryons de solutions. Je m'en remets donc au forum pour m'aider.
Dans l'attente de vous lire.

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
Private Sub B_Valider_Click()
Dim n As Integer
Dim c As Control
Dim j As Integer
Dim nom_control As String
Dim Tbl() As Variant
Dim i As Integer
 
If optAvance.Value = False And optPaiement.Value = False And optRemboursement = False Then
  MsgBox "Vous devez choisir un type d'opération avant de Valider !", vbInformation
  optPaiement.SetFocus
  Exit Sub
End If
 
For Each c In Me.Controls
    Select Case TypeName(c)
      Case "TextBox", "ComboBox"
        If c.Value = "" Then
           MsgBox "Saisir cette zone!"
           c.SetFocus
           Exit Sub
        End If
     End Select
   Next c
 
  If ListBox1.ListCount > 0 Then
    Tbl = Me.ListBox1.Column
    n = Me.ListBox1.ListCount
    ReDim Preserve Tbl(0 To 10, 0 To n)
  Else
    n = 0
    ReDim Tbl(0 To 10, 0 To n)
  End If
  Tbl(0, n) = Me.NoLigne
  Tbl(1, n) = CDate(Me.Label21)
  Tbl(2, n) = Me.Bénéficiaire
  Tbl(3, n) = R
  Tbl(4, n) = Me.RibBénéficiaire
  Tbl(5, n) = Me.ComboBox3
  Tbl(6, n) = Me.ComboBox1
  Tbl(7, n) = Me.RéférencePièce
  Tbl(8, n) = Me.ComboBox2
  Tbl(9, n) = Me.DatePièce
  Tbl(10, n) = CDbl(Me.MontantRéglement)
  Me.ListBox1.Column = Tbl
 
For Each c In Me.Controls
  If nom_control <> "NoLigne" Then
    Select Case TypeName(c)
      Case "TextBox"
        c.Value = ""
      Case "ComboBox"
        c.ListIndex = -1
    End Select
  End If
Next c
 
  Me.Bénéficiaire.Enabled = True
  'Me.Bénéficiaire.SetFocus
  Me.NoLigne = Me.ListBox1.ListCount + 1
  'Me.NoLigne = Me.NoLigne + 1
End Sub
 
Private Sub Listbox1_Click()
 
Me.NoLigne = ListBox1.List(ListBox1.ListIndex, 0)
Me.Label21 = ListBox1.List(ListBox1.ListIndex, 1)
Me.Bénéficiaire = ListBox1.List(ListBox1.ListIndex, 2)
Me.RibBénéficiaire = ListBox1.List(ListBox1.ListIndex, 4)
Me.ComboBox3 = ListBox1.List(ListBox1.ListIndex, 5)
Me.ComboBox1 = ListBox1.List(ListBox1.ListIndex, 6)
Me.RéférencePièce = ListBox1.List(ListBox1.ListIndex, 7)
Me.ComboBox2 = ListBox1.List(ListBox1.ListIndex, 8)
Me.DatePièce = ListBox1.List(ListBox1.ListIndex, 9)
Me.MontantRéglement = ListBox1.List(ListBox1.ListIndex, 10)
 
End Sub
 
Private Sub B_Modifier_Click()
Dim Li As Integer
Dim i As Integer
Dim DLigne As Integer
Dim a() As Variant
 
Sheets("Modif").Range("A2:L30").ClearContents
If Me.ListBox1.ListIndex = -1 Then Exit Sub
 
With Sheets("Modif")
i = ListBox1.ListIndex + 2
  .Range("A" & i) = Me.NoLigne
  .Range("B" & i) = Date
  .Range("C" & i) = Me.Bénéficiaire
  .Range("D" & i) = R
  .Range("E" & i) = Me.RibBénéficiaire
  .Range("F" & i) = Me.ComboBox3
  .Range("G" & i) = Me.ComboBox1
  .Range("H" & i) = Me.RéférencePièce
  .Range("I" & i) = Me.ComboBox2
  .Range("J" & i) = Me.DatePièce
   With .Range("K" & i)
    .Value = -Val(Me.MontantRéglement)
    .NumberFormat = "#,##0"
  End With
End With
 
Set f = Sheets("Modif")
ListBox1.List = f.Range("A2:K" & f.[A65000].End(xlUp).Row)
 
 
End Sub