Bonjour,
J'ai besoin de supprimer les termes en doublons (séparés par des points virgules) dans une cellule. Je dois le faire pour chaque ligne dans un fichier de 7000 lignes. Pour que ce soit plus simple j'ai fractionné les termes dans différentes cellules (ce n'était peut-être pas une bonne idée?), ce qui donne une première plage A2:AU2. Je voulais comparer chaque cellule de la plage A2:AU2 avec toutes les cellules à sa droite jusqu'à la cellule AU2 et indiquer le contenu en doublon dans la cellule active. Je voulais pouvoir copier la cellule dans la ligne en dessous (A3:AU3) pour descendre dans tout le fichier (comme on fait avec les formules). J'ai essayé la macro ci-dessous (fournie gracieusement par ChatGPT) mais elle ne marche pas :
Est-ce qu'une âme charitable pourrait m'aider? Je suis nulle en VBA....


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub comparerCellulesAvecDialogue()
 
Dim plage1 As Range
Dim cell As Range
Dim doublon As String
 
Set plage1 = Range("A2:AU2")
 
For Each cell In plage1 ' Parcours chaque cellule de la plage1
    doublon = "" ' Réinitialise la variable doublon
    For Each c In Range(cell.Offset(0, 1), plage1.Cells(plage1.Cells.Count)) ' Parcours chaque cellule à droite de la cellule actuelle
        If cell.Value = c.Value Then ' Compare la cellule avec celle à droite d'elle
            doublon = doublon & c.Value & " " ' Ajoute le contenu de la cellule en doublon dans la variable doublon
        End If
    Next c
    If doublon <> "" Then ' Si la variable doublon contient des doublons
        cell.Value = doublon ' Écrit le contenu de la variable doublon dans la cellule active
    End If
Next cell
 
End Sub
En vous remerciant d'avance
Alice