From: "tiger" Newsgroups: microsoft.public.fr.excel Subject: Re: Suppression de doublons Date: Thu, 30 Dec 1999 20:17:19 +0100 Organization: [Posted via] Easynet France Lines: 75 Message-ID: <84gb79$2inj$1@buggy.easynet.fr> References: <84g1ek$2di2$1@buggy.easynet.fr> <386B99E1.8B46447D@free.fr> NNTP-Posting-Host: pop-nice-225.pops.easynet.fr X-Trace: buggy.easynet.fr 946581546 84723 195.114.95.225 (30 Dec 1999 19:19:06 GMT) X-Complaints-to: abuse@easynet.fr NNTP-Posting-Date: 30 Dec 1999 19:19:06 GMT X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2014.211 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211 Path: cppssbbsa01.microsoft.com!news-out.cwix.com!newsfeed.cwix.com!newshub.northeast.verio.net!verio!netnews.com!newspeer1.nac.net!easynet-tele!easynet.net!easynet-fr!buggy.easynet.fr!not-for-mail Xref: cppssbbsa01.microsoft.com microsoft.public.fr.excel:20391 Bonjour Laurent, Je te remercie pour ton code. J'ai découvert la méthode ColumnsDifference. Néanmoins je ne comprends pas tout. Les instructions suivantes me semblent un peu obscures : do I = J + 1 J = range(cells(I, 1), Fin).ColumnDifferences(cells(I, 1))(0).Row if J > I then range(cells(I + 1, 1), cells(J, 1)).ClearContents loop Until Err Je m'attendais à un code simple du genre While...Wend ou for each next. Après sélection de la dernière cellule pleine de la colonne tant que la cellule active est différente de la cellule situé une ligne plus haut, sélectionne la cellule situé plus haut sinon efface la valeur de la cellule active et sélectionne la cellule situé plus haut. Je n'ai pas su l'écrire. A quoi sert le (0).Row? Je veux dire qu'apporte de plus le (0)? Pourquoi I = J + 1? Pouvait-on se passer de cells? Avoir le code c'est très bien dans l'immédiat mais en comprendre les mécanismes c'est mieux pour l'avenir. Je vois que tu as quitté Wanadoo. Free est-il mieux? Dans l'attente de ta réponse, à bientôt et bonne année même si nous aurons certainement encore l'occasion de nous écire avant le 1er janvier. tiger me répondre dans le groupe. Laurent longre a écrit dans le message : 386B99E1.8B46447D@free.fr... > > Tiger, > > Je te propose la macro suivante, d'exécution assez rapide car reposant > sur ColumnDifferences pour repérer les groupes de cellules de contenu > identique. > > Const Cell_Départ As String = "A1" > > dim Fin As range, I As long, J As long, Col As Integer > dim ModeCalcul As long > > with application > ModeCalcul = .Calculation > .Calculation = xlCalculationManual > .screenupdating = false > end with > > Col = range(Cell_Départ).Column > set Fin = range(Cell_Départ).end(xldown)(2) > > On Error Resume next > do > I = J + 1 > J = range(cells(I, 1), Fin).ColumnDifferences(cells(I, 1))(0).Row > if J > I then range(cells(I + 1, 1), cells(J, 1)).ClearContents > loop Until Err > > application.Calculation = ModeCalcul > > > Remplace simplement la valeur "A1" de la constante Cell_Départ par > l'adresse de la cellule de départ de ta colonne à nettoyer, ça devrait > marcher. > > Et puis, bonne année . > > Laurent