Private Sub ComboBox1_Change() 'si ligne initiale combobox1 change ...
' je selectionne un compte bancaire dans la combobox 1'
nom_banq_select = ComboBox1.Text
Set Ws = Sheets("En cours") 'Avec la feuille "En cours" dans laquelle il y toutes les écritures.
justif = "x"
non_just = 0
ligne = 1
For j = 1 To Ws.Range("B" & Rows.Count).End(xlUp).Row
nom_banq = Sheets("En cours").Range("B" & j) ' cellule B = nom de la banque'
If nom_banq_select = nom_banq Then ' -- je trie sur la base des écritures non JUSTIFIEES de ce compte banque -----
justif = Sheets("En cours").Range("F" & j)
If justif = "," Then ' la cellule est marquée "," quand elle n'est pas justifiée avec la banque
montant = Sheets("En cours").Range("E" & j)
non_just = non_just + montant ' je cumule le montant des écritures pour affichage dans userform
End If
TextBox13.Value = Format(non_just, "currency")
End If
Next
'----------------------- Affecte le solde du compte sélectionné dans textbox "à affiner à partir d'une variable" ---------------------------------------
With ComboBox1()
If nom_banq_select = "CAISSE" Then
solde = Sheets("En cours").Range("E" & 624)
TextBox12.Value = Format(solde, "currency") '-- Solde du compte ---
End If
If nom_banq_select = "COMPTE COURANT CREDIT MARITIME" Then
solde = Sheets("En cours").Range("E" & 625)
TextBox12.Value = Format(solde, "currency") '-- Solde du compte ---
End If
If nom_banq_select = "LIVRET CREDIT MARITIME" Then
solde = Sheets("En cours").Range("E" & 626)
TextBox12.Value = Format(solde, "currency") '-- Solde du compte ---
End If
If nom_banq_select = "COMPTE COURANT CREDIT MUTUE" Then
solde = Sheets("En cours").Range("E" & 627)
TextBox12.Value = Format(solde, "currency") '-- Solde du compte ---
End If
If nom_banq_select = "LIVRET CREDIT MUTUEL" Then
solde = Sheets("En cours").Range("E" & 628)
TextBox12.Value = Format(solde, "currency") '-- Solde du compte ---
End If
End With
' ------------- si je selectionne dans la liste du combobox des non justifiées, affiche infos de la ligne ----------------------------------
justif = "x"
Set Ws = Sheets("En cours") '------ affecte les lignes non justifié à la combobox2 par le montant
With Me.ComboBox2
For j = 8 To Ws.Range("E" & Rows.Count).End(xlUp).Row
nom_banq = Sheets("En cours").Range("B" & j)
If nom_banq_select = nom_banq Then
justif = Sheets("En cours").Range("F" & j) ' colonne F dit si justifié ou pas "," ou "X" '
If justif = "," Then .AddItem Ws.Range("E" & j) 'colonne E colonne des montants
End If
If j = 569 Then Exit For '569 ligne = maximum à traiter dans la feuille'
Next j
End With
End Sub
'-----------------------------------------------------------
Private Sub ComboBox2_Change()
i = 0
Set Ws = Sheets("En cours") 'Attention ce nom doit correspondre au nom de votre ONGLET
If Me.ComboBox2.ListIndex = -1 Then Exit Sub
ligne = Me.ComboBox2.ListIndex + 8
TextBox17 = ligne
For i = 1 To 10
Me.Controls("TextBox" & i) = Ws.Cells(ligne, i) ' ET C'EST LA QUE JE PERDS MON INDEX DE LA FEUILLE, normal!
Next i
End Sub
'---
'================================================================================
'Correspond au programme du bouton MODIFIER
Private Sub CommandButton2_Click()
i = 0
If MsgBox("Etes-vous certain de vouloir pointer cette écriture ?", vbYesNo, "Demande de confirmation") = vbYes Then
montant = 0
If Me.ComboBox2.ListIndex = -1 Then Exit Sub 'On sort si pas de sélection
For i = 1 To 10 ' dix textbox à remplir...'
If Me.Controls("TextBox" & i).Visible = True Then
Ws.Cells(ligne, 6) = Me.Controls("TextBox" & 6) '--- modifie colonne justif
' ET C'EST LA QUE JE PERDS MON INDEX DE LA FEUILLE, normal!
' et je ne modifie pas la bonne ligne dans la feuille.
TextBox17 = ligne
End If
Next i
montant = TextBox13 - Sheets("En cours").Range("E" & ligne)
TextBox13.Value = Format(montant, "currency")
TextBox12.Value = Format(solde, "currency")
End If 'fin de la condition
End Sub