Comment supprimer les lignes en double d'un tableau dans un document Word ?
Author: SunLast Modified: 2025-05-27
Dans un document Word, il peut y avoir des tableaux contenant des lignes en double que vous souhaitez supprimer tout en conservant la première occurrence. Dans ce cas, vous pouvez choisir de supprimer les doublons un par un manuellement, ou vous pouvez utiliser le code VBA.
Supprimer les lignes en double d'un tableau dans Word
1. Placez le curseur sur le tableau dont vous souhaitez supprimer les lignes en double, puis appuyez sur les touches Alt + F11 pour activer la fenêtre Microsoft Visual Basic for Applications.
2. Cliquez sur Insérer > Module pour créer un nouveau Module.
3. Copiez le code ci-dessous et collez-le dans le script du nouveau Module.
VBA : Supprimer les lignes en double d'un tableau dans Word
Public Sub DeleteDuplicateRows2()
'UpdatebyExtendoffice20181011
Dim xTable As Table
Dim xRow As Range
Dim xStr As String
Dim xDic As Object
Dim I, J, KK, xNum As Long
If ActiveDocument.Tables.Count = 0 Then
MsgBox "This document does not have table(s).", vbInformation, "Kutools for Word"
Exit Sub
End If
Application.ScreenUpdating = False
Set xDic = CreateObject("Scripting.Dictionary")
If Selection.Information(wdWithInTable) Then
Set xTable = Selection.Tables(1)
For I = xTable.Rows.Count To 1 Step -1
Set xRow = xTable.Rows(I).Range
xStr = xRow.Text
xNum = -1
If xDic.Exists(xStr) Then
' xTable.Rows(I).Delete
For J = xTable.Rows.Count To 1 Step -1
If (xStr = xTable.Rows(J).Range.Text) And (J <> I) Then
xNum = xNum + 1
xTable.Rows(J).Delete
End If
Next
I = I - xNum
Else
xDic.Add xStr, I
End If
Next
Else
For I = 1 To ActiveDocument.Tables.Count
Set xTable = ActiveDocument.Tables(I)
xNum = -1
xDic.RemoveAll
For J = xTable.Rows.Count To 1 Step -1
Set xRow = xTable.Rows(J).Range
xStr = xRow.Text
xNum = -1
If xDic.Exists(xStr) Then
' xTable.Rows(I).Delete
For KK = xTable.Rows.Count To 1 Step -1
If (xStr = xTable.Rows(KK).Range.Text) And (KK <> J) Then
xNum = xNum + 1
xTable.Rows(KK).Delete
End If
Next
J = J - xNum
Else
xDic.Add xStr, J
End If
Next
Next
End If
Application.ScreenUpdating = True
End Sub
4. Appuyez sur la touche F5 pour exécuter le code, ensuite toutes les lignes en double seront supprimées.
Remarque : Le code ci-dessus est sensible à la casse. Si vous souhaitez supprimer les lignes en double sans tenir compte de la casse, vous pouvez utiliser le code suivant :
Public Sub DeleteDuplicateRows2()
'UpdatebyExtendoffice20181011
Dim xTable As Table
Dim xRow As Range
Dim xStr As String
Dim xDic As Object
Dim I, J, KK, xNum As Long
If ActiveDocument.Tables.Count = 0 Then
MsgBox "This document does not have table(s).", vbInformation, "Kutools for Word"
Exit Sub
End If
Application.ScreenUpdating = False
Set xDic = CreateObject("Scripting.Dictionary")
If Selection.Information(wdWithInTable) Then
Set xTable = Selection.Tables(1)
For I = xTable.Rows.Count To 1 Step -1
Set xRow = xTable.Rows(I).Range
xStr = UCase(xRow.Text)
xNum = -1
If xDic.Exists(xStr) Then
' xTable.Rows(I).Delete
For J = xTable.Rows.Count To 1 Step -1
If (xStr = xTable.Rows(J).Range.Text) And (J <> I) Then
xNum = xNum + 1
xTable.Rows(J).Delete
End If
Next
I = I - xNum
Else
xDic.Add xStr, I
End If
Next
Else
For I = 1 To ActiveDocument.Tables.Count
Set xTable = ActiveDocument.Tables(I)
xNum = -1
xDic.RemoveAll
For J = xTable.Rows.Count To 1 Step -1
Set xRow = xTable.Rows(J).Range
xStr = UCase(xRow.Text)
xNum = -1
If xDic.Exists(xStr) Then
' xTable.Rows(I).Delete
For KK = xTable.Rows.Count To 1 Step -1
If (xStr = xTable.Rows(KK).Range.Text) And (KK <> J) Then
xNum = xNum + 1
xTable.Rows(KK).Delete
End If
Next
J = J - xNum
Else
xDic.Add xStr, J
End If
Next
Next
End If
Application.ScreenUpdating = True
End Sub
Si vous souhaitez supprimer les lignes en double dans tous les tableaux du document, placez le curseur n'importe où dans le document en dehors du tableau, puis appliquez l'un des codes ci-dessus.
Office Tab : Intègre des interfaces à onglets dans Word, Excel, PowerPoint...
Faites plus en moins de temps avec Kutools pour Word amélioré par l'IA
Kutools pour Word n'est pas seulement un ensemble d'outils - c'est une solution intelligente conçue pour augmenter votre productivité. Avec des fonctionnalités pilotées par l'IA et les fonctionnalités les plus essentielles, Kutools vous aide à accomplir plus en moins de temps :
Résumez, réécrivez, composez et traduisez du contenu instantanément.
Relisez le texte en temps réel avec des suggestions de grammaire, de ponctuation et de style pendant que vous écrivez.
Reformulez et traduisez du contenu tout en conservant la mise en page, le style et la structure intacts.
Traduisez votre contenu dans plus de 40 langues facilement, élargissant ainsi votre portée mondiale.
Recevez une aide instantanée et des informations intelligentes basées sur le contenu de votre document actuel.
Demandez comment effectuer une tâche - comme supprimer des sauts de section - et l'IA vous guidera ou le fera pour vous.
Expurgez des informations sensibles ou confidentielles en quelques secondes pour assurer une confidentialité totale.
Tous les outils fonctionnent de manière transparente dans Word, toujours à portée de main.
Créez, affinez, traduisez, résumez et sécurisez des documents sans effort.
Améliorez la grammaire, la clarté et le ton en temps réel pendant que vous écrivez.
Reformulez et traduisez du contenu sans changer la mise en page ou la mise en forme.
Demandez comment effectuer une tâche - comme supprimer des sauts de section - et l'IA vous guidera ou le fera pour vous.
Tous les outils fonctionnent de manière transparente dans Word, toujours à portée de main.