Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/10/2011, 19h06   #1
Invité de passage
 
Inscription : juin 2009
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 8
Points : 2
Points : 2
Par défaut Cocher une cellule pour marquer un doublon ?

Bonjour.

J'ai trouvé dans la FAQ un code qui permet d'identifier les doublons dans une colonne, et de marquer la cellule en vert (merci à silkyroad pour le tuto).
De ce tutoriel j'ai appliqué le code à mon tableau, et il fonctionne très bien.

Je souhaite compléter la macro en intégrant une marque distinctive (un X,un V....) dans la colonne A de mon tableau, sur la ligne où se trouve le doublon, de façon faire un tri sur cette colonne ultérieurement.

Actuellement la macro fonctionne très bien, elle va chercher les doublons sur la colonne L, marque la cellule en vert. (mon tableau contient plus de 1500 lignes).

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Option Explicit
 
 
Sub Test()
    Identifications Range("L1:L60000")
End Sub
 
 
 
Sub IdentifieDoublons(Plage As Range)
    Dim Cell As Range
    Dim Un As Collection
 
    Set Un = New Collection
 
    On Error Resume Next
 
    'Boucle sur la plage de cellule
    For Each Cell In Plage
        'Pour ne pas prendre en compte les cellules vides
        If Cell <> "" Then
            'Ajoute le contenu de la cellule dans la collection
            Un.Add Cell, CStr(Cell)
 
            'Si la procédure renvoie une erreur, cela signifie que l'élément
            'existe déjà dans la collection et donc qu'il s'agit d'un doublon.
            'Dans ce cas la macro colorie la cellule en vert.
            If Err <> 0 Then Cell.Interior.ColorIndex = 4
            'Efface toutes les valeurs de l'objet Err.
            Err.Clear
        End If
    Next Cell
 
    Set Un = Nothing    
End Sub
Merci de votre concours.
chachon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 19h13   #2
Membre Expert
 
Femme
Ingénieur développement logiciels
Inscription : juin 2007
Messages : 480
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ain (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : juin 2007
Messages : 480
Points : 1 024
Points : 1 024
Bonjour,
La ligne suivante colore la cellule en vert :
Code :
If Err <> 0 Then Cell.Interior.ColorIndex = 4
Il suffit de la remplacer par le code suivant :
Code :
1
2
3
4
5
 
If Err <> 0 Then 
   Cell.Interior.ColorIndex = 4
   Cell.Offset(0, -11).Value = "X"
End If
tedo01 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/10/2011, 20h08   #3
Futur Membre du Club
 
Homme Jean-Francis BARREAUD
Développeur informatique
Inscription : juin 2011
Messages : 22
Détails du profil
Informations personnelles :
Nom : Homme Jean-Francis BARREAUD
Âge : 62
Localisation : France, Ariège (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2011
Messages : 22
Points : 17
Points : 17
Par défaut Marquage avec un commentaire

Bonjour

Tu peux effectivement comme on vient de t'indiquer, rajouter un 'X' quelque part dans le contenu... mais celui peut nuire à la lisibilité, et ça dépend aussi de la forme générale des contenus.

En ce qui me concerne c'est quelque chose que j'ai déjà fait, mais en utilisant un COMMENTAIRE: Excel coche de lui-même la cellule avec un petit triangle rouge, et en plus tu peux indiquer quelque chose dans le commentaire...

Code :
cell.addcomment.text ""
ou
Code :
cell.addcomment.text "doublon !"
ATTENTION! si tu dois réutiliser la même feuille plusieurs fois, tu ne peux pas ajouter un second commentaire à une cellule qui en contient déjà un. Il te faut réinitialiser, en supprimant tous les commentaires de la feuille...

Pour cela il n'y a pas de méthode globale, il faut les effacer un par un
par exemple:

Code :
1
2
3
for each com in activesheet.comments
     com.delete
next
orpheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 21h16   #4
Invité de passage
 
Inscription : juin 2009
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 8
Points : 2
Points : 2
Merci pour vos réponses.

Orpheu, le principe proposé est intéressant, mais pour mon cas ne me convient pas.

tedo01, j'ai testé ta partie de code, c'est exactement ce que je voulais.
Merci.
chachon est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h27.


 
 
 
 
Partenaires

Hébergement Web