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
 

Fichiers joints

PatLac

XLDnaute Occasionnel
Re : Gerer les doublons par USERFORM

Merci R@chid !
Est-il possible d'intégrer cela dans un userform avec case à cocher et bouton valider ?

Merci.
 

Dranreb

XLDnaute Barbatruc
Re : Gerer les doublons par USERFORM

Boujour.
Je ne vois pas bien ce qu'une case à cocher viendrait faire là, mais ce serait possible avec un ComboBox et une ListBox.
 

R@chid

XLDnaute Barbatruc
Re : Gerer les doublons par USERFORM

Re,
Une âme charitable va surement passer par la pour te donner de l'aide, (je ne sais pas faire en VBA)
@ + +

Oupssssss l’âme charitable est déjà passée :)
Salut Dranreb, j'ai pas rafraichi
 

PatLac

XLDnaute Occasionnel
Re : Gerer les doublons par USERFORM

Merci R@chid !

Dranreb bonjour !

En fait c'est pour que lorsque la personne saisie le nom, qu'elle puisse choisir parmi les 4 choix (dans ce cas précis), mais cela pourrait être 3 ou 5 choix.

En fait, la il y a 4 "parents1", mais tous différents ....
Il faudrait que lors de la saisie dans la cellule, lorsque je passe à la suivante, un "userform" m'informe qu'il existe 4 choix possible, et que je puisse en valider 1 avec une case à cocher.

C'est ce qu'a fait R@chid, mais il le faudrait sur un userform, avec case à cocher et bouton valider.

C'est pour cela ....
Merci.
 

PatLac

XLDnaute Occasionnel
Re : Gerer les doublons par USERFORM

Super !
Mais est-il possible de déclencher le USF dès que je passe à la saisie suivante, sans avoir à cliquer sur le bouton ?
Aussi de ne lister dans ce USF que la saisie effectuée, car là il va me lister toute la BD... et y'a 1500 noms ... ?

On progresse à grand pas, merci à tous !
 

BOISGONTIER

XLDnaute Barbatruc
Re : Gerer les doublons par USERFORM


>Aussi de ne lister dans ce USF que la saisie effectuée, car là il va me lister toute la BD... et y'a 1500 noms ... ?


Je ne comprends pas

JB
 

Fichiers joints

PatLac

XLDnaute Occasionnel
Re : Gerer les doublons par USERFORM

Pardon, je me suis peut être mal exprimé !

Donc, dans la cellule A1 je saisie le nom "parents1" et en passant sur A2, il faudrait que le USF m'annonce que des "parents1", il y en a 4 dans la BD et me les liste dans le USF de manière à ce que je choisisse le bon.

Merci pour ton aide.
 

Dranreb

XLDnaute Barbatruc
Re : Gerer les doublons par USERFORM

Ma version.

Edit: modifs mineures effectuées: cellule carrément passée à Afficher et SetFocus sur CbxSaisi un Set
 

Fichiers joints

Dernière édition:

PatLac

XLDnaute Occasionnel
Re : Gerer les doublons par USERFORM

Waouuuu ça c'est du rapide !
Bon on y est presque ... ;)
Sauf que le USF s'affiche quand même lorsque je passe de A2 en A3, alors que le nom est unique (par exemple parents8).
Il faudrait que le USF ne s'affiche que lorsqu'il y a doublons ... ;)

Merci pour ton aide.
 

Dranreb

XLDnaute Barbatruc
Re : Gerer les doublons par USERFORM

Je veux bien mais vous n'aurez plus de vérification visuelle d'existence, plus de possibilité de saisir le début seulement dans le ComboBox et qu'il vous suggère le 1er existant à chaque frappe. Là il suffit de faire Entrée pour adopter l'unique choix proposé.
Et avec cette procédure ajoutée derrière:
VB:
Private Sub CbxSaisi_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 27 Then Me.Hide
End Sub
2 fois su la touche Echap pour sortir (la 1ère efface le ComboBox) ou 1 seule fois en ajoutant ça :
VB:
ElseIf Me.CbxSaisi.Text = "" Then
   Me.Hide
dans CbxSaisi_Change, avant le Else
 
Dernière édition:

PatLac

XLDnaute Occasionnel
Re : Gerer les doublons par USERFORM

OK, j'avais pas vu ça sous cet angle ...
Je vais voir si je peux adapter tous ça ...
Merci beaucoup pour votre aide, mais il est possible que je revienne vers vous si ça ne vous dérange pas.

Bonne soirée et merci encore.
 

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:

PatLac

XLDnaute Occasionnel
Re : Gerer les doublons par USERFORM

He bien .... tout simplement NI-CKEL !
Merci encore et à bientot peut etre .... ;)
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas