IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Valeur Cellule si doublon [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Points : 84
    Points
    84
    Par défaut Valeur Cellule si doublon
    Bonjour

    J'utilise ce code pour afficher les doublons de grosses listes Excel.

    J'aimerais le modifier afin que les valeurs des cellules dans la colonne I passent à 1 lorsqu'un doublon est détecté.

    Est ce possible ?

    Merci par avance pour votre aide

    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
    Option Explicit
    Sub Affich_Doublons_I()
    Dim plage As Range
    Dim Cel As Range
    Dim L As Integer, lig As Integer, col As Integer, i As Byte
     
    Application.ScreenUpdating = False
    L = ActiveSheet.Range("A10000").End(xlUp).Row
     
    Set plage = ActiveSheet.Range("A2:A" & L)
    For Each Cel In plage
    lig = Cel.Row - 1
    col = 8
    If Application.CountIf(ActiveSheet.Range("A2:A" & lig), Cel) > 0 Then Cel.Interior.ColorIndex = 6
    Next Cel
    Application.GoTo Reference:="R2C1"
    Application.ScreenUpdating = True
    End Sub

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour le forum, lafafmentvotre,


    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
    Option Explicit
    Sub Affich_Doublons_I()
    Dim plage As Range
    Dim Cel As Range
    Dim L As Integer, lig As Integer, col As Integer, i As Byte
     
    Application.ScreenUpdating = False
    L = ActiveSheet.Range("A10000").End(xlUp).Row
     
    Set plage = ActiveSheet.Range("A2:A" & L)
    For Each Cel In plage
    lig = Cel.Row - 1
    col = 8
    If Application.CountIf(ActiveSheet.Range("A2:A" & lig), Cel) > 0 Then Cel.Interior.ColorIndex = 6
    cel.offset(0,9) = 1 'regardes et vérifies cette ligne
    Next Cel
    Application.GoTo Reference:="R2C1"
    Application.ScreenUpdating = True
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Points : 84
    Points
    84
    Par défaut
    Hello

    Voilà le script que j'avais récupéré (il fonctionne) et modifié :

    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
    Option Explicit
    Sub ColorerDoublons()
    Dim plage As Range
    Dim Cel As Range
    Dim L As Integer, lig As Integer, i As Byte
     
    Application.ScreenUpdating = False
    L = Sheets("Exemple").Range("B10000").End(xlUp).Row
    'Coloration des doublons
    Set plage = Sheets("Exemple").Range("B11:B" & L)
    For Each Cel In plage
    lig = Cel.Row - 1
    If Application.CountIf(Sheets("Exemple").Range("B10:B" & lig), Cel) > 0 Then Cel.Interior.ColorIndex = 6
    Next Cel
    Range("A1").Select
    Application.ScreenUpdating = True
    End Sub
    Ais-je mal modifié le code en sachant que mes valeurs commencent en A2 (la ligne 1 comportant les libellés de colonnes).

    Merci pour l'aide

  4. #4
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour le fil le forum les doublons sont senses etre sur la colonne a??? ta boucle par sur la colonne b!!!
    SALUTATIONS

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Points : 84
    Points
    84
    Par défaut
    Hello

    Le premier code est celui que j'ai modifié pour utiliser sur la colonne A.
    Le second code est celui que j'ai récupéré pour utiliser la colonne B.

    C'est le code A qui ne fonctionne pas.

    Merci par avance pour le coup de main.

  6. #6
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re ce type de code ne repere pas les doublons tu compare seulement avec la cellule dessus je te propose un code recherche les doublons sur la colonne a passe en jaune plus 1sur la colonne i
    par contre si tu veus traiter des lignes de doublons il faut adapter differament

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub essai()
     Dim c As Range, M As Object, L As Long
      Application.ScreenUpdating = False
      Set M = CreateObject("Scripting.Dictionary")
      For Each c In Range("a2:a" & Range("a65536").End(xlUp).Row)
      L = c
      If Not M.Exists(L) Then
      M.Add L, L
      Else
      c.Interior.ColorIndex = 6: c.Offset(0, 8) = 1
      End If: Next c
     End Sub
    SALUTATIONS

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Points : 84
    Points
    84
    Par défaut
    Hello merci pour l'aide mais il me met un message d'erreur :

    Incompatibilité de type

  8. #8
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re bizarre j ai pas ce souci tu l as ecrit tel quel ou tu as rajoute quelque chose!!
    si tu as rien rajoute change les variables pour voir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim c As Variant, M As Object, L As Variant
    SALUTATIONS

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Points : 84
    Points
    84
    Par défaut
    Hello

    J'ai pris ton code tel quel.

    Et avec tes dernières modifications, cela ne fait plus rien du tout :
    pas d'erreur mais pas de coloration


    Bizarre

  10. #10
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re, tu peus zipper une partie de ta feuille pour voir sans donnees confident....
    SALUTATIONS

  11. #11
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    SAlut
    Pourquoi te casser la tête avec du vba? Excel reste un tableur tout de même
    en imaginant que tes donnés se trouvent en colonne A

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NB.SI(A:A;"="&A2)>1;"1";"")
    Tu colles cette formule en ligne 2 sur la colonne ou tu souhaite avoir tes "1" affichés sur les chiffres a doublon.Puis tu étant la formule jusqu'en bas de ton tableau (au pire si le tableau est vraiment grand tu le fais via vba, mais le code sera bien plus simple.

    [Edit]
    encore plus simple avec les MFC
    Tu sélectionnes toute ta colonne et tu ajoutes ça dans la Mise en Forme Conditionnelle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ET(NON(ESTVIDE(C1));NB.SI(C:C;"="&C1)>1)
    Les doublons passent dans la couleur que tu auras choisi.
    [/Edit]
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Test valeur cellule pivot table
    Par ArnaudRenaud dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/09/2006, 08h00
  2. [VBA-E]Lancer une macro sur changement de valeur cellule ?
    Par jeremiegrenoble dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/03/2006, 14h22
  3. [VBA-Excel]Décale colonne tant que valeur cellule ....
    Par Angel79 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 28/02/2006, 17h56
  4. [VBA-E]Récupérer valeur cellule
    Par wanou44 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 06/02/2006, 12h52
  5. [POI]Récupérer valeur cellule suivant format
    Par leminipouce dans le forum Documents
    Réponses: 1
    Dernier message: 27/10/2005, 08h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo