Mise en surbrillance de doublons sur plusieurs onglets

Fermé
Spritlibre Messages postés 1 Date d'inscription vendredi 6 décembre 2013 Statut Membre Dernière intervention 6 décembre 2013 - 6 déc. 2013 à 17:03
Boisgontierjacques Messages postés 175 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 26 décembre 2018 - 8 déc. 2013 à 05:15
Bonjour,

J'ai un fichier Excel avec 12 onglets, un par mois.
Tous les onglets contiennent les mêmes colonnes dans le même ordre, mais pas le même nombre de lignes. Ce fichier est rempli au fur et à mesure par des utilisateurs.

Je souhaiterai que, lorsqu'un utilisateur entre une valeur dans la colonne E, Excel recherche si cette valeur est déjà renseignée dans toutes les colonnes E de tous les onglets du fichier, et qu'il mette en surbrillance toutes les cellules en doublon dans tous les onglets.

J'arrive à le faire sur un seul onglet, mais pas sur l'ensemble des onglets en même temps.

La valeur en question est une mélange de lettres et de chiffres (exemples : PR123456, ou DE654321).

Je vous remercie d'avance pour votre aide.

Cordialement.
A voir également:

2 réponses

via55 Messages postés 13976 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 4 décembre 2022 2 526
7 déc. 2013 à 00:11
Bonsoir

Il faut passer je pense par un code en VBA qui à chaque entrée (Worksheet_Change) boucle sur toutes les onglets et sur toutes les valeurs des colonnes E et colore les cellules de valeurs identiques

exemple de code à mettre dans le Worksheet de chaque feuille et qui colore en rouge les cellules de valeurs identiques

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column <> 5 Then Exit Sub ' sortie si pas colonne E
lg = Target.Row 'n° de la ligne d'entrée d'une donnée

For n = 1 To 12 'Boucle sur les 12 feuilles

If Sheets(n).Name <> ActiveSheet.Name Then 'si la feuille est autre que la feuille acive

dl = Sheets(n).Range("E" & Rows.Count).End(xlUp).Row 'n° dernière ligne non vide

For x = 1 To dl ' boucle de la 1ere à la dernière ligne non vide de la feuille n
'colore en rouge les cellules de la feuille n et de la feuille active si valeurs identiques
If Sheets(n).Range("E" & x).Value = ActiveSheet.Range("E" & lg).Value Then
Sheets(n).Range("E" & x).Interior.ColorIndex = 3
ActiveSheet.Range("E" & lg).Interior.ColorIndex = 3
End If

Next x

End If
Next n

End Sub

Cdlmnt
0