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

Msg si doublons

Claudy

XLDnaute Accro
Bonjour à tous,
une base de données....
Colonne A des noms , Colonne D, des montants.
Comment repèrer des doublons de montants pour un même nom et recevoir une alerte?
Merci d'avance,
Claudy
 

Claudy

XLDnaute Accro
Re : Msg si doublons

Merci Chris,
j'ai essayé avec une validation , mais on dirait que mon excel n'enregistre pas la validation de données avec message d'alerte!
Pas possible via une macro ?

A+
Claudy
 
Dernière édition:

Claudy

XLDnaute Accro
Re : Msg si doublons

Bon voilà j'ai trouvé:
Private Sub Worksheet_Change(ByVal Target As Range)

If Application.CountIf(Range("H:H"), Target.Value) > 1 Then
'Application.Undo

Rep = MsgBox("Voulez-vous voir le montant précédemment encodé", vbYesNo + vbCritical, "Montant en double")
If Rep = vbYes Then
' ici le traitement si réponse positive
Set celluletrouvee = Range("H:H").Find(Target.Value, lookat:=xlWhole)

Cells(celluletrouvee.Row, celluletrouvee.Column).Select

Else
' ici le traitement si réponse négative

'Target.ClearContents

End If
End If

End Sub

Merci pour votre contribution,
A+
Claudy
 

thebenoit59

XLDnaute Accro
Re : Msg si doublons

Bonjour Claudy, le fil.
Ta MsgBox ne s'affichera qu'en cas de montant identique, mais ne prenant pas en compte le nom de la personne.
Tiré du site de Boisgontier:
Code:
Sub DoublonsDeuxColonnes()
 couleurs = Array(1, 3, 4, 6, 7, 8, 14, 15, 17, 20, 22, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 50, 53)
    Set mondico = CreateObject("Scripting.Dictionary")
        For Each c In Range("A1", [A65000].End(xlUp))
            clé = c.Value & c.Offset(, 3)
                mondico.Item(clé) = mondico.Item(clé) + 1
        Next c
    
        For Each c In Range("A1", [A65000].End(xlUp))
            clé = c.Value & c.Offset(, 3)
            nocoul = (Application.Match(clé, mondico.keys, 0)) Mod UBound(couleurs)
                If mondico.Item(clé) > 1 Then MsgBox "Doublon pour " & clé & " ligne" & c.Row: c.Resize(, 4).Interior.ColorIndex = couleurs(nocoul)
        Next c
End Sub
Tu auras les doublons en couleur et la MsgBox te donnera le numéro de ligne également.
 

chris

XLDnaute Barbatruc
Re : Msg si doublons

Re

Pour la validation sur D et/ou sur A :
Code:
=NB.SI.ENS(A:A;A2;D:D;D2)=0
.

Tu peux choisir avertissement ou arrête selon la possibilité ou non de passer outre. Message personnalisable.

Ne réagit qu'à la saisie ou modification pas à postériori mais l'option "Entourer les données non valides" permet alors ce repérage

A noter que le message d'alerte (onglet central de la validation) est juste une sorte de commentaire sur la cellule
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…