Gerer les doublons par USERFORM

PatLac

XLDnaute Occasionnel
Bonjour à tous !
J'ai un classeur avec 2 feuilles : 1 feuille de travail, l'autre servant de "base de données".

J'utilise sur la feuille de travail une "recherche verticale" (recherchev sur la feuil2) pour remplir les cellules.

Le soucis c'est que lorsque j'ai un doublon, la recherche s'arrête sur le premier trouvé (en l'occurence "parents1" dans mon exemple)

Le problème c'est que j'ai 4 fois "parents1" dans ma base, qui n'ont en commun que le nom, le reste étant différents.

Je voudrais savoir s'il possible de mettre en place un userform, qui reprendrait les noms trouvés et laisserait le choix avec une case à cocher de choisir l'un ou l'autre.

Je mets une exemple ci-dessous.

Merci d'avance.

Cordiales Salutations
 

Pièces jointes

  • BD.xlsx
    9.6 KB · Affichages: 45
  • BD.xlsx
    9.6 KB · Affichages: 44
  • BD.xlsx
    9.6 KB · Affichages: 47

PatLac

XLDnaute Occasionnel
Re : Gerer les doublons par USERFORM

DranReb !
Est-ce que je peux vous demander d'adapter le code à mon projet ...car trop de ligne pour moi :(

En fait, il faudrait que le nom (colonne "parents") soit saisissable de D8à D22, que le "ICI" apparaissent de B8 à B22 et que le chiffre apparaisse de E8 à E22 ....

ou alors :

faire en sorte que dans le USF n'apparaisse que le nom (parents) sans rien d'autre, faire abstraction de ces derniers, car j'utiliserai alors des formules "recherchev".

Après je pense que ce sera bon .... ;)

Merci d'avance.
 

Dranreb

XLDnaute Barbatruc
Re : Gerer les doublons par USERFORM

Dans la Worksheet_SelectionChange de feuil1 changer le 2 en 4 dans If Target.Column <> 2 Then Exit Sub
Ou pour être plus près de votre demande, l'écrire comme ça:
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count <> 1 Then Exit Sub
If Intersect(Me.[D8:D22], Target) Is Nothing Then Exit Sub
UfSaisie.Afficher Target
End Sub
Et réécritre la Écrire de UfSaisie comme ça:
VB:
Private Sub Écrire(ByVal N As Long)
Dim L As Long
L = TLgn(N)
Cel.Value = ValPlg(L, 1)
Cel.Offset(, 1).Value = ValPlg(L, 3)
Cel.Offset(, -2).Value = ValPlg(L, 2)
Me.Hide
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof