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

Microsoft 365 Vérifier les doublons

  • Initiateur de la discussion Initiateur de la discussion Ines99
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Ines99

XLDnaute Occasionnel
Bonjour le forum,

Je cherche à trouver une solution pour vérifier les doublons sur ma data ?
J'aimerais signaler les montants DEBIT et CREDIT qui ont les mêmes Dates, CompteNum Outils analytiques comme étant des doublons comme dans l'exemple que je vous ai joins.
Je vous remercie pour votre aide
Ines
 

Pièces jointes

Solution
Bonsoir
Mon fichier fait déjà plus de 30000 lignes et me génère de lenteurs, rien à voir avec ton expertise évidement, mais je commence à me poser des questions.
Pourquoi la mise en forme conditionnelle (MFC) n'est pas adaptée pour plus de 30 000 lignes

  • Évaluation cellulaire intensive :
    La MFC s'applique à chaque cellule individuellement. Pour 30 000+ lignes, Excel doit évaluer des milliers de règles en temps réel, ce qui ralentit considérablement le recalcul et l'affichage.
  • Surcharge de fonctions :
    Les fonctions utilisées dans les formules de MFC (comme NB.SI ou LN) sont recalculées à chaque modification de la feuille. Cela devient très lourd quand le nombre de cellules concernées augmente...
Merci beaucoup job, Laurent
 
Si l'on se contente de compter le nombre de lignes doublons supprimées cette macro suffit :
VB:
Sub Supprimer_doublons()
Dim d As Object, tablo, doublon(), i&, x$, ii&
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
With [Tableau1] 'tableau structuré
    tablo = .Value 'matrice, plus rapide
    ReDim doublon(1 To UBound(tablo), 1 To 1)
    For i = 1 To UBound(tablo)
        x = tablo(i, 5) & tablo(i, 7) & tablo(i, 14) & tablo(i, 15) & tablo(i, 16)
        If d.exists(x) Then
            ii = d(x)
            doublon(ii, 1) = doublon(ii, 1) + 1 'comptage
        Else
            d(x) = i 'mémorise la ligne
        End If
    Next i
    .Columns(17) = doublon 'restitution
    .RemoveDuplicates Array(5, 7, 14, 15, 16), Header:=xlNo 'supprime les lignes doublons
End With
End Sub
Testée sur 34500 lignes elle s'exécute chez moi en 0,40 seconde.
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
234
Réponses
4
Affichages
109
Réponses
12
Affichages
619
Réponses
3
Affichages
315
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…