Bonsoir le forum

J'ai créée un fichier avec un module de paiement qui fonctionne sur une partie.
La partie fonctionnel est: A partir de facture archivé non payé si le client souhaite payé immédiatement la facture est validée
La partie non-fonctionnel est quand le client souhaite payé en plusieurs fois.
Donc un Usf pour le paiement immédiat avec 5 modes de paiements et si paiement en plusieurs 5 Usf pour chaque mode de paiement.

Usf de paiement immédiat recueillant toutes les infos de toutes les factures par une listview avec les 5 modes de paiement incorporer.

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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
Dim Ws As Worksheet, j As Long, Nb As Integer, c As Control
'**** Correspond au programme de la CheckBox1 *****
Private Sub ChckB_FACILITE_PAIEMENT_Click()
    Dim OK As Boolean
    Dim Usf As MSForms.UserForm
    'Set Usf = Controls("R_REGLEMENT_" & Idx_Frm)
    With P_PAIEMENT
        OK = .ChckB_FACILITE_PAIEMENT.Value
        With .Controls("Frm_REGLEMENT_" & Idx_Frm)    ' ================================ INFORMATION
            .Visible = IIf(OK, False, True)
        End With
    End With
    If OK = True Then
        P_PAIEMENT.Hide
        Select Case Idx_Frm
        Case 1
            Beep 733, 100
            Beep 733, 100
            R_REGLEMENT_1.Show 0
        Case 2
            Beep 733, 100
            Beep 733, 100
            R_REGLEMENT_2.Show 0
        Case 3
            Beep 733, 100
            Beep 733, 100
            R_REGLEMENT_3.Show 0
        Case 4
            Beep 733, 100
            Beep 733, 100
            R_REGLEMENT_4.Show 0
        Case Is = 5
            Beep 733, 100
            Beep 733, 100
            R_REGLEMENT_5.Show 0
        End Select
 
    Else
        Select Case Idx_Frm
        Case 1
            Unload R_REGLEMENT_1
        Case 2
            Unload R_REGLEMENT_2
        Case 3
            Unload R_REGLEMENT_3
        Case 4
            Unload R_REGLEMENT_4
        Case Is = 5
            Unload R_REGLEMENT_5
        End Select
        With P_PAIEMENT
            Load P_PAIEMENT
            .Show 0
        End With
    End If
End Sub
'**** Correspond au programme de la ComboBox1 *****
Private Sub CmbB_Mode_Reglement_Change()
    With P_PAIEMENT
        With .CmbB_Mode_Reglement
            Idx_Frm = IIf(.ListIndex = -1, 0, .ListIndex)
        End With
        .CmdB_Valider.Tag = 3 + CLng(Idx_Lgn) & ":" & Idx_Frm
        With .Frm_Mode_Reglement
            With .ChckB_FACILITE_PAIEMENT
                .Value = False
                .Visible = IIf(Idx_Frm = 0, False, True)
            End With
        End With
    End With
    ' ************************
    Init_Frm Idx_Frm, Idx_Lgn
    ' ************************
End Sub
'**** Correspond au programme du bouton "QUITTER" *****
Private Sub CmdB_Quitter_Click()
    Application.Visible = True
    Unload Me
End Sub
'**** Correspond au programme du bouton "CONTROLE" *****
'**** Contrôle les données saisies *****
Private Sub CmdB_Controle_Click()
'comment nommer pour la vérification de textbox vide dans frame selectionné
    If Idx_Frm = 0 Then Exit Sub
    Test_Controls_Frm Idx_Frm  '
 
