Tout le monde se heurte à un moment ou à un autre à la nécessité de supprimer les entrées en double d’une liste d’entrées de texte. Supposons que vous ayez les valeurs de texte dans la colonne A d’une feuille de calcul et qu’elles s’exécutent sur environ 500 lignes. Si vous souhaitez supprimer des doublons de la liste, vous recherchez peut-être le moyen le plus simple de le faire.

Manuellement, vous pouvez utiliser le filtrage des données pour déterminer les valeurs uniques.

Assurez-vous que la colonne a une étiquette en haut de celle-ci, puis sélectionnez une cellule dans la colonne. Choisissez Données | Filtre | Filtre avancé ou, dans Excel 2007, affichez l’onglet Données du ruban et cliquez sur Avancé dans le groupe Trier et filtrer. Utilisez les commandes de la boîte de dialogue résultante pour indiquer que vous souhaitez copier les valeurs uniques vers un autre emplacement que vous spécifiez.

Vous pouvez également utiliser une formule pour déterminer manuellement les doublons dans la liste. Triez les valeurs dans la colonne, puis entrez la formule suivante dans la cellule B2:

=IF(A2=A1,"Duplicate","")

Copiez la formule dans toutes les cellules de la colonne B qui ont une valeur correspondante dans la colonne A. Sélectionnez toutes les valeurs de la colonne B et appuyez sur Ctrl + C. Utilisez la boîte de dialogue Collage spécial pour coller uniquement les valeurs dans les mêmes cellules sélectionnées. Vous avez maintenant converti les formules en leurs résultats. Triez les deux colonnes en fonction du contenu de la colonne B, et toutes vos lignes en double seront dans une zone. Supprimez ces lignes et vous avez votre liste de valeurs uniques.

Chacune de ces approches manuelles est rapide et facile, mais si vous devez régulièrement supprimer les valeurs en double d’une colonne, une macro peut être plus votre style. La macro suivante repose sur le filtrage avancé des données, tout comme la méthode manuelle précédente:

Sub CreateUniqueList()

Dim rData As Range     Dim rTemp As Range

Set rData = Range(Range("a1"), Range("A65536").End(xlUp))

rData.EntireColumn.Insert     Set rTemp = rData.Offset(0, -1)

rData.AdvancedFilter _         Action:=xlFilterCopy, _         CopyToRange:=rTemp, _         Unique:=True

rTemp.EntireColumn.Copy _         rData.EntireColumn     Application.CutCopyMode = False     rTemp.EntireColumn.Delete     Set rData = Nothing     Set rTemp = Nothing End Sub

La macro crée une colonne temporaire, utilise un filtrage avancé pour copier les valeurs uniques dans cette colonne, puis supprime la colonne de données d’origine.

Le résultat est juste des valeurs uniques dans la colonne A. Si vous ne voulez pas que votre macro utilise la fonction de filtrage des données d’Excel, alors la macro suivante fera l’affaire:

Sub DelDups()

Dim rngSrc As Range     Dim NumRows As Integer     Dim ThisRow As Integer     Dim ThatRow As Integer     Dim ThisCol As Integer     Dim J As Integer, K As Integer

Application.ScreenUpdating = False     Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address)



NumRows = rngSrc.Rows.Count     ThisRow = rngSrc.Row     ThatRow = ThisRow + NumRows - 1     ThisCol = rngSrc.Column

'Start wiping out duplicates     For J = ThisRow To (ThatRow - 1)

If Cells(J, ThisCol) > "" Then             For K = (J + 1) To ThatRow                 If Cells(J, ThisCol) = Cells(K, ThisCol) Then                     Cells(K, ThisCol) = ""

End If             Next K         End If     Next J

'Remove cells that are empty     For J = ThatRow To ThisRow Step -1         If Cells(J, ThisCol) = "" Then             Cells(J, ThisCol).Delete xlShiftUp         End If     Next J     Application.ScreenUpdating = True End Sub

La macro fonctionne sur une sélection que vous faites avant de l’appeler. Ainsi, si vous devez supprimer les cellules en double de la plage A2: A974, sélectionnez simplement cette plage, puis exécutez la macro. Lorsque la macro est terminée, les cellules dupliquées sont supprimées, tout comme les cellules vides.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (2430) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Deleting_Duplicate_Text_Values ​​[Suppression des valeurs de texte en double].