Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 fichiers sans doublons.

  • Initiateur de la discussion Initiateur de la discussion MAN
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MAN

XLDnaute Occasionnel
bonsoir le forum Bonsoir. a tous
je reviens avec mon fichier MANN V7. suite de MANN V3. je voudrai que la colonne de combobox n'admette pas de doublons, que, dans la list box, on ne retrouve pas deux fois un meme intitulé et qu'il en soit de meme pour la combo box. j'espere que j'aurai une solution.
merci d'avance
 

Pièces jointes

Bonsoir,
Je pense que tous les intervenants attendent d'avoir plus de détail .
C'est bien d'exposer ce qu'on ne veut pas, mais quoi faire en ce cas : on élimine tous les doublons ou les occurrences suivantes ?
 
Bonjour MAN, fanch55,

Modifiez ou validez une cellule quelconque ce qui lance la macro :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
ListObjects(1).Range.RemoveDuplicates 1
Application.EnableEvents = True
End Sub
Et si le ménage n'a pas encore été fait :
VB:
Sub Bouton1_Cliquer()
    ActiveCell = ActiveCell.Formula 'lance la Worksheet_Change
    UserForm1.Show
End Sub
A+
 

Pièces jointes

merci. encore
je me retrouve devant un autre problème.
quand un libellé était déjà renseigné, et que l'on décide de modifier sa valeur, la procédure ci dessous Bogue.
'-------procédure pour la saisie semi automatique de la combobox1-------
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
' If ComboBox1.Text <> "" And TextBox1.Text <> "" Then
Me.ListBox1.List(L, 1) = y
Me.TextBox1 = ""
Me.ComboBox1 = ""
Me.ComboBox1.SetFocus
' End If
End Sub
Précisement la ligne de code "" Me.ListBox1.List(L, 1) = y "" que faire.
 

Pièces jointes

j'ai remplacé tout le code
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
' If ComboBox1.Text <> "" And TextBox1.Text <> "" Then
Me.ListBox1.List(L, 1) = y
Me.TextBox1 = ""
Me.ComboBox1 = ""
Me.ComboBox1.SetFocus
' End If
End Sub
par le tiens

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If L >= ListBox1.ListCount Then Exit Sub
end sub
c'est a ce niveau que je me suis planté.
que dois je vraiment faire. je ne suis qu'un débutant.
 
C'est pas vrai, même un débutant comprend ça :
VB:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If L >= ListBox1.ListCount Then Exit Sub
    ListBox1.List(L, 1) = y
    TextBox1 = ""
    ComboBox1 = ""
    ComboBox1.SetFocus
End Sub
 
Dans le fichier joint j'ai supprimé les macros TextBox1_Change et TextBox1_Exit.

Et créé cette macro :
VB:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    ListBox1.List(ListBox1.ListIndex, 1) = TextBox1
    TextBox1.SetFocus
    TextBox1.SelStart = 0
    TextBox1.SelLength = Len(TextBox1)
End Sub
Entrer ou modifier le montant dans la TextBox et faire un double-clic dans la ListBox.
 

Pièces jointes

Encore un soucis. je souhaiterai si possible que les deux méthodes fonctionnent. c'est a dire
1-faire la saisie semi automatique et insérer la valeur
2- taper sur ENTREE pour alimenter la list box. (cette partie a été suprimée par la nouvelle procédure)
3-pouvoir modifier a souhait les valeurs si on se trompe en resaisissant la combobox et en inscrivant le montant.
merci d'avance
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
451
Réponses
1
Affichages
337
Réponses
10
Affichages
501
Réponses
11
Affichages
640
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…