End Sub
'**** Correspond au programme du bouton "VALIDER" *****
Private Sub CmdB_Valider_Click()
    Dim T
    Dim Str_Mode As String
 
    With P_PAIEMENT
        With .CmdB_Valider
            T = Split(.Tag, ":")
        End With
        With .CmbB_Mode_Reglement
            Str_Mode = .Text
        End With
 
        Idx_Lgn = T(0)
        Idx_Frm = T(1)
 
        Select Case Idx_Frm    'quel est le Frame concerné
        Case 1  'Si 1 "ESPECES"
            ' ======================================================================= ESPECES
            Ws_Source.Range("J" & Idx_Lgn).Value = CDate(.TxtB_DATE_ESPECES.Value)    ' ------------- Date du paiement
            Ws_Source.Range("Y" & Idx_Lgn).Value = Str_Mode    '("ESPECES") ' ------------------------ Inscription du mode Paiement
            Ws_Source.Range("AK" & Idx_Lgn).Value = CDbl(Trim(.TxtB_DU_ESPECES) * 1)    ' ------------- Montant à Payer
 
            With .LstV_BD_Factures
                With .ListItems(Index_Ref_LstV)
                    With .ListSubItems(5)
                        .Text = Ws_Source.Range("I" & Idx_Lgn).Value
                        .ForeColor = IIf(.Text = "Validée", &HC000&, &H8080FF)    ' --------------------------- Couleur selon valeur
                    End With
                    .ListSubItems(6).Text = CDate(P_PAIEMENT.TxtB_DATE_ESPECES.Value)
                    .ListSubItems(7).Text = Format(CDbl(Trim(P_PAIEMENT.TxtB_TTC_ESPECES) * 1), "# ##0.00 €")
                End With
                .Refresh
            End With
        Case 2  'Si 2 "CHEQUES"
            ' ========================================================================== CHEQUES
            Ws_Source.Range("J" & Idx_Lgn).Value = CDate(.TxtB_DATE_CHEQUE.Value)    ' ----------------- Date du paiement
            Ws_Source.Range("Y" & Idx_Lgn).Value = Str_Mode    '("CHEQUES")' ----------------------- Inscription du mode Paiement
            Ws_Source.Range("Z" & Idx_Lgn).Value = CStr(.TxtB_TC_CHEQUE.Value)    ' ------------------------ Titulaire du compte
            Ws_Source.Range("AA" & Idx_Lgn).Value = CStr(.TxtB_Num_CHEQUE.Value)    ' ---------------------- N° du Chèque
            Ws_Source.Range("AK" & Idx_Lgn).Value = CDbl(Trim(.TxtB_DU_CHEQUE.Value) * 1)    ' -------------- Montant à Payer
 
            With .LstV_BD_Factures
                With .ListItems(Index_Ref_LstV)
                    With .ListSubItems(5)
                        .Text = Ws_Source.Range("I" & Idx_Lgn).Value
                        .ForeColor = IIf(.Text = "Validée", &HC000&, &H8080FF)    ' ------------------------------ Couleur selon valeur
                    End With
                    .ListSubItems(6).Text = CDate(P_PAIEMENT.TxtB_DATE_CHEQUE.Value)
                    .ListSubItems(7).Text = Format(CDbl(Trim(P_PAIEMENT.TxtB_TTC_CHEQUE) * 1), "# ##0.00 €")
                End With
                .Refresh
            End With
        Case 3    'Si 3 "VIREMENT"
            ' ============================================================================ VIREMENT
            Ws_Source.Range("J" & Idx_Lgn).Value = CDate(.TxtB_DATE_VIREMENT.Value)    ' ------------------- Date du paiement
            Ws_Source.Range("Y" & Idx_Lgn).Value = Str_Mode  '("VIREMENT")' ----------------------------- Inscription du mode Paiement
            Ws_Source.Range("Z" & Idx_Lgn).Value = CStr(.TxtB_TC_VIREMENT.Value)    ' ---------------------- Titulaire du compte
            Ws_Source.Range("AA" & Idx_Lgn).Value = CStr(.TxtB_Dom_VIREMENT.Value)    ' ----------------------- Domiciliation
            Ws_Source.Range("AC" & Idx_Lgn).Value = CStr(.TxtB_Li_eM_VIREMENT.Value)    ' ----------------------- Libellé Banque
            Ws_Source.Range("AD" & Idx_Lgn).Value = CStr(.TxtB_BQ_VIREMENT.Value)    ' ----------------------- Code Banque
            Ws_Source.Range("AE" & Idx_Lgn).Value = CStr(.TxtB_Code_G_VIREMENT.Value)    ' ------------------- Code Guichet
            Ws_Source.Range("AF" & Idx_Lgn).Value = CStr(.TxtB_Num_Cpte_VIREMENT.Value)    ' ------------------- N° de Compte
            Ws_Source.Range("AG" & Idx_Lgn).Value = CStr(.TxtB_Cle_RIB_VIREMENT.Value)    ' ------------------- Clé Rib
            Ws_Source.Range("AH" & Idx_Lgn).Value = CStr(.TxtB_BIC_SWIFT_VIREMENT.Value)    ' -------------- Code BIC / Swift
            Ws_Source.Range("AI" & Idx_Lgn).Value = CStr(.TxtB_IBAN_VIREMENT.Value)    ' --------------------- IBAN
            Ws_Source.Range("AK" & Idx_Lgn).Value = CDbl(Trim(.TxtB_DU_VIREMENT.Value) * 1)    ' ---------- Montant à Payer
 
            With .LstV_BD_Factures
                With .ListItems(Index_Ref_LstV)
                    With .ListSubItems(5)
                        .Text = Ws_Source.Range("I" & Idx_Lgn).Value
                        .ForeColor = IIf(.Text = "Validée", &HC000&, &H8080FF)    ' ------------------- Couleur selon valeur
                    End With
                    .ListSubItems(6).Text = CDate(P_PAIEMENT.TxtB_DATE_VIREMENT.Value)
                    .ListSubItems(7).Text = Format(CDbl(Trim(P_PAIEMENT.TxtB_TTC_VIREMENT) * 1), "# ##0.00 €")
                End With
                .ListItems(1).Selected = False    ' -------------------------------------------------- On désélectionne la première Ligne
                Set .SelectedItem = Nothing        ' ------------------------------------------------- Et toutes autres
                .Refresh
            End With
        Case 4   'Si 4 "PAYPAL"
            ' ======================================================================== PAYPAL
            Ws_Source.Range("J" & Idx_Lgn).Value = CDate(.TxtB_DATE_PAYPAL.Value)    ' ------------------ Date du paiement
            Ws_Source.Range("Y" & Idx_Lgn).Value = Str_Mode    ' ("PAYPAL")' ------------------------------ Inscription du mode Paiement
            Ws_Source.Range("Z" & Idx_Lgn).Value = CStr(.TxtB_TC_PAYPAL.Value)    ' ---------------------- Titulaire du compte
            Ws_Source.Range("AB" & Idx_Lgn).Value = CStr(.TxtB_Num_TR_PAYPAL.Value)    ' ---------------- N° transaction
            Ws_Source.Range("AC" & Idx_Lgn).Value = CStr(.TxtB_Li_eM_PAYPAL.Value)    ' ------------------ Adresse mail
            Ws_Source.Range("AK" & Idx_Lgn).Value = CDbl(Trim(.TxtB_DU_PAYPAL.Value) * 1)    ' ----------- Montant à Payer
            With .LstV_BD_Factures
                With .ListItems(Index_Ref_LstV)
                    With .ListSubItems(5)
                        .Text = Ws_Source.Range("I" & Idx_Lgn).Value
                        .ForeColor = IIf(.Text = "Validée", &HC000&, &H8080FF)    ' ------------------------------ Couleur selon valeur
                    End With
                    .ListSubItems(6).Text = CDate(P_PAIEMENT.TxtB_DATE_PAYPAL.Value)
                    .ListSubItems(7).Text = Format(CDbl(Trim(P_PAIEMENT.TxtB_TTC_PAYPAL) * 1), "# ##0.00 €")
                End With
                .Refresh
            End With
        Case 5   'Si 5 "CARTE BANCAIRE"
 
            ' ======================================================================== CARTE BANCAIRE
            Ws_Source.Range("J" & Idx_Lgn).Value = CDate(.TxtB_DATE_CARTE_BANCAIRE.Value)    ' ------------------ Date du paiement
            Ws_Source.Range("Y" & Idx_Lgn).Value = Str_Mode    '("CARTE BANCAIRE")' ------------------ Inscription du mode Paiement
            Ws_Source.Range("Z" & Idx_Lgn).Value = CStr(.TxtB_TC_CARTE_BANCAIRE.Value)    ' --------------------- Titulaire du compte
            Ws_Source.Range("AB" & Idx_Lgn).Value = CStr(.TxtB_Num_TR_CARTE_BANCAIRE.Value)    ' ----------------- N° transaction
            Ws_Source.Range("AC" & Idx_Lgn).Value = CStr(.TxtB_Li_eM_CARTE_BANCAIRE.Value)    ' ---------------------- Libellé Banque
            Ws_Source.Range("AK" & Idx_Lgn).Value = CDbl(Trim(.TxtB_DU_CARTE_BANCAIRE.Value) * 1)    ' ---------- Montant à Payer
            With .LstV_BD_Factures
                With .ListItems(Index_Ref_LstV)
                    With .ListSubItems(5)
                        .Text = Ws_Source.Range("I" & Idx_Lgn).Value
                        .ForeColor = IIf(.Text = "Validée", &HC000&, &H8080FF)    ' ---------------------------------- Couleur selon valeur
                    End With
                    .ListSubItems(6).Text = CDate(P_PAIEMENT.TxtB_DATE_CARTE_BANCAIRE.Value)
                    .ListSubItems(7).Text = Format(CDbl(Trim(P_PAIEMENT.TxtB_TTC_CARTE_BANCAIRE) * 1), "# ##0.00 €")
                End With
                .Refresh
            End With
        End Select
        .CmdB_Valider.Visible = False
        .Repaint
 
    End With
    '    Tab_General(Idx_Lgn - 3, 9) = "Validée"
    ' ************************
    Clear_Controls (Idx_Frm)
    ' ************************
    Clear_Infos
    ' ************************
    Tab_General = Recup_Tablo
    ' ************************
