Problème de combobox!

Biloute -  
 Biloute -
Bonjour,
Voila mon petit soucis:
J'ai 2 combobox avec les mêmes valeur "ligne des noms d'équipe" dans chaque colonne se trouvent des noms d'individu faisant partie de chaque équipes.
J'ai 24 autres combo a laquelle je voudrais donc en sélectionnant mes combobox 1 & 2 retrouvais mes lascars de chaque équipe mais je sélectionnerais moi même quel joueur...
J'espère me faire comprendre dans mon exposer. :)
Merci d'avance pour votre aide
Biloute

5 réponses

  1. Utilisateur anonyme
     
    Bonsoir,

    J'espère me faire comprendre dans mon exposer. :)

    ben non, il faudrait commencer par dire quel VB....
    • VBS
    • VB6
    • VB.Net
    • VBA

    et si c'est VBA, word,excel, powerpoint....
    0
    1. Biloute
       
      Pas faut! VBA excel ;)
      0
    2. Utilisateur anonyme
       
      Vba c'est pas mon fort, il va falloir attendre quelqu'un d'autre, mais il sera sûrement intérressé de voir le code que tu as déjà tenté.
      Voir ici la procédure pour poster un code:
      https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code%20la%20coloration%20syntaxique
      0
      1. Biloute > Utilisateur anonyme
         
        En tout cas Merci Whismeril.
        Je n'ai pas encore cette partie.J'ai juste balancer quelques codes. Mais elles sont basic.
        C'était juste pour l'idée code de démarrage ou trouver le bon tuto.
        A plus
        Biloute
        0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Un exemple avec des listbox.
    Je trouve plus simple à programmer que 48 combobox...

    Le code :
    Option Explicit
    
    Dim rngEquipes As Range
    Dim strRngEquip_1 As String
    Dim strRngEquip_2 As String
    Dim Colonne_1 As String
    Dim Colonne_2 As String
    Dim indClick_List_1 As Integer
    Dim indClick_List_2 As Integer
    
    Private Sub UserForm_Initialize()
    indClick_List_2 = 24
    Set rngEquipes = Sheets("Feuil1").Range("A1:J1")
    ComboBox1.List = Application.Transpose(rngEquipes.Value)
    ComboBox2.List = Application.Transpose(rngEquipes.Value)
    End Sub
    
    Private Sub ComboBox1_Change()
    Dim Col As Integer
    Dim rngEquip_1 As Range
    
    If ComboBox1 = "" Then Exit Sub
    Col = rngEquipes.Find(ComboBox1).Column
    Colonne_1 = Chr(Col + 64)
    With Sheets("Feuil1")
        Set rngEquip_1 = .Range(.Cells(2, Col), .Cells(25, Col))
        strRngEquip_1 = Developpe_Adresse(rngEquip_1)
        ListBox1.List = rngEquip_1.Value
    End With
    End Sub
    
    Private Sub ComboBox2_Change()
    Dim Col As Integer
    Dim rngEquip_2 As Range
    If ComboBox2 = "" Then Exit Sub
    Col = rngEquipes.Find(ComboBox2).Column
    Colonne_2 = Chr(Col + 64)
    With Sheets("Feuil1")
        Set rngEquip_2 = .Range(.Cells(2, Col), .Cells(25, Col))
        strRngEquip_2 = Developpe_Adresse(rngEquip_2)
        ListBox2.List = rngEquip_2.Value
    End With
    End Sub
    
    Private Sub ListBox1_Click()
    Dim rng As Range, strRng As String, Ligne As Long
    
        indClick_List_1 = indClick_List_1 + 1
        Me.Controls("Label" & indClick_List_1) = ListBox1.List(ListBox1.ListIndex)
        Ligne = Sheets("Feuil1").Columns(Colonne_1).Find(ListBox1.List(ListBox1.ListIndex)).Row
        strRngEquip_1 = Replace(strRngEquip_1, "$" & Colonne_1 & "$" & Ligne & ",", "")
        If strRngEquip_1 = "" Then Exit Sub
        strRng = Left(strRngEquip_1, Len(strRngEquip_1) - 1)
        ListBox1.Clear
        Set rng = Sheets("Feuil1").Range(strRng)
        Rempli_Liste ListBox1, rng
    End Sub
    
    Private Sub ListBox2_Click()
    Dim rng As Range, strRng As String, Ligne As Long
    
        indClick_List_2 = indClick_List_2 + 1
        Me.Controls("Label" & indClick_List_2) = ListBox2.List(ListBox2.ListIndex)
        Ligne = Sheets("Feuil1").Columns(Colonne_2).Find(ListBox2.List(ListBox2.ListIndex)).Row
        strRngEquip_2 = Replace(strRngEquip_2, "$" & Colonne_2 & "$" & Ligne & ",", "")
        If strRngEquip_2 = "" Then Exit Sub
        strRng = Left(strRngEquip_2, Len(strRngEquip_2) - 1)
        ListBox2.Clear
        Set rng = Sheets("Feuil1").Range(strRng)
        Rempli_Liste ListBox2, rng
    End Sub
    
    Public Function Developpe_Adresse(rng As Range) As String
    Dim Cel As Range, strTmp As String
        For Each Cel In rng
            strTmp = strTmp & "," & Cel.Address
        Next Cel
        Developpe_Adresse = Right(strTmp, Len(strTmp) - 1) & ","
    End Function
    
    Private Sub Rempli_Liste(Liste As MsForms.ListBox, rng As Range)
    Dim Cel As Range
        For Each Cel In rng
            Liste.AddItem Cel.Value
        Next Cel
    End Sub
    

    0
    1. Biloute
       
      Salut Pijaku,
      Wouah!! J'aurais jamais penser a tout ça...
      Je vais voir si ça marche. Je te tien au jus.
      Bonne journée
      Biloute
      0
    2. Biloute
       
      Salut Pikaju,
      Pourquoi "Label"?
      indClick_List_2 = indClick_List_2 + 1
      Me.Controls("Label" & indClick_List_2) = ListBox2.List(ListBox2.ListIndex)
      Merci pour l'info.
      Biloute
      0
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    pourquoi label?
    parce que les noms, une fois cliqués dans la liste sont inscrits dans des labels.
    Maintenant, j'ai besoin de savoir si cette méthode te conviens. il s'agit d'un premier jet qui laisse pas mal d'erreurs et est incomplet.
    Si cela te va, je reviens demain le compléter et corriger.

    --
    0
    1. Biloute
       
      ça s'affiche bien dans les listeBox. Mais quand je clic sur la LBX2. cà m'affiche :
      Erreur d'éxécution -2147024809(80070057) objet spécifié introuvable. La LBX1 vas bien
      J'ai tenté de voir si j'avais bien tout modifié. Mais....!?
      Biloute

      Private Sub ListBox2_Click()
      Dim rng As Range, strRng As String, Ligne As Long
      
          indClick_List_2 = indClick_List_2 + 1
          Me.Controls("Label" & indClick_List_2) = ListBox2.List(ListBox2.ListIndex)
          Ligne = Sheets("Equipe").Columns(Colonne_2).Find(ListBox2.List(ListBox2.ListIndex)).Row
          strRngEquip_2 = Replace(strRngEquip_2, "$" & Colonne_2 & "$" & Ligne & ",", "")
          If strRngEquip_2 = "" Then Exit Sub
          strRng = Left(strRngEquip_2, Len(strRngEquip_2) - 1)
          ListBox2.Clear
          Set rng = Sheets("Equipe").Range(strRng)
          Rempli_Liste ListBox2, rng
      End Sub
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > Biloute
       
      Bonjour,

      La question n'est pas là. Relis mon dernier message :
      Maintenant, j'ai besoin de savoir si cette méthode te convient.
      il s'agit d'un premier jet qui laisse pas mal d'erreurs et est incomplet.
      Si cela te va, je reviens demain le compléter et corriger.
      0
    3. Biloute
       
      ça me vas Pikaju. No soucis for that!
      Biloute
      0
    4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > Biloute
       
      ok.
      Je reviens donc tout à l'heure avec un nouveau code, mieux organisé.

      Parmi les modifs notables :
      - un click sur un label remettra le nom du joueur dans la liste
      - tu pourras choisir la "catégorie" de joueur (gardien, attaquants,...) à compléter plutôt que de les remplir dans l'ordre
      0
    5. Biloute > pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention  
       
      C'est pas pour du foot Pikaju. :)
      Biloute
      0
  4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bon.
    Dis moi ce que tu en penses sincèrement :
    https://www.cjoint.com/c/FCen0U3wYKE

    Il faut :
    dans le module1 régler les constantes
    Essayer dans l'userform

    Il reste des défauts, mais l'essentiel (sauf le bouton enregistrer) est là.
    0
    1. Biloute
       
      J'ai eu un peu de mal au début pour trouver. Mais super truc Merci Pijaku. Maintenant il me faut m'amuser a enregistrer les résultats sur une feuille pour chaque individus.
      Génial en tout cas!!
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Le Fichier
    Les enregistrements se font feuille Matchs
    Tu peux changer les noms dans la première ligne, mais pas changer l'ordre des colonnes

    A lundi pour la suite.
    0
    1. Biloute
       
      Bon weekend. N'abuse pas trop de la bière!! ;)
      J'espère que lundi je te ferais voir le tableau final.
      Biloute
      0
    2. Biloute
       
      Salut Pikaju,
      Bon weekend?
      Bon! Je suis un mauvais élève. Pas réussi et je me suis perdu dans tous ces codes. :/
      Peut tu me donner les bases pour pouvoir avancer dans mon bricolage fait par toi!?
      Biloute
      0
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > Biloute
       
      Bonjour,

      Que n'as tu pas compris?
      0
    4. Biloute
       
      La façon de mettre les valeurs des matchs "Noms et points dans leur case respective".
      Ex: daniel a gagner et a 2 pts sur trois manches donc il a 33.33% environ. et ainsi de suite. Complexe mais possible non!?
      Biloute
      0
    5. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > Biloute
       
      1- j'me suis fait une variable tableau qui reprend tous les contrôles dont tu veux sauvegarder le contenu :
      Liste_Controles_Ordonnee = Array("ComboEquipe1", "ComboEquipe2", "Score_Eq1", "Score_Eq2", "LabE1_J1", "LabE1_J2", "LabE1_J3", "LabE1_J4", "LabE1_J5", "LabE1_J6", "LabE1_J7", "LabE1_J8", "LabE2_J1", "LabE2_J2", "LabE2_J3", "LabE2_J4", "LabE2_J5", "LabE2_J6", "LabE2_J7", "LabE2_J8", "CBScoreEq1_Match1", "CBScoreEq1_Match2", "CBScoreEq1_Match3", "CBScoreEq1_Match4", "CBScoreEq1_Match5", "CBScoreEq1_Match6", "CBScoreEq1_Match7", "CBScoreEq1_Match8", "CBScoreEq2_Match1", "CBScoreEq2_Match2", "CBScoreEq2_Match3", "CBScoreEq2_Match4", "CBScoreEq2_Match5", "CBScoreEq2_Match6", "CBScoreEq2_Match7", "CBScoreEq2_Match8", "LabDoublesE1_M1", "LabDoublesE2_M1", "CBScoreEq1_MatchD1", "CBScoreEq2_MatchD1", "LabDoublesE1_M2", "LabDoublesE2_M2", "CBScoreEq1_MatchD2", "CBScoreEq2_MatchD2")

      J'ai gardé le même ordre que cet array pour les entêtes des colonnes.
      Du coup, je n'ai plus qu'à boucler sur la variable tableau pour placer les valeurs.

      2- Ex: daniel a gagner et a 2 pts sur trois manches donc il a 33.33% environ. et ainsi de suite. Complexe mais possible non!?
      2a- pas compris... Tu veux des stats sur les joueurs?
      2b- 2/3 = 66%
      0