[VBA E] ajout conditionnel dans la liste d'une combobox

treza88

XLDnaute Occasionnel
Bonjour à tous

J'ai le code suivant qui ajoute la valeur actuel de la combobox Cb_client à une liste en feuil2 qui comporte 10 valeurs.
Tout fonctionne bien mais je voudrais que l'ajout ne ce fasse que si la veur n'existe pas dans la liste et que si elle existe deja qu'el la place en debut de liste.

J'espere avoir été clair.

Voila le code :

Code:
Private Sub UserForm_Terminate()
Dim i As Byte
With Sheets("feuil2")

        For i = 0 To cb_Client.ListCount - 1
                .Cells(i + 1, 1) = cb_Client.List(i)
        Next i
End With
End Sub

Merci d'avance
 

treza88

XLDnaute Occasionnel
Re : [VBA E] ajout conditionnel dans la liste d'une combobox

bonjour informatixo, le forum

Voila le fichier :

Regarde la pièce jointe naj.zip

une breve explication:

Donc je selectionne avec la souris une zone dans une des deux colonne les plus large et avec un click droit je viens chercher dans le menu contextuel la commande "activité journaliere" ce qui lance ma userform.

Et la dans la liste de la combo client je voudrais qui n'y ai pas de doublon et que la derniere selection dans la combo si elle etait en milieu de liste apparaisse en premiere position.

Voila s'il y a autre chose à fournir en explication n'esitez pas.

Merci
 

Pièces jointes

  • naj.zip
    24.6 KB · Affichages: 77
  • naj.zip
    24.6 KB · Affichages: 78

JeanMarie

XLDnaute Barbatruc
Re : [VBA E] ajout conditionnel dans la liste d'une combobox

Bonsoir

J'ai rajouté une macro, et un événement lancer à la fermeture, pour supprimer la ligne du menu contextuel que tu rajoutes au lancement du fichier.

Je ne sais pas si cela va te convenir complètement, à toi de voir.
J'ai modifié la Sub d'initialisation de l'userform, et la sub cb_Client_Exit, pour prendre en compte les nouvelles valeurs que tu saisis. La sub cb_Client_Exit, contient une formule d'Excel (EQUIV)

@+Jean-Marie
 

Pièces jointes

  • naj.zip
    23.3 KB · Affichages: 99
  • naj.zip
    23.3 KB · Affichages: 86
  • naj.zip
    23.3 KB · Affichages: 84

treza88

XLDnaute Occasionnel
Re : [VBA E] ajout conditionnel dans la liste d'une combobox

Bonjour JeanMarie

Je viens de faire un bref test ça a l'air de fonctionner, à une chose pres la selection faites dans la liste de la combo ne se repositionne pas en debut de liste.

Je suis peut etre exigeant.

Mais je vais y jeter un oeil plus approfondit et voir si je n'y arrive pas de mon coté.

Merci
 

treza88

XLDnaute Occasionnel
Re : [VBA E] ajout conditionnel dans la liste d'une combobox

Merci JeanMarie

ça fonctionne mais dans ce que tu as supprimé il y avait la limitation de la liste à 10 valeurs donc la liste augmente au fur et à mesure qu'on y ajoute des noms.

Mais je pense que je vais m'en sortir pour le remettre en fonction.

Encore merci.
 

JeanMarie

XLDnaute Barbatruc
Re : [VBA E] ajout conditionnel dans la liste d'une combobox

Bonjour

Je viens d'adpater le code, tu veras bien.
J'ai rajouté deux sub événementielles dans la Feuil1, qui affiche ou masque la ligne dans la barre d'outils "Cell" en fonction de l'activation ou la désactivation de cette feuille.

@+Jean-Marie
 

Pièces jointes

  • naj.zip
    24.8 KB · Affichages: 85
  • naj.zip
    24.8 KB · Affichages: 87
  • naj.zip
    24.8 KB · Affichages: 83

treza88

XLDnaute Occasionnel
Re : [VBA E] ajout conditionnel dans la liste d'une combobox

Bonjour et merci jeanMarie

Je viens de tester le fichier que tu me retourne, le premier nom selectionner ou rentré directement dans la liste, se place bien en debut de liste et reste bien à 10 valeur.
Mais la liste ne s'incremente pas au fur et à mesure des entrées des nouvelles valeurs.

Si tu as la solution, merci.

Sinon de toute façon je vais essayer de decrypter ton code pour essayer de le comprendre.
 

JeanMarie

XLDnaute Barbatruc
Re : [VBA E] ajout conditionnel dans la liste d'une combobox

Re...

Je ne comprends pas cette phrase
Mais la liste ne s'incremente pas au fur et à mesure des entrées des nouvelles valeurs.
Dans quelle cellule se trouve cette valeur ?

@+Jean-Marie
 

treza88

XLDnaute Occasionnel
Re : [VBA E] ajout conditionnel dans la liste d'une combobox

le nom qui est en premiere place ne passe pas en deuxième place.
le nom qui est en deuxieme place ne passe pas en troisième place.
le nom qui est en troisième place ne passe pas en quatrième place.
et ainsi de suite pour les 10 valeurs.

merci
 

JeanMarie

XLDnaute Barbatruc
Re : [VBA E] ajout conditionnel dans la liste d'une combobox

Bonjour

Remplace le code de la sub cb_Client_Exit par celui-ci
Code:
Private Sub cb_Client_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim vCell As Variant
Dim vCb_Client As String
Dim I As Long
vCb_Client = cb_Client.Text
vCell = Application.Match(vCb_Client, Sheets("Feuil2").Range("A:A"), 0)
For I = IIf(IsError(vCell), 10, vCell) To 2 Step -1
   cb_Client.List(I - 1) = cb_Client.List(I - 2)
   Sheets("Feuil2").Cells(I, 1) = Sheets("Feuil2").Cells(I - 1, 1)
Next I
cb_Client.List(0) = vCb_Client
cb_Client.ListIndex = 0
Sheets("Feuil2").Cells(1, 1) = vCb_Client
End Sub
@+Jean-Marie
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 519
dernier inscrit
Thomas_grc11