End Sub
'***** Correspond au programme de la LstV_BD_Factures  *****
Sub InitListView()
' Remplissage
    With Me.LstV_BD_Factures
        .ListItems.Clear
        For j = 5 To Ws.Range("A" & Rows.Count).End(xlUp).Row
            ' On remplit la première colonne de la Listview
            .ListItems.Add , Ws.Range("A" & j).Address, Ws.Range("A" & j)    ' --------------------------------------- Raison social
            Nb = Nb + 1
            ' On remplit les autres colonnes de la listview
            .ListItems(Nb).ListSubItems.Add , , Ws.Range("B" & j)    ' ----------------------------------------------- Facture
            .ListItems(Nb).ListSubItems.Add , , Ws.Range("C" & j)    ' ----------------------------------------------- Date de la facture
            .ListItems(Nb).ListSubItems.Add , , Ws.Range("D" & j)    ' ----------------------------------------------- Date d'échéance
            .ListItems(Nb).ListSubItems.Add , , Ws.Range("E" & j)    ' ----------------------------------------------- Montant TTC
            .ListItems(Nb).ListSubItems.Add , , Ws.Range("I" & j)    ' ----------------------------------------------- Réglé
            .ListItems(Nb).ListSubItems.Add , , Ws.Range("J" & j)    ' ----------------------------------------------- Date du règlement
            .ListItems(Nb).ListSubItems.Add , , Ws.Range("K" & j)    ' ----------------------------------------------- Montant Payé
            .ListItems(Nb).ListSubItems.Add , , Ws.Range("P" & j)    ' ----------------------------------------------- Observations
        Next j
    End With
End Sub
'***** Correspond au programme de la LstV_BD_Factures  *****
Private Sub LstV_BD_Factures_ItemClick(ByVal Item As MSComctlLib.ListItem)
 
    Nb_CTRL = 0: Ok_NB_Ctrl = 0
    Dim LstVitem As MSComctlLib.ListItem
 
    Index_Ref_LstV = Item.Index    ' ------------------------------ On récupére la Ligne selectionnée dans la ListView
 
    With P_PAIEMENT
        With .CmdB_Valider
            .Visible = False
            .Tag = ""
        End With
 
        Set LstVitem = .LstV_BD_Factures.ListItems(Item.Index)    ' --------------------------- On récupére la Ligne selectionnée
        Idx_Lgn = CLng(LstVitem.ListSubItems(9).Text)    ' --- On récupére le Numero de la Ligne Cible dans la Feuille "SUIVI FACTURES"
        Somme_Du = IIf(Tab_General(Idx_Lgn, 8) = "", 0, CDbl(Tab_General(Idx_Lgn, 8)))
        Somme_Payee = IIf(Tab_General(Idx_Lgn, 11) = "", 0, Tab_General(Idx_Lgn, 11))
 
        .TxtB_Num_FACTURE_Info = LstVitem.ListSubItems(1)    ' ------------------------------------------------------- Raison Sociale
        .TxtB_DATE_Info = LstVitem.ListSubItems(2)    ' -------------------------------------------------------------- Facture
        .TxtB_CLIENT_Info = LstVitem.Text             ' -------------------------------------------------------------- Date de la facture
        .TxtB_ADRESSE_Info = Tab_General(Idx_Lgn, 22)        ' ------------------------------------------------------- Adresse
        .TxtB_CODE_POSTAL_Info = Tab_General(Idx_Lgn, 23)    ' ------------------------------------------------------- Code Postal
        .TxtB_VILLE_Info = Tab_General(Idx_Lgn, 24)          ' ------------------------------------------------------- Ville
        .TxtB_5_5_Info = Format(Tab_General(Idx_Lgn, 21), "# ##0.00 €")    ' ----------------------------------------- TVA 5.5 %
        .TxtB_7_Info = Format(Tab_General(Idx_Lgn, 17), "# ##0.00 €")      ' ----------------------------------------- TVA 7 %
        .TxtB_10_Info = Format(Tab_General(Idx_Lgn, 18), "# ##0.00 €")     ' ----------------------------------------- TVA 10 %
        .TxtB_20_Info = Format(Tab_General(Idx_Lgn, 19), "# ##0.00 €")     ' ----------------------------------------- TVA 20 %
        .TxtB_HT_Info = Format(Tab_General(Idx_Lgn, 20), "# ##0.00 €")     ' ----------------------------------------- Montant HT
        .TxtB_TTC_Info = Format(Tab_General(Idx_Lgn, 5), "# ##0.00 €")     ' ----------------------------------------- Montant TTC
        .TxtB_ECHEANCE_Info = Tab_General(Idx_Lgn, 4)    ' ------------------------------------------------------ Date d'échéance
        .TxtB_MAJORATION_Info = Format(Tab_General(Idx_Lgn, 7), "# ##0.00 €")  ' -------------------------------- Majoration
        .TxtB_DU_Info = IIf(Somme_Du - Somme_Payee = 0, Format(0, "# ##0.00 €"), Format(Somme_Du, "# ##0.00 €"))  ' -- Reste dû
        .TxtB_MAJORATION_PAYE_Info = Format(Tab_General(Idx_Lgn, 12), "# ##0.00 €")    ' --------------------- Majoration Payé
        .TxtB_OBSERVATIONS_Info = LstVitem.ListSubItems(8)             ' ----------------------------------------- Observations
 
        With .Frm_Mode_Reglement
            .ChckB_FACILITE_PAIEMENT.Value = False
            .Visible = IIf(Somme_Du - Somme_Payee = 0, False, True)    ' On affiche
        End With
        With .CmbB_Mode_Reglement
            .Text = Tab_General(Idx_Lgn, 25)
            If .Text = "" Then Exit Sub
        End With
        .Repaint
    End With
    ' *************************
    Test_Controls_Frm (Idx_Frm)
    ' *************************
