OVH Cloud OVH Cloud

repérage de doublons sur 2 colonnes EXCEL

4 réponses
Avatar
patrick.ferrari
Bonjour,
Je poss=E8de une macro qui me permet de colorier des cellules avec
doublons. Seulement cette macro ne fonctionne que sur une m=EAme
colonne. Or, j'aurais besoin qu'elle m'identifie les doublons sur 2
colonnes.
Voici la macro ; comment la modifier pour qu'elle prenne en compte ma
probl=E9matique ?

Merci par avance

Sub MarqueLesDoublons()
Dim Plage As Range, i&, Cell As Range, Rng As Range

On Error Resume Next
Set Plage =3D Application.InputBox("Saisir la plage de cellules
correspondant =E0 la colonne des identifiants cellule de d=E9part:cellule
de fin exmple Ax:Ay ", Type:=3D8)
If IsEmpty(Plage) Then Exit Sub

Application.ScreenUpdating =3D False

For Each Cell In Plage
For i =3D 1 To Plage.Count
Set Rng =3D Cell.Offset(i)
If Rng <> "" And Rng =3D Cell Then
Cell.Interior.ColorIndex =3D 43
Rng.Interior.ColorIndex =3D 43
Exit For
End If
Next i
Next Cell

End Sub

4 réponses

Avatar
Aurore
La modif pourrait convenir: à essayer.
a écrit dans le message de
news:
Bonjour,
Je possède une macro qui me permet de colorier des cellules avec
doublons. Seulement cette macro ne fonctionne que sur une même
colonne. Or, j'aurais besoin qu'elle m'identifie les doublons sur 2
colonnes.
Voici la macro ; comment la modifier pour qu'elle prenne en compte ma
problématique ?

Merci par avance

Sub MarqueLesDoublons()
Dim Plage As Range, i&, Cell As Range, Rng$
On Error Resume Next
Set Plage = Application.InputBox("Saisir la plage de cellules
correspondant à la colonne des identifiants cellule de départ:cellule
de fin exmple Ax:Ay ", Type:=8)
If IsEmpty(Plage) Then Exit Sub

Rng$=Plage.Address
Application.ScreenUpdating = False
For Each Cell In Plage
If Evaluate("or(" & Cell.Address & "=" & Rng$ & ")") Then
With Cell.Interior
.ColorIndex = 43
End With
Else
With Cell.Interior
.ColorIndex = xlColorIndexNone
End With
End If
Next Cell

End Sub
Avatar
LSteph
Re,
outre la mefc ptroposée voici en vba selon
l'approche de ton code un peu revu.

Sub MarqueLesDoublons()
Dim Plage As Range, c As Range

On Error Resume Next
Set Plage = Application.InputBox _
("Pointer ou Saisir la plage de cellules", Type:=8)
On Error GoTo 0
If IsEmpty(Plage) Then MsgBox "plage non valide": Exit Sub

Application.ScreenUpdating = False

For Each c In Plage.Cells
If WorksheetFunction.CountIf(Plage, c) > 1 _
And Not IsEmpty(c) Then
c.Interior.ColorIndex = 43
End If

Next c

End Sub

'Cdlt

'lSteph
Bonjour,
Je possède une macro qui me permet de colorier des cellules avec
doublons. Seulement cette macro ne fonctionne que sur une même
colonne. Or, j'aurais besoin qu'elle m'identifie les doublons sur 2
colonnes.
Voici la macro ; comment la modifier pour qu'elle prenne en compte ma
problématique ?

Merci par avance

Sub MarqueLesDoublons()
Dim Plage As Range, i&, Cell As Range, Rng As Range

On Error Resume Next
Set Plage = Application.InputBox("Saisir la plage de cellules
correspondant à la colonne des identifiants cellule de départ:cellule
de fin exmple Ax:Ay ", Type:=8)
If IsEmpty(Plage) Then Exit Sub

Application.ScreenUpdating = False

For Each Cell In Plage
For i = 1 To Plage.Count
Set Rng = Cell.Offset(i)
If Rng <> "" And Rng = Cell Then
Cell.Interior.ColorIndex = 43
Rng.Interior.ColorIndex = 43
Exit For
End If
Next i
Next Cell

End Sub



Avatar
LSteph
Bonjour,

sans besoin de macro:
Sélectionne B2:C9 (par exemple)
Format
Mise en forme conditionnelle
dans déroulant choisir
la formule est
=NB.SI($B$2:$C$9;B2)>1
sur bouton format motif choisir la couleur.
OK

Cdlt.


Bonjour,
Je possède une macro qui me permet de colorier des cellules avec
doublons. Seulement cette macro ne fonctionne que sur une même
colonne. Or, j'aurais besoin qu'elle m'identifie les doublons sur 2
colonnes.
Voici la macro ; comment la modifier pour qu'elle prenne en compte ma
problématique ?

Merci par avance

Sub MarqueLesDoublons()
Dim Plage As Range, i&, Cell As Range, Rng As Range

On Error Resume Next
Set Plage = Application.InputBox("Saisir la plage de cellules
correspondant à la colonne des identifiants cellule de départ:cellule
de fin exmple Ax:Ay ", Type:=8)
If IsEmpty(Plage) Then Exit Sub

Application.ScreenUpdating = False

For Each Cell In Plage
For i = 1 To Plage.Count
Set Rng = Cell.Offset(i)
If Rng <> "" And Rng = Cell Then
Cell.Interior.ColorIndex = 43
Rng.Interior.ColorIndex = 43
Exit For
End If
Next i
Next Cell

End Sub



Avatar
LSteph
..oupss juste une petite rectif

Sub MarqueLesDoublons()
Dim Plage As Range, c As Range

On Error Resume Next
Set Plage = Application.InputBox _
("Pointer ou Saisir la plage de cellules", Type:=8)
On Error GoTo 0
If IsEmpty(Plage) Then MsgBox "plage non valide": Exit Sub

Application.ScreenUpdating = False

For Each c In Plage.Cells
c.Interior.ColorIndex = none
If WorksheetFunction.CountIf(Plage, c) > 1 _
And Not IsEmpty(c) Then
c.Interior.ColorIndex = 43
End If

Next c

End Sub


Bonjour,
Je possède une macro qui me permet de colorier des cellules avec
doublons. Seulement cette macro ne fonctionne que sur une même
colonne. Or, j'aurais besoin qu'elle m'identifie les doublons sur 2
colonnes.
Voici la macro ; comment la modifier pour qu'elle prenne en compte ma
problématique ?

Merci par avance

Sub MarqueLesDoublons()
Dim Plage As Range, i&, Cell As Range, Rng As Range

On Error Resume Next
Set Plage = Application.InputBox("Saisir la plage de cellules
correspondant à la colonne des identifiants cellule de départ:cellule
de fin exmple Ax:Ay ", Type:=8)
If IsEmpty(Plage) Then Exit Sub

Application.ScreenUpdating = False

For Each Cell In Plage
For i = 1 To Plage.Count
Set Rng = Cell.Offset(i)
If Rng <> "" And Rng = Cell Then
Cell.Interior.ColorIndex = 43
Rng.Interior.ColorIndex = 43
Exit For
End If
Next i
Next Cell

End Sub