vérification des doublons

hicham28

XLDnaute Occasionnel
Bonsoir, et merci de me lire et merci aussi votre aide,
Je vous joint une partie d’un code que j’utilise pour la vérification de la présence des doublons sur la plage ref_paiment, le problème c’est que le fichier ou je travail contient presque 1300 linges et j’utilise les filtres, et avec ce code, la vérification des doublons n’est plus efficace si des éléments ne sont plus visible en application du filtre.
Merci
Code:
Set c = Range("Réf_Paiement").Find(Numero.Value, , , xlWhole)
    If Not c Is Nothing Then
    c.Select
    With Selection.Interior
    MsgBox "Ce numero de cheque est deja saisie"
    End With
    Else
        Range("A3").Offset.End(xlDown).Offset(1, 0).Select    'Sélection de la cellule en dessous du dernier enregistrement de la colonne A
               'Coller valeur
  Selection.PasteSpecial Paste:=xlValues, Operation:= _
       xlNone, SkipBlanks:=False, Transpose:=False
  Range("A3").CurrentRegion.Select  'Sélection de la zone en cours
  Range("A3").Select 'Sélection de la cellule A1
  End If
 

repcheks

XLDnaute Junior
Re : vérification des doublons

J'utiliserais un tableau à ta place

Dim Tableau()
dim i as long, j as long
verif as boolean

'Dans un premier temps tu rentres toutes les valeurs de ta place dans le tableau (en le redimensionnant à haque occurrence)

i=-1
verif=false

For each c in Range("Réf_Paiement")

i=i+1
redim preserve tableau(i)
tableau(i)=c.value

next c

'Puis tu recherches dans ton tableau si "Numero.value" est déja dans ta Range

for j=0 to ubound(tableau)

if tableau(j)=numero.value then

verif=true
exit for

end if

next j

'et tu effectues tes actions selon cette condition

if verif=true then
msgbox"deja saisi"
else
'blabla
end if

Cette méthode ne devrait pas etre affectée par la presence de filtres, contrairement au .find
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 669
Messages
2 090 740
Membres
104 644
dernier inscrit
MOLOKO67