End Sub
'***** Correspond au programme du FORMULAIRE à son ouverture *****
Private Sub UserForm_Initialize()
'Enlever le cadre de l'UF
    OteTitleBarre Me.Caption, False    ' True pour le remettre
' **************************
'Application.Visible = False
    Idx_Frm = 0
    Set Frm = P_PAIEMENT.Frm_INFOS
    ' =================================================== Listview 
    'Initialisation
    Set Ws_Source = Worksheets("SUIVI FACTURES")
    ' ************************
    Tab_General = Recup_Tablo
    ' ************************
    With P_PAIEMENT
        With .LstV_BD_Factures
            ' Titres des colonnes
            For l = 1 To UBound(Tab_General, 1)
                If l = 1 Then
                    With .ColumnHeaders    '648
                        .Clear
                        ' Ajout des colonnes
                        .Add , , Tab_General(l, 1), 100, lvwColumnLeft    ' ------------------------------------------ Raison sociale
                        .Add , , Tab_General(l, 2), 55, lvwColumnLeft    ' ------------------------------------------- N°Facture
                        .Add , , Tab_General(l, 3), 55, lvwColumnCenter    ' ----------------------------------------- Date de la Facture
                        .Add , , Tab_General(l, 4), 70, lvwColumnCenter    ' ----------------------------------------- Date d'échéance
                        .Add , , Tab_General(l, 5), 60, lvwColumnCenter    ' ----------------------------------------- Montant TTC
                        .Add , , "Réglement", 50, lvwColumnCenter    ' ----------------------------------------------- Réglé
                        .Add , , Tab_General(l, 10), 80, lvwColumnCenter    ' ---------------------------------------- Date du règlement
                        .Add , , Tab_General(l, 37), 80, lvwColumnCenter    ' ---------------------------------------- Montant Payé
                        .Add , , Tab_General(l, 16), 80, lvwColumnLeft    ' ------------------------------------------ Observations
                        .Add , , "", 0, lvwColumnLeft    ' ----------------------------------------------------------- Ligne reference
                    End With    ' ColumnHeaders
                Else
                    Set LstVitem = .ListItems.Add(, , Tab_General(l, 1))    ' ---------------------------------------- Raison Sociale
                    With LstVitem
                        .ListSubItems.Add , , Tab_General(l, 2)    ' ------------------------------------------------- N° facture
                        .ListSubItems.Add , , Tab_General(l, 3)    ' ------------------------------------------------- Date facture
                        .ListSubItems.Add , , Tab_General(l, 4)    ' ------------------------------------------------- Date Echeance
                        .ListSubItems.Add , , Format(Tab_General(l, 5), "# ##0.00 €")    ' --------------------------- Montant TTC
                        Set LstVSitem = .ListSubItems.Add(, , Tab_General(l, 9))    ' -------------------------------- Règlement
                        With LstVSitem
                            .ForeColor = IIf(.Text = "Validée", &HC000&, &H8080FF)    ' ----------------------- Couleur selon valeur
                        End With
                        .ListSubItems.Add , , Tab_General(l, 10)    ' ----------------------------------------- Date du reglement
                        .ListSubItems.Add , , Format(Tab_General(l, 11), "# ##0.00 €")    ' ------------------- Montant Payé
                        .ListSubItems.Add , , Tab_General(l, 16)    ' ---------------------------------------- Observation
                        .ListSubItems.Add , , l      ' ------------------------------------------------------- Ligne dans le tableau source
                    End With
                End If
            Next l
            .View = lvwReport                     ' ---------------------------------------------------------- Affichage en mode Rapport
            .Gridlines = True                     ' ------------------------------------------------------------ Affichage d'un quadrillage
            .FullRowSelect = True                 ' --------------------------------------------------------- Sélection des lignes complètes
            .LabelEdit = lvwManual                ' --------------------------------------------------- On ne modifie pas en direct
            .ListItems(1).Selected = False    ' ------------------------------------------------ On désélectionne la première Ligne
            Set .SelectedItem = Nothing        ' ------------------------------------------------------ Et toutes autres
        End With    'ListView
        With .CmbB_Mode_Reglement
            .AddItem " "
            .AddItem "ESPECES"
            .AddItem "CHEQUES"
            .AddItem "VIREMENT"
            .AddItem "PAYPAL"
            .AddItem "CARTE BANCAIRE"
        End With
        With .CmdB_Valider
            .Visible = False    ' --------------------------------------------------------------- On masque le bouton Valider
            .Tag = ""
        End With
 
        ' ================================================= Listview 
        .Frm_INFOS.Visible = True    ' -------------------------------------------------------- On affiche le frame INFOS
        .Frm_Mode_Reglement.Visible = False
        .ChckB_FACILITE_PAIEMENT.Visible = False
        For i = 1 To 5
            With .Controls("Frm_REGLEMENT_" & i)
                .Visible = False      ' --------------------------------------------------------------- On masque le frame ESPECES
            End With
        Next i
    End With
