XL 2016 vba msgbox si doublon selon 2 critères

belsamis01

XLDnaute Nouveau
Bonjour à tous,

En colonne D (client)et E (Salon), je souhaite avoir une macro qui empêche de saisir en double si les données D et E sont déjà existante sur d'autres lignes à travers une msgbox(client déjà existant).
J'ai un code qui fonctionne sur une seule colonne mais pas sur 2 je ne sais pas faire.

Voici le code

Public Flag As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
If Flag Then Exit Sub
If Not Application.Intersect(Target, Columns("C")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
If Application.CountIf(Range("C:C"), Target) > 1 Then
Flag = True
MsgBox ("Donnée déjà saisie")
Target.ClearContents
Flag = False
End If
End If
End Sub

Je vous remercie de votre aide
 

Pièces jointes

  • Calendrier TEC.xls
    112.5 KB · Affichages: 38

youky(BJ)

XLDnaute Barbatruc
Bonjour à tous, Belsamis01,
Essayer ceci
Bruno
Edit je viens de modifier un peu le code
VB:
 Public Flag As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
If Flag Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target.Column = 5 Then
    nomD = Target.Offset(0, -1).Value: nomE = Target.Value
        For lig = 7 To [E65000].End(3).Row - 1
        If Cells(lig, 4) = nomD And Cells(lig, 5) = nomE Then
        MsgBox ("Donn?e d?j? saisie" & " " & lig)
        Application.EnableEvents = False 'emp?che de revenir
                Target.ClearContents
        Application.EnableEvents = True
        End If
        Next
  End If
End Sub
 
Dernière édition:

belsamis01

XLDnaute Nouveau
Merci beaucoup Youky,

Puis-je vous demander votre aide sur le même fichier,
Actuellement mes listes déroulantes sont en cascade à travers une fonction indirect.
Mon soucis c'est que ce fichier sera manipulé par d'autres personnes, lorsqu'un utilisateur aura un nouveau client /salon ou client ou salon.
Je ne sais pas comment simplifier la manipulation pour qu'il puisse le rajouter en feuille BD colonne C et F pour que ces rajouts apparaissent dans les listes déroulantes sur la feuille TEC colonne D et E.
Exemple client MAEESF peut avoir plusieurs salons différents

Actuellement je nomme les plage clients et salons manuellement

Je vous remercie d'avance de l'aide apportée.

Cordialement
Samy
 

belsamis01

XLDnaute Nouveau
Merci pour votre réponse,

Je viens d'essayer votre code pour les doublons il m'empêche la saisie en colonne (E) même si celui n'est pas un doublon. oups je regarde mais je comprends d'ou viens l'erreur mon niveau de codage est rudimentaire.

J'ai dû mal formuler mon souhait,
sur l'onglet TEC, lorsque l'utilisateur ne trouve pas son client dans la liste déroulante colonne (D) et la colonne (E) pour le salon qui lui est rattaché.
J'aimerai que l'utilisateur puisse rajouter le client ou le salon qui dépend d'un client sur l'onglet BD pour que les listes déroulantes se mettent à jour.

Exemple
Onglet TEC
l'utilisateur souhaite choir le client (samy) celui-ci est un nouveau client il n'apparait pas dans la liste déroulante colonne (D)
Actuellement il faudrait qu'il aille sur la feuille BD rajouter le nom du client en colonne(F) mettre le noms du salon en colonne (C) nommer cette cellule au nom du client pour que la fonction indirect fonctionne.
J'aimerai simplifier cette démarche au maximum.

En vous remerciant
 

Pièces jointes

  • Calendrier TEC.xls
    108 KB · Affichages: 27

youky(BJ)

XLDnaute Barbatruc
Voici le fichier comme le précédent légèrement modifié.
Toutes mes listes sont faites au fur et à mesure avec les macros, je n'utilise pas tes noms de liste(tu peux les effacer)
Pour ajouter un collaborateur ou un Client ou Salon mets le ou les noms dans les combobox souhaités.
Au moment de Valider si nouveau nom une nouvelle ligne est faites en BD qui sera prise en compte par la suite.
Avec tes listes de validation on est vite bloqué et je n'ai pas de solution possible.
Le mieux est d'en passer par un formulaire (bouton NOUVEAU)
J'ai mis la bonne formule en F10 on peut pas la tirer à droite, à remplir manuellement
Bruno
 

Pièces jointes

  • Calendrier TEC (1).xls
    132 KB · Affichages: 19

belsamis01

XLDnaute Nouveau
Désolé de tout ce retard pour vous remercier,

Merci beaucoup pour votre modif avec le useform c'est bien plus sympas. cependant j'ai du modifier la BDD car on ne souhaite plus que les collègues choississent leurs noms mais plus plutôt le client le salon et le détail du salon.

le useform lorsque l'on choisi le client c'est ok : ex choix baume et mercier ont choisi le salon (SIHH) c'est ok mais lorsque l'on choisi le détail il reprend tous les salons SIHH de la colonne et non le salon rattaché à baume.
Pour argumenter mon ex je vous ai filtrer la feuille BDD avec le client concerné et sur l'onglet TEC mis l'exemple.

Vous remerciant de l'aide que vous m'apporterez.

Cordialement
Samy
 

Pièces jointes

  • Calendrier TEC v2.xls
    137.5 KB · Affichages: 37

youky(BJ)

XLDnaute Barbatruc
Ravi, de faire des heureux c'est notre seul but.
Pour un autre fichier il serait bien de faire un nouveau fil afin que tous mes collègues puissent donner aussi leurs solutions.
Si plusieurs macros sont proposées vous n'aurez que le choix, si je suis de la partie c'est tant mieux.
Je reviens toujours voir mes discutions donc ici si besoin.
Bruno
 

Discussions similaires

Statistiques des forums

Discussions
311 735
Messages
2 082 023
Membres
101 873
dernier inscrit
excellllll