Suppression de valeurs de texte en double (Microsoft Excel)
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]
.