End Sub
Exemple d'un des 5 Usf : Exemple du 3ème Usf (virement )

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
Dim tot#, j As Long, l As Integer
'**** Correspond au programme du bouton "ANNULER" *****
Private Sub CmdB_Annuler_VIREMENT_Click()
    Unload R_REGLEMENT_3
    With P_PAIEMENT
        .ChckB_FACILITE_PAIEMENT.Value = False
        .Show 0
    End With
End Sub
'**** Correspond au programme du bouton "VALIDER" *****
Private Sub CmdB_Valider_VIREMENT_Click()
 
    Dim Str_Mode As String
 
    ' ================================= VIREMENT
    With Sheets("SUIVI FACTURES")
        .Range("J" & Idx_Lgn).Value = CDate(.TxtB_DATE_VIREMENT.Value)    ' ---------------------- Date début de paiement
        .Range("Y" & Idx_Lgn).Value = Str_Mode    '("VIREMENT") ' -------------------------------- Inscription du mode Paiement
        .Range("Z" & Idx_Lgn).Value = CStr(TxtB_TITULAIRE_COMPTE_VIREMENT.Value)    ' ------------ Titulaire du compte
        .Range("AA" & Idx_Lgn).Value = CStr(TxtB_DOMICILIATION_VIREMENT.Value)    ' -------------- Domiciliation du compte
        .Range("AC" & Idx_Lgn).Value = CStr(TxtB_LIBELLE_BANQUE_VIREMENT.Value)    ' ------------- Libellé du compte
        .Range("AD" & Idx_Lgn).Value = CStr(TxtB_CODE_BANQUE_VIREMENT.Value)    ' ---------------- Code Banque
        .Range("AE" & Idx_Lgn).Value = CStr(TxtB_GUICHET_BANQUE_VIREMENT.Value)    ' ------------- Code Guichet
        .Range("AF" & Idx_Lgn).Value = CStr(TxtB_Num_COMPTE_VIREMENT.Value)    ' ----------------- N° du compte
        .Range("AG" & Idx_Lgn).Value = CStr(TxtB_CLE_RIB_VIREMENT.Value)    ' -------------------- Clé RIB
        .Range("AH" & Idx_Lgn).Value = CStr(TxtB_CODE_BIC_SWIFT_VIREMENT.Value)    ' ------------- Code BIC / Swift
        .Range("AI" & Idx_Lgn).Value = CStr(TxtB_CODE_IBAN_VIREMENT.Value)    ' ------------------ IBAN
        .Range("AL" & Idx_Lgn).Value = CDbl(Trim(.TxtB_RECU_VIREMENT) * 1)    ' ------------------ Paiement Total fin d'échéance
    End With
    With Sheets("SUIVI DES CREANCES")
        .Range("L" & Idx_Lgn).Value = CDbl(Trim(.TxtB_ECHEANCE_VIREMENT) * 1)    ' --------------- Nombre d'échéance
        .Range("M" & Idx_Lgn).Value = CDbl(Trim(.TxtB_Nbr_ECHEANCE_VIREMENT) * 1)    ' ----------- Nombre de jours d'échéance
    End With
 
End Sub
'***** Correspond au programme de la TxtB_ECHEANCE_VIREMENT  *****
Private Sub TxtB_ECHEANCE_VIREMENT_Change()
    j = 30
    If TxtB_ECHEANCE_VIREMENT = "" Then TxtB_TT_MENSUEL_VIREMENT = "": GoTo 1
    If TxtB_ECHEANCE_VIREMENT = "" Then TxtB_BUTEE_VIREMENT = "": GoTo 1
    TxtB_TT_MENSUEL_VIREMENT = TxtB_DU_VIREMENT / TxtB_ECHEANCE_VIREMENT
    TxtB_Nbr_ECHEANCE_VIREMENT = CDbl(j)
    TxtB_BUTEE_VIREMENT = DateAdd("m", Me.TxtB_ECHEANCE_VIREMENT, Me.TxtB_DATE_VIREMENT)
1   tot = 0
 
    If IsNumeric(TxtB_TT_MENSUEL_VIREMENT) Then tot = tot + CDbl(TxtB_TT_MENSUEL_VIREMENT)
 
    TxtB_TT_MENSUEL_VIREMENT = Format(tot, "0.00€")
    TxtB_ECHEANCE_VIREMENT = Format(TxtB_ECHEANCE_VIREMENT, "0")
    TxtB_Nbr_ECHEANCE_VIREMENT = Format(TxtB_Nbr_ECHEANCE_VIREMENT, "# Jours")
End Sub
'***** Correspond au programme de la TxtB_MAJORATION_PAYE_VIREMENT  *****
Private Sub TxtB_MAJORATION_PAYE_VIREMENT_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    On Error Resume Next
    TxtB_MAJORATION_PAYE_VIREMENT = Format(TxtB_MAJORATION_PAYE_VIREMENT, "# ##0.00€")
End Sub
'***** Correspond au programme de la TxtB_DATE_VIREMENT  *****
Private Sub TxtB_DATE_VIREMENT_Change()
    Me.TxtB_DATE_VIREMENT.MaxLength = 10
    If Len(Me.TxtB_DATE_VIREMENT) = 2 Or Len(Me.TxtB_DATE_VIREMENT) = 5 Then Me.TxtB_DATE_VIREMENT = Me.TxtB_DATE_VIREMENT & "/"
End Sub
'***** Correspond au programme de la TxtB_TT_MENSUEL_VIREMENT  *****
Private Sub TxtB_TT_MENSUEL_VIREMENT_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Rem. —— COLONNE AM : =SUM([@[MONTANT ECHEANCE 5]],[@[MONTANT ECHEANCE 4]],[@[MONTANT ECHEANCE 3]],[@[MONTANT ECHEANCE 2]],[@[MONTANT ECHEANCE 1]])
    On Error Resume Next
    TxtB_TT_MENSUEL_VIREMENT = Format(TxtB_TT_MENSUEL_VIREMENT, "# ##0.00€")
