Eviter d'ecrire les doublons

Y compris Power BI, Power Query et toute autre question en lien avec Excel
f
famdsm
Membre habitué
Membre habitué
Messages : 82
Inscrit le : 19 avril 2015
Version d'Excel : 2007

Message par famdsm » 7 juillet 2018, 17:30

Bonjour le forum;
je suis toujours au niveau de mon application et je cherche de ne pas écrire des doublons au niveau de ma base BD, qui se trouve au niveau de mon fichier ci joint. Merci Pour votre aide.
BD1 .xlsb
(651.11 Kio) Téléchargé 28 fois
Avatar du membre
ThauThème
Passionné d'Excel
Passionné d'Excel
Messages : 3'887
Appréciations reçues : 182
Inscrit le : 19 octobre 2014
Version d'Excel : 2010 FR

Message par ThauThème » 7 juillet 2018, 18:04

Bonjour Famdsm, bonjour le forum,

J'imagine que les doublons ne concernent que la colonne D : Nom et Prénom ?
J'ai des messages d'erreur car mon PC est 64 bits mais si c'est ça, le code ci-dessous devrait fonctionner :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)

If Target.Column <> 4 Then Exit Sub 'si le changement a lieu ailleurs que dans la colonne 4 (=> colonne D), sort de la procédure
If Target.Row = 1 Then Exit Sub 'si le changement a lieu dans la ligne 1, sort de la procédure
If Target.Value = "" Then Exit Sub 'si la cellule est effacée, sort de la procédure
DL = Cells(Application.Rows.Count, "D").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne D
For I = 2 To DL - 1 'boucle sur toutes les lignes I de la seconde à DL - 1
    'condition 1 : si le nouveau nom/prenom éditée existe déjà (convertie en majuscule pour autoriser tous les cas de figure)
    If UCase(Cells(I, "D").Value) = UCase(Target.Value) Then
        'condition 2 : si "Oui" au message
        If MsgBox("Ce Nom et Prénom existe déjà ! Voulez-vous effacer la donnée, cliquer sur [Oui] ou accepter ce doublon, cliquez sur [Non].", vbYesNo, "ATTENTION !") = vbYes Then
            Target.Value = "" 'efface le doublon
            Target.Select 'sélectionne la cellue éditée
            Exit Sub 'sort de la procédure
        End If 'fin de la condition 2
    End If 'fin de la condition 1
Next I 'prochaine ligne de la boucle
End Sub
À plus,

ThauTheme


Je suis Charlie
VBA m'éclate, les formules m'ennuient ! Je n'y peux rien c'est comme ça...
f
famdsm
Membre habitué
Membre habitué
Messages : 82
Inscrit le : 19 avril 2015
Version d'Excel : 2007

Message par famdsm » 7 juillet 2018, 20:55

BONSOIR,
tout d'abords je vous remercie pour votre aide . on doit éviter les doublons au niveau de la colonne B, mais ce code ne marche pas. j'ai essayé rien ne se passe.
Avatar du membre
thev
Membre impliqué
Membre impliqué
Messages : 2'581
Appréciations reçues : 215
Inscrit le : 13 juin 2016
Version d'Excel : 2019 FR 64 bits

Message par thev » 9 juillet 2018, 19:08

Bonsoir,

Essayer cette proposition.
BD1.xlsb
(658.36 Kio) Téléchargé 13 fois
f
famdsm
Membre habitué
Membre habitué
Messages : 82
Inscrit le : 19 avril 2015
Version d'Excel : 2007

Message par famdsm » 10 juillet 2018, 18:08

Bonjour;
un grand merci Mr. thev, votre aide est trop importante mais ne marche pas. Merci une autre fois pour tout le forum
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'432
Appréciations reçues : 405
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 10 juillet 2018, 22:48

Bonjour,

une proposition avec une simple validation.
Ayant du mal avec l'arabe (euphémisme) et l'écriture de droite à gauche j'ai fait en français.
Je pense que tu arriveras à transposer.
eric
Classeur3.xlsx
(64.57 Kio) Téléchargé 15 fois
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message