Afficher des informations dans une ComboBox en fonction d'un critère

Bonjour,

Je réalise un fichier de suivi en version VBA.

Je souhaiterai afficher dans une ComboBox uniquement les valeurs selon un ou plusieurs critères définis.

La ComboBox en question, est celle de "Modification". Je souhaiterai faire afficher dans la liste, uniquement les lignes de l'onglet SUIVI ayant le ou les critère(s) cochés.

J'ai aussi remarqué, lorsque je veux modifier puis valider, la modification se fait sur la 1ere page, alors que celle-ci doit se faire dans l'onglet Suivi.

Je vous remercie pour votre aide.

192022-exemple.xlsm (41.89 Ko)

Bonjour

Ci joint ma solution

602022-exemple.xlsm (40.14 Ko)

A+ François

Bonjour Fanfan38,

Je te remercie pour ta réponse rapide. C'est exactement ce que je souhaitais.

Par contre, je ne sais pas pourquoi, mais lorsque je sélectionne une ligne à modifier via la ComboBox, que je réalise la modification et que je clique sur VALIDER, la ligne qui doit être changé se place dans l'onglet TABLEAU DE BORD.

Je n'ai aucune idée d'où peut venir ce problème car lorsque je fais une nouvelle saisie et que je valide, une nouvelle ligne se crée dans l'onglet SUIVI.

Bonjour,

Si je me rappelle bien, tu ne sembles pas utiliser ta variable "onglet" lorsque tu écris dans les cellules????

Donc, ça écrit dans l'onglet actif.

Bonjour cousinhub,

Etonnant car je déclare bien une variable onglet=Suivi

Private Sub cbx_Modification_Change()
 Dim onglet As Worksheet
 Dim ligne As Long
 Dim Ref As Long
 Set onglet = Sheets("SUIVI")
 ligne = onglet.Cells(Rows.Count, 1).End(xlUp).Row
 If cbx_Modification.ListIndex = -1 Then
    tbx_Date.Value = ""
    cbx_Bookmakers.Value = ""
    cbx_Sport.Value = ""
    tbx_Pari.Value = ""
    tbx_Cote.Value = ""
    tbx_Mise.Value = ""
    cbx_Etat.Value = ""
    cbx_CB.Value = ""
    cbx_Surebet.Value = ""
    cbx_Freebet.Value = ""
    tbx_CashOut.Value = ""
    tbx_Commentaire.Value = ""
 Else
    Ref = cbx_Modification.Value
        For i = 2 To ligne
            If onglet.Cells(i, 1) = Ref Then
                tbx_Date.Value = onglet.Cells(i, 2)
                cbx_Bookmakers.Value = onglet.Cells(i, 3)
                cbx_Sport.Value = onglet.Cells(i, 4)
                tbx_Pari.Value = onglet.Cells(i, 5)
                tbx_Cote.Value = onglet.Cells(i, 6)
                tbx_Mise.Value = onglet.Cells(i, 7)
                cbx_Etat.Value = onglet.Cells(i, 8)
                cbx_CB.Value = onglet.Cells(i, 9)
                cbx_Surebet.Value = onglet.Cells(i, 10)
                cbx_Freebet.Value = onglet.Cells(i, 11)
                tbx_CashOut.Value = onglet.Cells(i, 14)
                tbx_Commentaire.Value = onglet.Cells(i, 15)
            End If
        Next
 End If
End Sub

Re-,

Non, je parle de l'autre code...

If modif = False Then
    If ligne = 1 Then
        Ref = 1
    Else
       Ref = onglet.Cells(ligne, 1) + 1
  End If

onglet.Select
        Cells(ligne + 1, 1) = Ref
        Cells(ligne + 1, 2) = Format(tbx_Date.Value, "yyyy/mm/dd")
        Cells(ligne + 1, 3) = cbx_Bookmakers.Value
        Cells(ligne + 1, 4) = cbx_Sport.Value
        Cells(ligne + 1, 5) = tbx_Pari.Value
        Cells(ligne + 1, 6) = tbx_Cote.Value
        Cells(ligne + 1, 7) = tbx_Mise.Value
        Cells(ligne + 1, 8) = cbx_Etat.Value
        Cells(ligne + 1, 9) = cbx_CB.Value
        Cells(ligne + 1, 10) = cbx_Surebet.Value
        Cells(ligne + 1, 11) = cbx_Freebet.Value
        Cells(ligne + 1, 14) = tbx_CashOut.Value
        Cells(ligne + 1, 15) = tbx_Commentaire.Value
Else
    Ref = cbx_Modification.Value
        For i = 2 To ligne
            If onglet.Cells(i, 1) = Ref Then
                Cells(ligne + 1, 2) = Format(tbx_Date.Value, "yyyy/mm/dd")
                Cells(ligne + 1, 3) = cbx_Bookmakers.Value
                Cells(ligne + 1, 4) = cbx_Sport.Value
                Cells(ligne + 1, 5) = tbx_Pari.Value
                Cells(ligne + 1, 6) = tbx_Cote.Value
                Cells(ligne + 1, 7) = tbx_Mise.Value
                Cells(ligne + 1, 8) = cbx_Etat.Value
                Cells(ligne + 1, 9) = cbx_CB.Value
                Cells(ligne + 1, 10) = cbx_Surebet.Value
                Cells(ligne + 1, 11) = cbx_Freebet.Value
                Cells(ligne + 1, 14) = tbx_CashOut.Value
                Cells(ligne + 1, 15) = tbx_Commentaire.Value
            End If
        Next
End If

Tu ne vas sur l'onglet "onglet" que si "modif = false"

Précède toutes tes "Cells" par "onglet.Cells...", ça évitera le Select, et les problèmes...

problème corrigé

132022-exemple.xlsm (41.62 Ko)

A+ François

une erreur corrigé

162022-exemple.xlsm (41.85 Ko)

A+ François

Bonjour le fil, bonjour le forum,

J'arrive un pétard mais avec ces chaleurs je suis plus mou qu'un carambar oublié sur la terrasse... Tans pis, je poste quand même. C'est pas du Full comment car je n'ai commenté que les parties que j'ai ajoutées et pas celle qui existaient déjà. J'ai codé un utilisant le tableau structuré (ListObject)...

18romain-ep-v01.xlsm (41.15 Ko)

Bonjour,

Merci à vous deux pour vos réponses. C'est exactement ce que je recherchais à faire.
En complétant mon suivi, je me suis aperçu d'une coquille.

En effet, mes numéros de matricule vont jusqu'à 93. Lorsque j'ouvre mon UserForm et que je veux faire une modification du matricule n°1, il m'affiche le matricule n°10. C'est la seule coquille qu'il y a car avec les autres matricules aucun problème.

Rechercher des sujets similaires à "afficher informations combobox fonction critere"