End Sub
'***** Correspond au programme de la TxtB_BUTEE_VIREMENT  *****
Private Sub TxtB_BUTEE_VIREMENT_Change()
    Me.TxtB_BUTEE_VIREMENT.MaxLength = 10
    If Len(Me.TxtB_BUTEE_VIREMENT) = 2 Or Len(Me.TxtB_BUTEE_VIREMENT) = 5 Then Me.TxtB_BUTEE_VIREMENT = Me.TxtB_BUTEE_VIREMENT & "/"
    Rem. —— COLONNE AN : =SI(MAX([@[FIN ECHEANCE 5]];[@[FIN ECHEANCE 4]];[@[FIN ECHEANCE 3]];[@[FIN ECHEANCE 2]];[@[FIN  ECHEANCE 1]])=0;"";MAX([@[FIN ECHEANCE 5]];[@[FIN ECHEANCE 4]];[@[FIN ECHEANCE 3]];[@[FIN ECHEANCE 2]];[@[FIN  ECHEANCE 1]]))MONTANT ECHEANCE 2]];[@[MONTANT ECHEANCE 1]])
End Sub
'***** Correspond au programme du FORMULAIRE à son ouverture *****
Private Sub UserForm_Initialize()
        Set Frm = P_PAIEMENT.Frm_INFOS
    With R_REGLEMENT_3
        'Oter la barre dans l'userform
        OteTitleBarre .Caption, False
        ' *******************************
        .TxtB_TITULAIRE_COMPTE_VIREMENT = ""    ' ------------------------------------------------ Titulaire du compte
        .TxtB_DATE_VIREMENT = Frm.TxtB_DATE_Info    ' -------------------------------------------- Date de la facture
        .TxtB_DOMICILIATION_VIREMENT = ""    ' --------------------------------------------------- Domiciliation du compte
        .TxtB_LIBELLE_BANQUE_VIREMENT = ""    ' -------------------------------------------------- Libellé du compte
        .TxtB_CODE_BANQUE_VIREMENT = ""    ' ----------------------------------------------------- Code Banque
        .TxtB_GUICHET_BANQUE_VIREMENT = ""    ' -------------------------------------------------- Code Guichet
        .TxtB_Num_COMPTE_VIREMENT = ""    ' ------------------------------------------------------ N° du compte
        .TxtB_CLE_RIB_VIREMENT = ""    ' --------------------------------------------------------- Clé RIB
        .TxtB_CODE_BIC_SWIFT_VIREMENT = ""    ' -------------------------------------------------- Code BIC / Swift
        .TxtB_CODE_IBAN_VIREMENT = ""    ' ------------------------------------------------------- IBAN
        .TxtB_TTC_VIREMENT = Frm.TxtB_TTC_Info.Text    ' ----------------------------------------- Montant TTC
        .TxtB_MAJORATION_VIREMENT = Frm.TxtB_MAJORATION_Info    ' -------------------------------- Majoration
        .TxtB_MAJORATION_PAYE_VIREMENT = Frm.TxtB_MAJORATION_PAYE_Info    ' ---------------------- Majoration Payé
        .TxtB_DU_VIREMENT = Frm.TxtB_DU_Info    ' ------------------------------------------------ Restant dû
        .TxtB_RECU_VIREMENT = ""    ' ------------------------------------------------------------ Montant Reçu
        '*******************
        .TxtB_ECHEANCE_VIREMENT = ""    ' -------------------------------------------------------- Nombre d'échéance
        .TxtB_Nbr_ECHEANCE_VIREMENT = 30    ' ---------------------------------------------------- Nombre de Jours
        .TxtB_TT_MENSUEL_VIREMENT = ""    ' ------------------------------------------------------ Montant Mensuel
        .TxtB_BUTEE_VIREMENT = ""    ' ----------------------------------------------------------- Date Soldée
    End With
End Sub

Et le module listview

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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
Public Function Recup_Tablo() As Variant
    Set Tab_General = Nothing        'O n vide le tableau
    With Ws_Source        ' Avec la feuille
        DerLgn = .Cells(.Rows.Count, 1).End(xlUp).Row        '  On determine la derniere ligne non vide de la colonne 1
        DerCol = .Cells(4, .Columns.Count).End(xlToLeft).Column        '  On détermine la derniere colonne Non Vide de la Ligne 4
        Tab_General = .Range(.Cells(4, 1), .Cells(DerLgn, DerCol)).Value        ' On récupére les donnees de la plage ainsi definie dans un tableau temporaire
    End With
    Recup_Tablo = Tab_General
