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

Macro doublons qui rame...

  • Initiateur de la discussion Initiateur de la discussion Spidtrip
  • 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 !

Spidtrip

XLDnaute Occasionnel
Bonjour à tous,

J'utilise la macro de MyDearFriend (excellent pour éliminer les doublons sur plusieurs colonnes), malheureusement, lorsque je la lance sur un fichier de 17000 lignes x 6 colonnes, çà me bloque Excel en "pas de réponse" avec l'UC à 100%.
J'ai un portable hp avec 512 k de ram.
Pensez-vous que le fichier est trop volumineux ?
Je précise que j'ai fais un test sur une vingtaine de lignes et là tout marche bien.

Merci par avance
Bye
 
Re : Macro doublons qui rame...

Bonjour Spidtrip et le Forum,

Tout dépend de ce que tu fait de tes doublons, sinon tu peux déclarer un tableau qui lira les cellules et cela ira beaucoup plus vite. Y a-t'il un select dans cette Macro?

Autrement voici le code pour le tablo

Code:
Dim Tablo() as variant
Tablo()= range("A1:M17000")

Là tu mets le code de ta macro sur le Tablo()

Puis à la fin tu fais

Code:
Range("A1:M17000")=Tablo()

Bon test.
 
Re : Macro doublons qui rame...

Salut Spidtrip,

Un portable HP avec 512 Mo de RAM et certainement XP !?

C'est clair que pour le traitement de 17000 lignes x 6 colonnes, soit 102.000 cellules à traiter, ça doit être long...

Donc il faut laisser tourner, et au bout d'un moment, Excel te redonnera la main !

Je rajouterais une barrette de 1Go 😉
 
Re : Macro doublons qui rame...

Merci pour vos réponses rapides,

JYLL, j'adorerai tester ta solution mais je n'y connaît rien en macro.
Peux-tu me dire ce que tu entends par "select" et où se trouve "tablo".
Désolé, mais je te dis, je suis minable en macro... j'ai tout simpement utilisé celle de MyDearFriend en la déclarant dans macros complementaires!

BrunoM45, j'avais laissé tourner 10mn et je n'ai jamais retrouvé la main.
Il s'agit de mon pc pro et effectivement il tourne sous XP SP2 pour ce qui est de la memoire, j'aurais du mal à demander 1go, mais je peux toujours essayer.

@+
 
Re : Macro doublons qui rame...

Re Bonsoir Spidtrip, Bruno45 et le Forum

Voici un xemple pour te faire voir comment mettre tes valeurs dans un tableau() et faire les calculs en mémoire. puis restitution des valeurs dans la feuille.

Code:
Sub test()
Dim tablo() As Variant, J As Integer, I As Integer
a = Now   ' Début du temps
tablo() = Range("A1:F17000") ' Chargement des valeurs en mémoires
   For I = 1 To 17000
      For J = 1 To 6
         tablo(I, J) = tablo(I, J) * 2 ' ici opération en mémoire
      Next J
   Next I
Range("A1:F17000") = tablo()  ' Restitution des valeurs dans la feuille
Cells(1, 8) = Now - a ' calcul du temps d'exécution dans la cellule
Beep  ' pour dire que c'est fini
End Sub

Pour le "Select" Y a t'il un range( ).Select ou Cells( ).Select.

Bon test.
 
Dernière édition:
Re : Macro doublons qui rame...

Re JYLL,

Je pense que ce sera mieux si tu voyais la macro en question.
Je ne peux pas te l'envoyer car elle fait + 400 k, par contre, si cela ne te dérange pas, tu la trouvers sur wiki -> https://www.excel-downloads.com/threads/macro-pour-doublons.21070/
La macro que j'utilise est le fichier zip au paragraphe : Une macro complémentaire de myDearFriend pour supprimer les doublons dans une feuille

Merci en tout cas pour ton aide

@+

P.S : je dois partir, alors je ne pourrai pas te répondre avant ce soir
 
Re : Macro doublons qui rame...

Re bonsoir Spidtrip et le Forum,

Il y a bien une mise à jour pendant l'exécution de la macro, alors si ta carte graphique est lente c'est cela qui te retarde. Voici la macro modifiée simplement. Tu fais un copié et collé à la place de l'autre ou tu ajoute simplement les quatre lignes en rouge comme elle sont placées, puis fait un test.

Bonne chance. Chez moi moins de 2 secondes avec athlon 3000 et 1Go de mémoire. Il met bien les données en tableau mais c'est l'effacement en direct qui prend du temps.


