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 :

Contrôle des doublons sur plusieurs feuilles, puis suppression [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    salarié
    Inscrit en
    Janvier 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : salarié
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 24
    Par défaut Contrôle des doublons sur plusieurs feuilles, puis suppression
    Bonjour,

    Toujours grand débutant dans le "codage", je viens vers vous avec une nouvelle question.

    J'ai plusieurs feuilles dans un même classeur, issues de trois documents différents.
    Je souhaiterai trouver des doublons entre les feuilles, et supprimer les doublons.
    Pour celà, je me base sur la colonne C, contenant un identifiant à 9 chiffres.

    Dans mon idéal, celà donnerait :

    1 identifier les doublons entre feuilles
    2 supprimer les dits doublons des feuilles 2 et 3

    J'ai vu plusieurs méthodes de recherches, et je me perds dès qu'il s'agit de comparer une liste d'une feuille avec une autre.

    Y a-t-il une solution ?
    Toute aide est la bienvenue, mes collègues attendant actuellement à proximité de mon bureau, dans cette posture :

    Je cherche à automatiser cette opération car la fréquence est bi-mensuelle.

    Cordialement, Jérôme D

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu...
    bonjour

    pour comparer les doublons présents sur deux feuille tu pourrais utiliser
    les dictionnaires avec des variables tableaux

    tu a plusieurs sujet ouvert voir résolu sur la question

    tout d'abord dois tu supprimer les doublons présents sur la meme feuille ou pas ?
    ou simplement les doublons identiques sur les deux feuilles ?

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Invité
    Invité(e)
    Par défaut Contrôle des doublons sur plusieurs feuilles, puis suppression
    Bonsoir,
    Tu veux une occurrence unique de valeur dans tout le classeur ?
    J’ai proposé a plusieurs reprise la Méthode Highlander (il ne peut en rester qu'un), elle est terriblement efficace et peut s’adapter à toutes sorte de problématiques, mais j’ai besoin d’être sur du résultat recherché.

  4. #4
    Membre averti
    Homme Profil pro
    salarié
    Inscrit en
    Janvier 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : salarié
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 24
    Par défaut
    Bonsoir,

    Merci pour vos réponses ; je pense creuser la solution du dictionnaire pour voir ce que je peux en sortir pour ma culture générale.

    Effectivement, il ne peut en rester qu'un, celui de la feuille 1.
    Pour affiner encore, je dirai que si un doublon venait à apparaître entée la feuille 2 et la feuille 3, automatiquement celui de la feuille 3 devrait être supprimé.

    Pour précision, il s'agit de tableaux générés par extraction d'une base de données, suivant différents critères. Le critère global nous renvoie 65533 itérations, et les deux autres à peu près 3000. Mes collègues ne sont que trois à reprendre toutes ces itérations pour vérifier les correspondances, avec une moyenne de 3 minutes par traitement. Comprenez donc l'importance de virer les doublons.

    Je pencherai donc en faveur de la solution Highlander, afin de leur faciliter au plus vite la tâche.

    Merci à vous.

  5. #5
    Invité
    Invité(e)
    Par défaut
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Dim Doublon As Collection
    Sub Scan()
    Dim RowsSup() As String
    Dim L As Long
    Dim Linge As Long
    Dim MyRange As Range
    Dim C As Long
    Dim Feuille As Worksheet
    Dim SplitR
    Const L_Start = 2 'L_Start=1 Si pas de titre de colonne L_Start=2 si titre de colone.
    Set Doublon = New Collection
     
     ReDim RowsSup(0)
    For C = 1 To ActiveWorkbook.Sheets.Count
        Set MyRange = ActiveWorkbook.Sheets(C).Range("C1").CurrentRegion
        For L = L_Start To MyRange.Rows.Count
            Linge = MethodeHighlander(L, MyRange)
            If Linge <> 0 Then
                ReDim Preserve RowsSup(1 + UBound(RowsSup))
                RowsSup(UBound(RowsSup)) = ActiveWorkbook.Sheets(C).Name & ";" & Linge
            End If
        Next
    Next
    For L = UBound(RowsSup) To 1 Step -1
        SplitR = Split(RowsSup(L), ";")
        Set Feuille = ActiveWorkbook.Sheets(SplitR(0))
        Feuille.Rows(SplitR(1)).EntireRow.Delete
     
     
    Next
    End Sub
    Function MethodeHighlander(L As Long, MyRange As Range) As Long
    'La Méthode Highlander il ne peut en rester qu'un.
    Dim col As Integer
    Dim Text As String
    Text = ""
    MethodeHighlander = 0
    For col = 3 To 3 'MyRange.Columns.Count
        Text = Text & "_" & MyRange(L, col)
    Next
    On Error Resume Next
    'On peut ajouter dans une collection un enregistrement en lui donnant un nom.
    'Le problème est qu'elle ne supporte pas les doublons.
    'On utilise les messages d'erreur pour définir les doublons.
    Doublon.Add txt, "T_" & Text
    If Err <> 0 Then
        MethodeHighlander = L
        Err.Clear
    End If
    On Error GoTo 0
    End Function

  6. #6
    Membre averti
    Homme Profil pro
    salarié
    Inscrit en
    Janvier 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : salarié
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 24
    Par défaut Problème résolu
    Bonjour,

    La solution Highlander fonctionne parfaitement, nous avons pu retirer quelques 2000 itérations

    Je vais pouvoir me concentrer sur les dictionnaires, et voir comment celà fonctionne

    Encore merci à vous de la part de mes collègues

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

Discussions similaires

  1. contrôle des doublons sur plusieurs champs
    Par christy1 dans le forum Modélisation
    Réponses: 3
    Dernier message: 09/12/2011, 14h13
  2. [XL-2003] Doublons sur plusieurs feuilles
    Par bbcancer dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 11/10/2010, 16h06
  3. [AC-2007] Identifier des doublons sur plusieurs champs.
    Par neiluj26 dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 22/09/2010, 20h49
  4. Manipuler des données sur plusieurs feuilles
    Par gil71 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/05/2010, 14h55
  5. Calcul sur des cellules sur plusieurs feuilles
    Par vlksoft dans le forum Excel
    Réponses: 2
    Dernier message: 12/03/2009, 08h08

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