End Function
Public Function Init_Frm(Idx_Frm, Idx_Lgn)
    Dim Idx As Byte
    If Idx_Lgn = 0 Then Exit Function
 
    Erase Tab_General        ' On vide la Tableau
    ' *********************
    Tab_General = Recup_Tablo        ' On va récupérer les donnees de la feuille Source
    ' *********************
    With P_PAIEMENT
        ' .CmdB_Valider.Tag = Idx_Frm & "-" & Idx_Lgn
        For Idx = 1 To 5
            With .Controls("Frm_REGLEMENT_" & Idx)        ' ============== INFORMATION
 
                .Visible = IIf(Idx = Idx_Frm, True, False)
            End With
            Select Case Idx_Frm
 
                Case Is = 1
                    With .Controls("Frm_REGLEMENT_" & Idx_Frm)        ' ========== ESPECES
                        .TxtB_TTC_ESPECES = Format(Tab_General(Idx_Lgn, 5), "# ##0.00 €")        '  Montant TTC
                        .TxtB_MAJORATION_ESPECES = Format(Tab_General(Idx_Lgn, 7), "# ##0.00 €")        '  Majoration
                        .TxtB_DU_ESPECES = Format(Tab_General(Idx_Lgn, 8), "# ##0.00 €")        '  Restant dû
                        .TxtB_RECU_ESPECES = Format(Tab_General(Idx_Lgn, 11), "# ##0.00 €")        ' Montant reçu
                        .TxtB_MAJORATION_PAYE_ESPECES = Format(Tab_General(Idx_Lgn, 12), "# ##0.00 €")        '  Majortation Payé
                        With .TxtB_DATE_ESPECES        '  Date règlement
                            .Text = IIf(Tab_General(Idx_Lgn, 10) = "", Format(Date, "dd/mm/yyyy"), Tab_General(Idx_Lgn, 10))        '  Date règlement
                            .BackColor = IIf(Tab_General(Idx_Lgn, 10) = "", &H8080FF, &HFF00&)        ' - rouge et vert
                        End With
                    End With
 
                Case Is = 2
                    With .Controls("Frm_REGLEMENT_" & Idx_Frm)        ' ========== CHEQUES
                        .TxtB_TC_CHEQUE = Tab_General(Idx_Lgn, 26)        '  Titulaire du compte
                        .TxtB_Num_CHEQUE = Tab_General(Idx_Lgn, 27)        ' N° du Cheque
                        .TxtB_TTC_CHEQUE = Format(Tab_General(Idx_Lgn, 5), "# ##0.00 €")        ' Montant TTC
                        .TxtB_MAJORATION_CHEQUE = Format(Tab_General(Idx_Lgn, 7), "# ##0.00 €")        ' - Majoration
                        .TxtB_DU_CHEQUE = Format(Tab_General(Idx_Lgn, 8), "# ##0.00 €")        '  Restant dû
                        .TxtB_RECU_CHEQUE = Format(Tab_General(Idx_Lgn, 11), "# ##0.00 €")        ' Montant reçu
                        .TxtB_MAJORATION_PAYE_CHEQUES = Format(Tab_General(Idx_Lgn, 12), "# ##0.00 €")        '  Majoration Payé
                        With .TxtB_DATE_CHEQUE        '  Date règlement
                            .Text = IIf(Tab_General(Idx_Lgn, 10) = "", Format(Date, "dd/mm/yyyy"), Tab_General(Idx_Lgn, 10))        '  Date règlement
                            .BackColor = IIf(Tab_General(Idx_Lgn, 10) = "", &H8080FF, &HFF00&)        '  rouge et vert
                        End With
                    End With
 
                Case Is = 3
                    With .Controls("Frm_REGLEMENT_" & Idx_Frm)        ' ========== VIREMENT
                        .TxtB_TC_VIREMENT = Tab_General(Idx_Lgn, 26)        ' Titulaire du compte
                        .TxtB_Dom_VIREMENT = Tab_General(Idx_Lgn, 27)        ' Domiciliation
                        .TxtB_Li_eM_VIREMENT = Tab_General(Idx_Lgn, 29)        ' Libellé Banque
                        .TxtB_BQ_VIREMENT = Tab_General(Idx_Lgn, 30)        ' Code Banque
                        .TxtB_Code_G_VIREMENT = Tab_General(Idx_Lgn, 31)        '  Code Guichet
                        .TxtB_Num_Cpte_VIREMENT = Tab_General(Idx_Lgn, 32)        '  N° de Compte
                        .TxtB_Cle_RIB_VIREMENT = Tab_General(Idx_Lgn, 33)        '  Clé Rib
                        .TxtB_BIC_SWIFT_VIREMENT = Tab_General(Idx_Lgn, 34)        '  Code BIC / Swift
                        .TxtB_IBAN_VIREMENT = Tab_General(Idx_Lgn, 35)        ' Code IBAN
                        .TxtB_TTC_VIREMENT = Format(Tab_General(Idx_Lgn, 5), "# ##0.00 €")        '  Montant TTC
                        .TxtB_MAJORATION_VIREMENT = Format(Tab_General(Idx_Lgn, 7), "# ##0.00 €")        '  Majoration
                        .TxtB_DU_VIREMENT = Format(Tab_General(Idx_Lgn, 8), "# ##0.00 €")        '  Restant dû
                        .TxtB_RECU_VIREMENT = Format(Tab_General(Idx_Lgn, 11), "# ##0.00 €")        '  Montant reçu
                        .TxtB_MAJORATION_PAYE_VIREMENT = Format(Tab_General(Idx_Lgn, 12), "# ##0.00 €")        '  Majoration Payé
                        With .TxtB_DATE_VIREMENT        '  Date règlement
                            .Text = IIf(Tab_General(Idx_Lgn, 10) = "", Format(Date, "dd/mm/yyyy"), Tab_General(Idx_Lgn, 10))        '  Date règlement
                            .BackColor = IIf(Tab_General(Idx_Lgn, 10) = "", &H8080FF, &HFF00&)        ' rouge et vert
                        End With
                    End With
 
                Case Is = 4
                    With .Controls("Frm_REGLEMENT_" & Idx_Frm)        ' ===== PAYPAL
                        .TxtB_TC_PAYPAL = Tab_General(Idx_Lgn, 26)        '  Titulaire du compte
                        .TxtB_Num_TR_PAYPAL = Tab_General(Idx_Lgn, 28)        ' N° transaction
                        .TxtB_Li_eM_PAYPAL = Tab_General(Idx_Lgn, 29)        ' Adresse mail
                        .TxtB_TTC_PAYPAL = Format(Tab_General(Idx_Lgn, 5), "# ##0.00 €")        ' - Montant TTC
                        .TxtB_MAJORATION_PAYPAL = Format(Tab_General(Idx_Lgn, 7), "# ##0.00 €")        '  Majoration
                        .TxtB_DU_PAYPAL = Format(Tab_General(Idx_Lgn, 8), "# ##0.00 €")        '  Restant dû
                        .TxtB_RECU_PAYPAL = Format(Tab_General(Idx_Lgn, 11), "# ##0.00 €")        '  Montant reçu
                        .TxtB_MAJORATION_PAYE_PAYPAL = Format(Tab_General(Idx_Lgn, 12), "# ##0.00 €")        '  Majoration Payé
                        With .TxtB_DATE_PAYPAL        ' - Date règlement
                            .Text = IIf(Tab_General(Idx_Lgn, 10) = "", Format(Date, "dd/mm/yyyy"), Tab_General(Idx_Lgn, 10))        '  Date règlement
                            .BackColor = IIf(Tab_General(Idx_Lgn, 10) = "", &H8080FF, &HFF00&)        '  rouge et vert
                        End With
                    End With
 
                Case Is = 5
                    With .Controls("Frm_REGLEMENT_" & Idx_Frm)        ' ======= CARTE BANCAIRE
                        .TxtB_TC_CARTE_BANCAIRE = Tab_General(Idx_Lgn, 26)        '  Titulaire du compte
                        .TxtB_Li_eM_CARTE_BANCAIRE = Tab_General(Idx_Lgn, 29)        '  Libellé Banque
                        .TxtB_Num_TR_CARTE_BANCAIRE = Tab_General(Idx_Lgn, 28)        '  N° transaction
                        .TxtB_TTC_CARTE_BANCAIRE = Format(Tab_General(Idx_Lgn, 5), "# ##0.00 €")        '  Montant TTC
                        .TxtB_MAJORATION_CARTE_BANCAIRE = Format(Tab_General(Idx_Lgn, 7), "# ##0.00 €")        '  Majoration
                        .TxtB_DU_CARTE_BANCAIRE = Format(Tab_General(Idx_Lgn, 8), "# ##0.00 €")        '  Restant dû
                        .TxtB_RECU_CARTE_BANCAIRE = Format(Tab_General(Idx_Lgn, 11), "# ##0.00 €")        '  Montant reçu
                        .TxtB_MAJORATION_PAYE_CARTE_BANCAIRE = Format(Tab_General(Idx_Lgn, 12), "# ##0.00 €")        '  Majoration Payé
                        With .TxtB_DATE_CARTE_BANCAIRE        '  Date règlement
                            .Text = IIf(Tab_General(Idx_Lgn, 10) = "", Format(Date, "dd/mm/yyyy"), Tab_General(Idx_Lgn, 10))        ' ---- Date règlement
                            .BackColor = IIf(Tab_General(Idx_Lgn, 10) = "", &H8080FF, &HFF00&)        '  rouge et vert
                        End With
                    End With
            End Select
        Next Idx
        '        With .CmbB_Mode_Reglement
        '            .Enabled = IIf(.Text = "", True, False)
        '        End With
    End With
    Test_Controls_Frm (Idx_Frm)
