( resolu )Alimenté une combobox et ajouter la valeur si non inscrit dans la liste

fan2foot

XLDnaute Nouveau
Bonjour,

Mon problème est assez standard mais à chaque solution que je trouve dans l'historique du forum, je rencontre le même problème. Une fois que j'essaie une des solutions proposées, lorsque je clic sur enregistrer dans mon userform, ma feuille de calcul ou les données de mon userform devrait se retranscrire ne se remplit pas mais mon userform lui se réinitialise bien.

Ce que je souhaite faire est plutôt "basique", la source de ma combo-box se trouve dans la colonne A sur la feuil1, lorsque j'appuie sur enregistrer la valeur de ma combo-box se remplit dans la colonne A de ma feuille pronostic. Si la valeur de ma combo-box n'existe pas dans la liste , alors lorsque j'appuie sur enregistrer elle est ajouté à ma liste sur le feuil1.

Actuellement, après une dernière tentative je n'ai même plus de valeur dans la combo box

Pouvez-vous - vous m'aidez s'il vous plaît ?
 

Pièces jointes

  • Classeur1.xlsm
    91.3 KB · Affichages: 33
  • Classeur1.xlsm
    91.3 KB · Affichages: 39
Dernière modification par un modérateur:

thebenoit59

XLDnaute Accro
Re : Alimenté une combobox et ajouter la valeur si non inscrit dans la liste

Salut fan2foot.

Il faudrait voir pour optimiser tes codes dans ton Usf c'est un peu le bordel.
Je te joins les modifications.
J'ai ajouté l'alimentation de la combobox à l'initialisation de l'usf et l'ajout du nom s'il n'existe pas, puis tri de la colonne A de ta Feuil1 (ça fait propre).
 

Pièces jointes

  • Classeur1.xlsm
    89.8 KB · Affichages: 92
  • Classeur1.xlsm
    89.8 KB · Affichages: 61

fan2foot

XLDnaute Nouveau
Re : Alimenté une combobox et ajouter la valeur si non inscrit dans la liste

bonjour,

Merci beaucoup pour le codage, sa marche nikel. Et le tri par ordre alphabétique c'est parfait.
Pour les codes de mon Usf, j'imagine qu'il faille créé des boucles ?
J'ai conscience que mon codage est "bordélique" seulement j'apprend le Vba au fur et a mesure que j'avance sur cette feuille.
Jusqu’à présent je cherchais des formules qui "marche", mais si tu veux me donner des conseil ou des piste d’amélioration je suis preneur.
 

fan2foot

XLDnaute Nouveau
Re : Alimenté une combobox et ajouter la valeur si non inscrit dans la liste

bonjour;

Merci pour ton aide rapide.

Après plusieurs tests tout marcherait presque bien, il y a juste une chose qui ne va pas et je ne sais pas comment le faire "proprement".

Lorsque j'appuie sur le bouton préparer la prochaine journée de ma feuille "classement ", il faudrait que les valeurs se trouvant sur la feuille "calcul phase retour" sur la plage D3 à D100 soit copié et collé sur la plage j3 à J100 même chose pour le score de la plage G3 à G100 qui doit se coller en K3 à K100. Et pour la feuille "calcul saison régulière", c'est le même problème avec les données en C3: C100 qui doivent se coller en I3: I100 et les scores en E3: E100 qui doivent se coller en J3: J100.

À part ce petit souci, tout marche super bien, et c'est vrai que le codage fait beaucoup plus court et certainement beaucoup plus agréable à lire pour un initié.

je remet le fichier car j'ai fait moi même, quelque petite modif'
 

Pièces jointes

  • Fan2Foot.xlsm
    85.7 KB · Affichages: 26
  • Fan2Foot.xlsm
    85.7 KB · Affichages: 24

fan2foot

XLDnaute Nouveau
Re : Alimenté une combobox et ajouter la valeur si non inscrit dans la liste

