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 cellules identiques puis les supprimer


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Points : 7
    Points
    7
    Par défaut Recherche de cellules identiques puis les supprimer
    Bonjour,
    j'ai deux colonnes triées avec des doublons, mais cellules ne sont pas en face ex:

    ColA ColB
    AAAA AAAA
    AAAB AAAC
    AAAC AABB
    AABB AABC
    AABC... AABD...

    Je voudrais savoir s'il existe une possibilité en vba de faire une recherche des cellules contenant le même terme puis de les supprimer.

    Par avance merci

  2. #2
    Membre éprouvé
    Avatar de ouisansdoute
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    931
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 931
    Points : 1 079
    Points
    1 079
    Par défaut
    Bonjour ivan,

    Une fonction d'excel fait cela très bien : il s'agit des filtres élaborés. Explore dans cette direction.

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Points : 7
    Points
    7
    Par défaut Recherche de cellules identiques puis les supprimer
    Oui je connais, mais j'ai besoin d'une macro

  4. #4
    Membre éprouvé
    Avatar de ouisansdoute
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    931
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 931
    Points : 1 079
    Points
    1 079
    Par défaut
    Il ne faut pas confondre filtre automatique et filtre élaboré.

    Si tu souhaites automatiser, passe par l'enregistrement automatique, compose et exécute ton filtre élaboré (en cochant la case sans doublons).

    - si tu souhaites créer ta liste sans doublons sur un autre onglet, nomme ta base
    - choisis le tri vers un autre emplacement (ce qui crée une nouvelle liste) et coche la case "sans doublon"

    Lorsque l'opération s'exécute correctement, arrête l'enregistrement et... ta macro est prête et utilisable à l'infini, tu peux même dessiner un bouton sur ta feuille et exécuter la macro par un clic sur le bouton

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Points : 7
    Points
    7
    Par défaut Recherche de cellules identiques puis les supprimer
    Bonjour,
    j'ai deux colonnes triées avec des doublons, mais cellules ne sont pas en face ex:

    ColA ColB
    AAAA AAAA
    AAAB AAAC
    AAAC AABB
    AABB AABC
    AABC... AABD...

    Je voudrais savoir s'il existe une possibilité en vba de faire une recherche des cellules contenant le même terme puis de les supprimer.

    Par avance merci

  6. #6
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2008
    Messages : 273
    Points : 323
    Points
    323
    Par défaut
    Bonjour,
    1- Tu veux supprimer dans les 2 colonnes où une seule des 2 ?
    2- Tu peux modifier l'ordre de ta 2ème colonne ou non ?

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Points : 7
    Points
    7
    Par défaut Recherche de cellules identiques puis les supprimer
    Bonjour,

    Je veux supprimer toutes les cellules qui sont identiques dans la colA et colB. Le tri est déjà effectué.
    Ex
    Si colA celluleA = colB celluleC je supprime et c'est justement ce que je n'arrive pas à résoudre.

    Mes deux colonnes comportent environs 200 cellules. Donc je dois faire une recherche sur les deux colonnes *

    Merci

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonjour

    Tu trouveras des exemples dans ce lien :

    http://silkyroad.developpez.com/excel/doublons/

    bonne journée
    michel

  9. #9
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Tu veux supprimer les lignes contenant les doublons ou les cellules ?

    Si c'est pour masquer ou supprimer les lignes complètes, je suis bien certain que le code a déjà été donné x fois mais adapté au colonnes A et B, ça donne ça :
    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
    Option Explicit
     
    Sub Appel()
    Dim FL1 As Worksheet
    Dim DerLig As Long
        Set FL1 = Worksheets("Feuil1")
        DerLig = Split(FL1.UsedRange.Address, "$")(4)
        Masquer_ou_Supprimer_Les_Doublons FL1, DerLig
    End Sub
     
    Sub Masquer_ou_Supprimer_Les_Doublons(FL1 As Worksheet, DerLig As Long)
    Dim Collect As Collection
    Dim i As Long, NoLig As Long
        Set Collect = New Collection
     
        'Boucle sur lignes de la plage de cellules
        With FL1
            For NoLig = DerLig To 1 Step -1
                On Error Resume Next
                    'Ajoute le contenu des deux cellules dans la collection
                    Collect.Add .Cells(NoLig, 1).Value & .Cells(NoLig, 2).Value, .Cells(NoLig, 1) & .Cells(NoLig, 2)
     
                'Pour masquer les lignes
                    If Err Then Rows(NoLig).EntireRow.Hidden = True
     
                'Pour Effacer les lignes
                    'If Err Then Rows(NoLig).EntireRow.Delete
     
                Err.Clear 'Erreur si doublon
            Next
        End With
     
        On Error GoTo 0
        Set Collect = Nothing
    End Sub
    Bonne journée

  10. #10
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Points : 7
    Points
    7
    Par défaut Recherche de cellules identiques puis les supprimer
    Merci pour vos réponses.
    Mais en fait le souci c'est que mes mots qui sont sur deux colonnes ne se trouvent pas sur la même ligne. Et c'est donc ici que je coince

    Extrait de mes deux colonnes

    EASYCOM CELIB
    EDIACCO CONFIGD4
    EDIACSU CORINFRC
    EDICNA DBLIB
    EDIMTD DL
    EMBALOBJ DWPGM
    EXPLLIB EASYCOM
    FGCSUSEC EDIACCO
    FGE50A6 EDIACSU
    FGE50D4 EDICNA

  11. #11
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
    Dim i As Integer, cel As Range
     
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 'boucle sur la colonne A
        Set cel = Range("B:B").Find(what:=Cells(i, 1), lookat:=xlWhole) 'recherche dans la colonne B
        If Not cel Is Nothing Then
            Cells(i, 1).Delete shift:=xlUp
            cel.Delete shift:=xlUp
        End If
    Next
     
    End Sub

  12. #12
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    (bonjour fring )
    Une autre idée : Pour deux colonnes en un seul passage (on paramètre les N° de colonnes concernées et on crée deux collections)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Appel()
    Dim FL1 As Worksheet
    Dim DerLig As Long
        Set FL1 = Worksheets("Feuil1")
        DerLig = Split(FL1.UsedRange.Address, "$")(4)
        Masquer_ou_Supprimer_Les_Doublons FL1, DerLig, 1, 2
    End Sub
    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
    Sub Masquer_ou_Supprimer_Les_Doublons(FL1 As Worksheet, DerLig As Long, NoCol1 as long, NoCol2, as long)
    Dim Collect As Collection, Collect2 as Collection
    Dim i As Long, NoLig As Long
        Set Collect = New Collection
        Set Collect2 = New Collection
     
        'Boucle sur lignes de la plage de cellules
        With FL1
            For NoLig = DerLig To 1 Step -1
                On Error Resume Next
                    'Ajoute le contenu des deux cellules dans la collection
                    Collect.Add .Cells(NoLig, NoCol1).Value, .Cells(NoLig, NoCol1) 
                    Collect2.add Cells(NoLig, NoCol2).Value, .Cells(NoLig, NoCol2)
                'Pour masquer les lignes
                    If Err Then Rows(NoLig).EntireRow.Hidden = True
     
                'Pour Effacer les lignes
                    'If Err Then Rows(NoLig).EntireRow.Delete
     
                Err.Clear 'Erreur si doublon
            Next
        End With
     
        On Error GoTo 0
        Set Collect = Nothing
        Set Collect2 = Nothing
    End Sub
    Bonne journée

  13. #13
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Points : 7
    Points
    7
    Par défaut Recherche de cellules identiques puis les supprimer
    Fring

    Ton code génére une erreur, je continue de regarder pour voir si je trouve pourquoi.

    Ceci dit, je pense que vous avez de bonnes idées et je pense qu'on est pas loin merci

  14. #14
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Salut Ousk ,

    Ce que tu proposes n'est pas vraiment la même chose, tu supprimes les doublons dans chaque colonne, colonne par colonne. Ce que Ivan cherche à faire est de supprimer les cellules lorsque la valeur de la cellule en colonne A se retrouve dans une des cellules de la colonne B.

    Vu que les valeurs identiques ne sont pas sur la même ligne, si j'ai bien compris...on ne supprime que la cellule et pas la ligne entière (à confirmer)

    Bone journée

  15. #15
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par ivan rung Voir le message
    Ton code génére une erreur, je continue de regarder pour voir si je trouve pourquoi.
    Quelle erreur et sur quelle ligne ?
    (ce code a été testé et il fonctionne )

  16. #16
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par ousk' qui a déjà demandé...
    Tu veux supprimer les lignes contenant les doublons ou les cellules ?

  17. #17
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Points : 7
    Points
    7
    Par défaut Recherche de cellules identiques puis les supprimer
    Merci fring
    Ton code fonctionne très bien, mon erreur venait d'excel en lui même, il plantait

    Pour conclure ça fonctionne comme je veux, merci

  18. #18
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2021
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Suppression doublon dans une seule colonne
    Citation Envoyé par fring Voir le message
    Bonjour à tous !

    Désolé je suis bloqué car j'ai du mal à comprendre le petit bout de code afin de l'adapter à ma problématique.

    Mon tableau est bien plus grand mais en gros je souhaiterai faire une boucle comme dans le code en ayant :
    Colonne A : Position GPS en X
    Colonne B : Position GPS en Y
    Colonne C : Altitude du terrain naturel
    Colonne D : Profondeur de l'objet
    Colonne E : Altitude de l'objet (Z(TN) - Profondeur de l'objet)

    En gros je souhaiterai effacer le contenu de la cellule située dans la colonne E si cette valeur est identique à celle dans la colonne C : if C3 = E3 then delete cell ou "" un truc dans le genre mais avec une boucle.
    J'ai essayé d'adapter le code trouvé sur ce forum sans y arriver malheureusement... Quelqu'un pourrait m'aider svp ?

    X Y Z (TN) Charge (cm) Z (Objet)
    694975 7816648 135.79 100 134.79
    694975 7816648 135.913 90 135.013
    694975 7816648 136.026 85 135.176
    694975 7816648 136.177 0 136.177
    694975 7816648 136.235 105 135.185
    694975 7816648 136.223 0 136.223
    694975 7816648 136.336 110 135.236
    694975 7816648 136.359 120 135.159

  19. #19
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2021
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Je relance la discussion n'ayant pas eu de retour, merci à ceux qui pourraient m'aider !

  20. #20
    Membre expérimenté
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 747
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour,

    Pour espérer avoir une réponse, il vaut mieux créer une nouvelle discussion plutôt que compléter une autre discussion sur un sujet ressemblant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub VideColE()
    Dim i As Long
        For i = 2 To Range("E" & Rows.Count).End(xlUp).Row
            If Range("E" & i).Value = Range("C" & i).Value Then
                Range("E" & i).ClearContents
            End If
        Next
    End Sub

Discussions similaires

  1. [Bash] Exécuter des fichiers puis les supprimer
    Par darkydark dans le forum Linux
    Réponses: 4
    Dernier message: 29/03/2012, 11h32
  2. Cellules identiques et recherche
    Par Leona dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/02/2008, 12h28
  3. Réponses: 0
    Dernier message: 02/10/2007, 13h44
  4. Recherche qui passe par ts les enregistrements identiques à ce qu'on cherche
    Par lebienestrare dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 13/09/2006, 13h00
  5. [VBA-E] Supprimer le cont de cellules dans toutes les feuill
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/03/2006, 09h44

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