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 :

recherche de doublon


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Par défaut recherche de doublon
    bonjour à tous,

    j'ai deux colonnes, H et J.

    je souhaite rechercher sur toute ma colonne H, à chaque fois que j'ai un doublon.

    lorsque j'en trouve un, alors je met "doublon" dans la colonne d'en face

    qu'est ce qui cloche d'apres vous ? serait-ce une erreur dans mes boucles?

    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
    Sub test_doublon()
     
    For i = 0 To i = 10
     
        For j = 1 To j = 10
     
            If Range("H1").Offset(i, 0).Value = Range("H1").Offset(j, 0).Value Then
     
            Range("H1").Offset(j, 1).Value = "doublon"
     
            End If
     
        Next j
     
    Next i
     
    End Sub
    merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 203
    Par défaut
    Salut

    Sans vraiment essayer, j'écrirai comme cela:

    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
    Sub test_doublon()
     
    For i = 1 To 10
     
        For j = 1 To 10
     
            If Range("H" & i).Value = Range("J" & j).Value Then
     
                   Range("K" & j) = "doublon"
     
            End If
     
        Next j
     
    Next i
    J'aime pas trop les offsets, on sait jamais où on est

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si tu peux trier tes données par ordre alphabétique, tu as une solution très simple. Le peux-tu ?
    A+

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Par défaut
    oui effectivemement je peux les trier par ordre alphabétique.

    A+

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Alors c'est simple
    Tu tries tes données (enregistre le code en faisant) puis tu testes ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim cell as range
    For each cell in range("H2:H10") 'tu peux remplacer 10 par le N° de la dernière ligne
         if cell = cell.offset(-1,0) or cell = cell.offset(+1,0) then _
              Cell(0, 1) = "doublon"
    Next
    Tu dis
    A+

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Par défaut
    merci pour vos idées, mais je suis rester sur ça :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub test_doublon3()
     
        For j = 0 To 100
     
        If Range("H2").Offset(j, 0).Value = Range("H2").Offset(j + 1, 0).Value Then
        Range("H2").Offset(j + 1, 1).Value = "doublon"
        End If
     
        Next j
     
     
    End Sub

    merci
    A+

  7. #7
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2008
    Messages : 248
    Par défaut
    Citation Envoyé par did103 Voir le message
    Salut

    Sans vraiment essayer, j'écrirai comme cela:

    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
    Sub test_doublon()
     
    For i = 1 To 10
     
        For j = 1 To 10
     
            If Range("H" & i).Value = Range("J" & j).Value Then
     
                   Range("K" & j) = "doublon"
     
            End If
     
        Next j
     
    Next i
    J'aime pas trop les offsets, on sait jamais où on est
    Bonjour, désolé de vous déranger.

    J'ai déjà vu dans un programme l'utilisation de i = et j = ...

    Serait il possible que tu m'expliques a quoi servent les lignes de ton programme?

    Merci

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    L'un parcourt les lignes, l'autre les colonnes. C'est pourquoi For each cell in range("H2:H10") qui fait la même chose est plus simple.

    Citation Envoyé par dado91400
    merci pour vos idées, mais je suis resté sur ça :
    ........................................

  9. #9
    Membre éprouvé
    Inscrit en
    Mai 2008
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 104
    Par défaut
    Bonjour,
    En passant une solution élégante sans VBA et sans trier à la question initiale :
    Citation Envoyé par dado91400 Voir le message
    je souhaite rechercher sur toute ma colonne H, à chaque fois que j'ai un doublon je mets "doublon" dans la colonne d'en face
    Dans la colonne I je copie la formule :
    =NB.SI($H:$H;H1)-1
    avec le format :
    "Doublon";;

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 203
    Par défaut
    Alors là BEVAN

    =NB.SI($H:$H;H1)-1
    avec le format :
    "Doublon";;
    Pas de macro!!!

    Par contre même le 1er chiffre rencontré quand y en a plusieurs identiques fait apparaître aussi "doublon"...

  11. #11
    Membre éprouvé
    Inscrit en
    Mai 2008
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 104
    Par défaut
    Bonjour,
    Citation Envoyé par did103 Voir le message
    Par contre même le 1er chiffre rencontré quand y en a plusieurs identiques fait apparaître aussi "doublon"...
    J'avais mal compris la demande. Alors on va faire :

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/11/2005, 15h24
  2. Recherche de doublons "non strict"
    Par Oluha dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/01/2005, 10h21
  3. [VBA] Algo de recherche de doublons
    Par guams dans le forum VBA Access
    Réponses: 6
    Dernier message: 27/07/2004, 18h10
  4. recherche de doublons dans un fichier texte
    Par portu dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 07/10/2003, 15h13
  5. Réponses: 2
    Dernier message: 19/08/2003, 19h04

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