Code:
Sub btnDoublons_Click()
Dim L As Long
Dim TabTemp As Variant
Dim TabTemp2() As Variant
Dim Db As New Collection
Dim Nc As Byte
Dim C As Byte
With ActiveSheet
L = .Range("A65536").End(xlUp).Row
C = .Range("A1").SpecialCells(xlLastCell).Column
Nc = Val(InputBox("Sur combien de colonnes ?", "Elimination des Doublons", "10"))
If Nc < 1 Or Nc > C Then Exit Sub
[COLOR="Red"]Application.ScreenUpdating = False
ActiveWindow.WindowState = xlMinimized[/COLOR]
'Mémoriser les données dans un tableau variant temporaire
TabTemp = .Range(.Cells(1, 1), .Cells(L, C)).Value
ReDim TabTemp2(UBound(TabTemp, 1), 2)
'Concaténer les colonnes de données dans un tableau variant temporaire
For L = 1 To UBound(TabTemp, 1)
For C = 1 To Nc
TabTemp2(L, 1) = TabTemp2(L, 1) & CStr(TabTemp(L, C))
Next C
Next L
'Détecter les doublons (méthode de J.Walkenbach)
On Error GoTo Doublons:
For L = 1 To UBound(TabTemp2, 1)
Db.Add TabTemp2(L, 1), CStr(TabTemp2(L, 1))
Next L
On Error GoTo 0
'Supprimer les lignes de doublons dans la feuille
For L = UBound(TabTemp2, 1) To 1 Step -1
If TabTemp2(L, 2) > 0 Then
.Rows(L).EntireRow.Delete
End If
Next L
End With
[COLOR="red"] ActiveWindow.WindowState = xlMaximized
Application.ScreenUpdating = True[/COLOR]
Exit Sub
Doublons:
TabTemp2(L, 2) = 1
Resume Next
End Sub
 
Dernière édition:
Re : Macro doublons qui rame...

Merci beaucoup JYLL,

Désolé de te répondre si tardivement alors que je vois que tu n'a pas traîné...
mais je t'avoue que je suis un peu sous l'eau en ce moment.
Je test cela au plus vite et je te tiens au courant.

Encore merci pour ton aide

bye
 
Re : Macro doublons qui rame...

Re tout le monde,

Je viens de faire ce qui suit :

Outils/Macro/Visual Basic Editor/Insertion Module/

J'ai copié la macro ci-dessus et je me retrouve avec "erreur de complilation" et "erreur de syntaxe" lorsque je lance la macro via F5.

Je pense que je fais mal quelque chose, n'est-ce pas ?
SVP, ne me jetez pas de pierre...
@+
 
Re : Macro doublons qui rame...

Bonsoir Spidtrip et le Forum,

Tu as fais insertion module, mais tu devais déà un module existant qui avait cete macro. regarde si tu as Module1, module2 . Si oui supprime Module 2 et clique sur module1 et ajoute les 4 lignes ou remplace par un copier-coller dans ce module.

Autrement prend le classeur joint et colle tes données dans la "feuil1"

Bon test.
 

Pièces jointes

Re : Macro doublons qui rame...

Bonsoir Spidtrip, JYLL, BrunoM45, le Forum,

A toutes fins utiles, la dernière version 4.0 de mDFdoublons est disponible sous ce lien :
Téléchargement mDFdoublons 4 (pour Excel à partir de la version 2002 et sur PC uniquement)

Cette version offre de nouvelles possibilités dans le traitement des doublons ainsi qu'un code optimisé sensé diminuer sensiblement la durée des traitements.

Cordialement,
 
Re : Macro doublons qui rame...

Bonsoir à tous,
Salut Didier 🙂🙂,

Je fais tourner mDF Doublons 4 sur 50 000 lignes et 8 colonnes sur un PC cadencé à 1.6 Mhz et avec 512 Mo de Ram et je trouve, vu les services rendus, que cela mérite bien deux minutes d'attente (tiens pendant ce temps là je vais aller me chercher un café 🙂)

A+
 
Re : Macro doublons qui rame...

Bonjour à tous,

JYLL, merci une nouvelle fois pour ton aide, je viens d'effectuer le test, et après avoir enregistrer ton fichier sur mon DD, j'ai copié mes infos et j'ai lancé le test sur 15 colonnes... et après 30 secondes, les lignes ont fondues à vu d'oeil (il m'en reste 5000 sur 17000).
Par contre, je n'ai plus la possibilité de selectionner la colonne sur laquelle je souhaitait faire le contrôle de doublons que m'offrait la macro de Mydearfriend.
Y-a-t-il une solution afin de conserver cette notion qui m'est indispensable ?

Mydearfriend, merci pour l'info sur ta dernière mouture, extra...
je l'ai utiliser pour vérifier le nombre de doublons -> moins de 5 secondes; par contre pour les autres fonctions (masquer, surligner, supprimer et extraire ... plus de 15 minutes mais çà marche bien!

JCJL, tu as tout à fait raison, çà vaut le coup d'attendre... alors j'ai refais un test mais, j'en suis plutôt à 15 minutes... alors bonjour la caféine!!!Pour ce qui est de la 1ère mouture, rien à faire, avec mes 17 000 lignes, ma machine indique "pas de réponse" et se bloque systématiquement.

Encore merci à tous pour votre aide précieuse.
bye
 
Re : Macro doublons qui rame...

Bonjour à tous,

La macro de Mdf MdfDoublons m'intéresse vicement mais s'arrive par à la faire fonctionner (j'ai excel 97) j'ai une erreur de compilation Mdfusfdoublons : qu'est ce qu'il se passe donc?
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…