End Function
Public Function Test_Controls_Frm(Idx_Frm) As Boolean
    Nb_CTRL = 0: Ok_NB_Ctrl = 0
    If Idx_Frm = 0 Then Exit Function
    On Error Resume Next
    With P_PAIEMENT
        ' boucle de contrôle sur les frames de règlements
        With .Controls("Frm_REGLEMENT_" & Idx_Frm)
            For Each Ctrl In .Controls
                Nb_CTRL = .Count / 2        '  Nombre de control a verifier on décompte les Labels
                If TypeName(Ctrl) = "TextBox" Then        '  Si le Control est un TextBox
                    With Ctrl        '  Avec ce control
                        .BackColor = &H80FFFF        '  On colore le fond en jaune
                        Msg = IIf(.Text = "", "Attention !! des Données sont manquantes !!!", "OK pour valider la saisie !")
                        .BackColor = IIf(.Text = "", &H8080FF, &HFF00&)        '  On colore le fond selon vide (rouge) ou non vide(vert)
                        Ok_NB_Ctrl = Ok_NB_Ctrl + IIf(.Text = "", 0, 1)
 
 
                        If Ctrl.Name Like "TxtB_TTC_*" Then Somme_Du = Ctrl.Value
                        If Ctrl.Name Like "TxtB_DU_*" Then
                            Somme_Payee = Ctrl.Value
                            .Value = IIf(Somme_Payee = Somme_Du, " 0,00 €", .Value)
                        End If
 
                    End With
                End If
            Next Ctrl
 
            '.Refresh
        End With
        With .CmdB_Valider
            .Visible = False
            .Visible = IIf(Nb_CTRL = Ok_NB_Ctrl And P_PAIEMENT.TxtB_DU_Info <> " 0,00 €", True, False)        ' On masque ou affiche le bouton Valider selon le Nombre de Control remplis
        End With
 
    End With
    Err.Clear
    On Error GoTo 0
End Function
' ===========================================[ LISTVIEW ]==================
Public Function Clear_Infos()
    With P_PAIEMENT
        With .Controls("Frm_INFOS")
            For Each Ctrl In .Controls
                If TypeName(Ctrl) = "TextBox" Then
                    With Ctrl
                        .Text = ""
                        .BackColor = &HA3FFFF
                    End With
                End If
            Next Ctrl
        End With
    End With
 
 
End Function
Public Function Clear_Controls(Idx_Frm)
    With P_PAIEMENT
        With .Controls("Frm_REGLEMENT_" & Idx_Frm)
            For Each Ctrl In .Controls
                If TypeName(Ctrl) = "TextBox" Then
                    With Ctrl
                        .Text = ""
                        .BackColor = &HA3FFFF
                    End With
                End If
            Next Ctrl
            .Visible = False
        End With
    End With
End Function
Sub listeUserFormClasseur()
' nécéssite d'activer la référence
' Microsoft Visual Basic For Applications Extensibility 5.3
    Dim VBCmp As VBComponent
 
    For Each VBCmp In ThisWorkbook.VBProject.VBComponents
        If VBCmp.Type = 3 And VBCmp.Name = "R_REGLEMENT_1" Then VBCmp.Show        ' MsgBox VBCmp.Name
    Next VBCmp
End Sub
Donc Facilité de paiement ==> R_REGLEMENT_3 (Virement)
Majoration Payé devra être invisible (voir si on peut s'en passer)
On remplie les vides
Nombre d’Échéance (2, 3, 4, etc..) et nombre de jours (réglé à 30 Jours)
(Contrôle les vides si besoin) à voir
Valider la transaction
Rendre la facture En Cours(Temps que la date de butée est inférieur à la date du jour)
Elle passera Validée à la fin des paiements.
Rafraichir Listview
On devra retrouver toutes les infos dans Frame_Info

Voilà comment recueillir les infos du R_REGLEMENT_3 pour les incorporer au différentes pages du classeur.

cordialement
Laurent