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 :

Doublons sur une ligne complète


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2011
    Messages : 115
    Points : 56
    Points
    56
    Par défaut Doublons sur une ligne complète
    Bonjour à tous,
    Est-il possible de supprimer par exemple la ligne 15 et 16 car les information contenues sur toute la ligne 15 (de A à P) sont les mêmes que la ligne 16 (de A à P). donc A15=A16, B15=B16.... P15=P16



    j'ai fait des recherches sur le net mais le code fait des comparaisons et recherche sur seulement la colonne A par exemple.. (A15=A16)

    Merci.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 767
    Points : 28 626
    Points
    28 626
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Onglet [Données], groupe Outils de données, commande Supprimer les doublons
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Invité
    Invité(e)
    Par défaut Doublons sur une ligne complète
    Bonjour,
    Tu veux supprimer les deux lignes ou seulement la ligne en doublon ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2011
    Messages : 115
    Points : 56
    Points
    56
    Par défaut
    seulement le doublon!

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 767
    Points : 28 626
    Points
    28 626
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Et bien alors c'est bien la commande Supprimer les doublons.
    Onglet [Données], groupe Outils de données, commande Supprimer les doublons
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Invité
    Invité(e)
    Par défaut Si tu n’es pas contre les macros.
    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
    Dim Doublon As Collection
    Sub Scan()
    Dim RowsSup() As Integer
    Dim L As Long
    Dim Linge As Long
    Dim MyRange As Range
    Const L_Start = 1 'L_Start=1 Si pas de titre de colonne L_Start=2 si titre de colone.
    Set Doublon = New Collection
    Set MyRange = ActiveSheet.Range("A1").CurrentRegion
     ReDim RowsSup(0)
    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)) = Linge
        End If
    Next
    For L = UBound(RowsSup) To 1 Step -1
       DeleteRow ActiveSheet.Range(MyRange(RowsSup(L), 1).Address)
    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 = 1 To 16
        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 Text, "Name_" & Text
    If Err <> 0 Then
        MethodeHighlander = L
        Err.Clear
    End If
    On Error GoTo 0
    End Function
    Sub DeleteRow(MyRange As Range)
    Dim DelRow As String
    DelRow = CStr(MyRange.Row) & ":" & CStr(MyRange.Row)
    Debug.Print DelRow
        ActiveSheet.Rows(DelRow).Delete Shift:=xlUp
     
     
    End Sub

  7. #7
    Membre régulier Avatar de Excel_man
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2011
    Messages : 98
    Points : 89
    Points
    89
    Par défaut Macro 1 ligne
    Bonjour,
    J'ai eu besoin de traiter les doublons par macro et ma solution a été de concaténer les differentes cellules a prendre en compte dans une nouvelle colonne et de traiter les doublons par le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Sheets("Feuil1").Range("a1").CurrentRegion.RemoveDuplicates Columns:=13, Header:=xlGuess
    La colonne 13 dans l'exemple est celle ou j'ai concaténer mes infos et le Header:=xlGuess détermine automatiquement si le tableau a une en-tête.
    a+
    ***********************************************************************************
    "Des chercheurs qui cherchent, on en trouve. Des chercheurs qui trouvent, on en cherche."
    ***********************************************************************************

  8. #8
    Invité
    Invité(e)
    Par défaut Re
    Je te proposai juste une macro qui fait tout le bouleau sans te poser de questins.
    A+

Discussions similaires

  1. Doublons sur les lignes details d'une commande
    Par lesaintclezio dans le forum Microsoft Dynamics
    Réponses: 2
    Dernier message: 06/08/2015, 14h42
  2. Réponses: 1
    Dernier message: 25/08/2014, 08h25
  3. nombres d'images sur une lign automatique
    Par AnKhCHFR dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/03/2005, 11h52
  4. Lien sur une ligne de tableau
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/02/2005, 11h36
  5. pointer sur une ligne d'un TStringGrid
    Par jeannot27 dans le forum C++Builder
    Réponses: 7
    Dernier message: 20/10/2004, 10h56

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