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

Doublons listbox

  • Initiateur de la discussion Initiateur de la discussion Roni95
  • 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 !

Roni95

XLDnaute Occasionnel
Bonjour Le forum !

J'ai crée un formulaire pour rentrer mes clients par n°, nom... et je souhaiterais ne pas saisir de doublons.

Auriez-vous une solution pour que lorsque je saisie par le n° de client, on puisse m'alerter que ce n° existe déjà?

Merci pour votre aide? (Par contre, je n'ai pas le fichier car suis à mon travail).
 
Re : Doublons listbox

Re,

C'est juste un exemple.
LaVal est une variable quelconque qui a pour valeur 25. Dans l'exemple si 25 est déjà présent dans A2:A5000 la valeur de la variable ne sera pas copiée sur la feuille.
Si la valeur à copier venait d'un TextBox : LaVal = TextBox1, d'une cellule : Range("A1") .....

Le but de la macro était de te faire voir que tu pouvais faire le test des doublons avant de d'inscrire ta valeur sur la feuille sans créer une nouvelle macro dans le module de code de la feuille.

Tu as résolu ton problème ?

A+
 
Re : Doublons listbox

Non pas résolu 😕

Dois je aussi laisser cette macro?

"Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 1 Then
If Application.WorksheetFunction.CountIf(Range("A2:A5000"), Target.Value) > 1 Then
MsgBox "ce nom existe déja"
Target = ""
Target.Activate
End If
End If
End Sub

Et que veut dire ton champ .Target = A25 ??
 
Re : Doublons listbox

Re

Target correspond à la cellule active de la feuille.

Je veux bien essayer de modifier ta macro mais laquelle ?
Tu as trois Userform dans ton fichier, sur quelle feuille tu ne veux pas de doublon ?
Donne moi un peu plus d'info.

A+
 
Re : Doublons listbox

Re,

Test ceci pour le Userform2:

Code pour le bouton "Nouveau" Client

Code:
Private Sub CommandButton1_Click()
With Sheets(nomfeuille2)
    If controledonnee = 1 Then Exit Sub
     lig = .Range("A65536").End(xlUp).Row + 1
        If Application.WorksheetFunction.CountIf(.Range("A2:A5000"), TextBox1) > 0 Then
          MsgBox "Modifier le N° de Client.", vbExclamation, "Attention: N° de client déjà attribué."
          TextBox1 = ""
          TextBox1.SetFocus
          Exit Sub
        Else
            Call maj(nomfeuille2, lig)
            Call listboxremp
            Call IniCombobox1(nomfeuille2, "e", 2, 5, True)
            Call IniCombobox1(nomfeuille2, "f", 2, 6, True)
            Call raz
        End If
End With
End Sub

Tu supprimes la macro que tu as ajouté dans le module de code de la feuille "Client"

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
.../...
End Sub


A+
 
Re : Doublons listbox

En fait, je veux vérifier mes doublons sur les feuilles "Client" & "Produit".

J'ai testé ton code et ça marche pas !!!!!!!!!!

Je vais essayé de faire de même pour les produits

Merci encore pour ton aide
 
Dernière édition:
Re : Doublons listbox

Re,

Je suis désolé mais le code du bouton "Nouveau" du Userform "Liste des Clients" fait ce que tu demandes.

Il interdit de saisir un N° de client déjà existant.

Pour les "Produits" c'est un peu différent, il faut tester la Référence et la Couleur. Je regarderai cet après-midi.

Tu es l'auteur de ce fichier ?

A+
 
Re : Doublons listbox

Re,

Je me disais bien aussi, 🙂 je viens de voir sa signature dans le ThisWorkbook.

Voici une façon de faire pour le bouton "Nouveau" du Userform3 "Produits".

Code:
Private Sub CommandButton1_Click()

Dim TabRef, k As Long
With Sheets(nomfeuille3)
TabRef = .Range("A2:B" & .Range("A65536").End(xlUp).Row)
  For k = 1 To UBound(TabRef, 1)
     If UCase(TabRef(k, 1)) = UCase(TextBox1.Text) And UCase(TabRef(k, 2)) = UCase(ComboBox2.Text) Then
        MsgBox "Modifier le N° de Référence Et/Ou le N° de Couleur.", vbExclamation, "Attention: Référence existante."
        TextBox1 = ""
        TextBox1.SetFocus
        ComboBox2.ListIndex = -1
        Exit Sub
     End If
  Next
End With
If controledonnee = 1 Then Exit Sub
lig = Sheets(nomfeuille3).Range("A65536").End(xlUp).Row + 1
Call maj(nomfeuille3, lig)
Call listboxremp
Call IniCombobox1(nomfeuille3, "c", 2, 3, True)
Call IniCombobox1(nomfeuille3, "b", 2, 2, True)
Call raz
End Sub

Attention dans ta feuille "Produit" tu as des espaces en trop dans la colonne B. Exemple tu as C1 et C1+espace, tu peux t'en rendre compte dans la liste du Combobox "Couleur" du Userform3, malgré l'utilisation de la Collection pour remplir le Combobox tu as plusieurs C1,C2.....


A+
 
- 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
10
Affichages
576
Réponses
2
Affichages
287
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…