merci
ta nouvelle version à résolu le problème.
Par contre je viens de m’apercevoir qu'il y a un autre problème. Sur la feuil "score" je n'ai plus les banco qui se remplissent.
Avant lorsque le banco match 1 ( par exemple) était coché, la colonne M de ma feuille "score" était égale au score de la colonne C, si c'est le banco match 2 qui était coché, la colonne M était égale au score de la colonne D et ainsi de suite jusqu'au match 10.
Voici la formule qui faisait ça avant, mais avec le bouclage, je t'avoue ne pas trop savoir comment faire.
Code:
Sheets("score").Cells(no_ligne, 12) = Sheets("score").Cells(no_ligne, 2)
(Ceci était le codage pour le banco 1.)

J'aurais une autre demande à faire, mais je ne voudrai pas abusez de ta gentillesse. Donc je te le demande du bout des doigts :rolleyes:
Je voudrais faire une mise en forme conditionnelle, qui changerait de couleur tout une colonne en fonction d'une valeur se trouvant sur une autre feuille. J'ai compris que j'étais obligé de passer par une macro mais après plusieurs essais je n'y arrive pas.
Ce que je souhaiterais c'est lorsqu'un match de ma feuille "résultat L1" est écrit "annulé" dans la colonne C, la colonne en question sur la feuille "pronostic" se teint en rouge s'il y a au moins une valeur dans cette colonne, et le ou les joueurs qui ont pronostiqué sur le match annulé voient leur cellule dans la colonne A grisée.
S'il n'y a pas ou plus de valeur dans cette colonne alors la colonne reprend sa couleur "normal" (blanc ?)
Enfin j'aimerais que lorsque je clic sur " préparer la journée suivante" sur ma feuille "classement" une message box s'ouvre me disant " il y a un ou des pronostic enregistrer sur un match annulé, voulez-vous continuer ? oui ou non" s'il y a une ou des colonnes teinte en rouge sur la feuille "pronostic"

Je ne sais pas si ce que je demande et compliqué ou non, je ne voudrais pas abuser non plus.
 

fan2foot

XLDnaute Nouveau
Re : Alimenté une combobox et ajouter la valeur si non inscrit dans la liste

Bonjour;

Le problème du banco est résolu un GRAND merci, ma feuille est maintenant fonctionnelle.

Pour ce qui est des matchs annulés, il y a juste un petit souci, si je supprime le mot "Annulé" sur le feuille résultat L1, alors la colonne rouge disparaît mais si je supprime le pronostic qui fait apparaître cette colonne rouge sur la feuille "pronostic" alors il ne se passe rien. Le nom du joueur lui aussi ne se dégrise pas, quel que soit l'état de mes cellules sur les deux feuilles, il faut que je les dégrise manuellement.
J'ai essayé de résoudre le problème par moi-même, en cherchant des infos sur ton codage. J'ai pensé avoir trouvé la solution en mettant ce code sur la feuille 2. J'ai juste recopié le code de la feuille "resultat L1" et changer rresul par fprono dans la ligne "If Not Application.Intersect() Is Nothing Then" .
Mais sa ne change rien du tout.
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin
'--- Déclaration des variables
Dim llProno As Long
Dim fResul As Worksheet, fProno As Worksheet
Dim rResul As Range
Dim dResul As Object
Dim Cell As Variant
'--- On enregistre les variables
    Set fResul = Feuil3: Set fProno = Feuil2
    Set rResul = fResul.Range("c2:c11")
    llProno = fProno.Cells.Find("*", , , , xlByRows, xlPrevious).Row
'--- On cherche la valeur modifiée
If Not Application.Intersect(Target, fProno) Is Nothing Then
    If fProno.Cells(Rows.Count, Target.Row).End(xlUp).Row > 1 And Target.Value = "Annulé" Then
        fProno.Range(fProno.Cells(1, Target.Row), fProno.Cells(llProno, Target.Row)).Interior.ColorIndex = 3
        For Each Cell In fProno.Range(fProno.Cells(2, Target.Row), fProno.Cells(llProno, Target.Row))
            If Cell.Value <> "" Then fProno.Cells(Cell.Row, 1).Interior.ColorIndex = 48
        Next Cell
            Else: fProno.Columns(Target.Row).Interior.ColorIndex = xlColorIndexNone
    End If
End If
Fin:
End Sub

Peux-tu me dire d'où vient le problème, s'il te plaît ?
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Taille UserForm
Réponses
3
Affichages
326

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi