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 :

Macro pour isoler les doublons d'un fichier


Sujet :

Macros et VBA Excel

Vue hybride

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 16
    Par défaut Macro pour isoler les doublons d'un fichier
    Bonjour à tous.

    Tout d'abord, permettez moi de m'excuser si je ne suis pas dans la bonne catégorie du forum.

    Je suis à la recherche d'une macro, sur MSExcel2016, pour isoler dans une autre feuille d'un classeur, des doublons possibles dans une feuille.

    Je m'explique :

    Je m'occupe de sécurité informatique, et pour des campagnes de patch, j'ai un fichier d'export avec plus de 1000 noms de machines.

    L'idée est de comparer ce fichier, avec un autre fichier, et tout les doublons sont des machines que je doit obligatoirement patcher.

    Pour ce faire, je concatène les 2 fichiers dont j'ai besoin, et à la suite, j'aimerais trouver une macro, me permettant d'isoler tout les doublons, dans une autre feuille du classeur, et les supprimer de leurs emplacement initiale.

    Auriez vous une petite idée ?

    En vous remerciant par avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 422
    Par défaut
    Bonjour,

    Il y a dans Excel une fonction pour "supprimer les doublons" dans le groupe "Outils de données" de l'onglet "Données".
    Nom : SupprimerDoublons.png
Affichages : 159
Taille : 7,6 Ko.

    Cordialement.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 16
    Par défaut
    Bonjour, et merci pour ta réponse.

    Cependant, je ne cherche pas à supprimer les doublons, mais bien à les isoler dans une feuille a part.

    Merci

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 633
    Par défaut
    Bonjour,

    Tu vas dans Mise En Forme conditionnelle\Règles de Mise en surbrillance des cellules\Valeurs en Double

    Cela te permettra de les isoler visuellement.

    ONTAYG

  5. #5
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 243
    Par défaut
    Hello,
    le fichier est un fichier texte ? il n'y a qu'un nom de machine par ligne ? c'est un fichier windows ou unix ( CRLF ou LF ) ?
    Ami calmant, J.P

  6. #6
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 422
    Par défaut
    Bonjour,

    Un début de solution, à tester, compléter, adapter, simplifier:
    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
    52
    Option Explicit
    Option Base 1
     
    Sub ChargerDoublons()
        Dim wbA As Workbook, wbB As Workbook
        Dim wshA As Worksheet, wshB As Worksheet
        Dim kC As Long, rA As Range, rB As Range, rD As Range
        Dim arrA() As Variant, arrB() As Variant, arrD As Variant
        Dim j As Long, k As Long
        Set wbA = Application.Workbooks.Open(ThisWorkbook.Path & "\Fichier_A.xlsx", , True)
        Set wbB = Application.Workbooks.Open(ThisWorkbook.Path & "\Fichier_B.xlsx", , True)
        Set wshA = wbA.Worksheets("Feuil1")
        Set wshB = wbB.Worksheets("Feuil1")
        '--- il est supposé que les 2 feuilles ont la même présentation
        '--- que la ligne 1 est une ligne de titres
        '--- qu'il n'y pas de cellules vides dans la colonne à comparer
        kC = 1      '--- colonne contenant les éléments à comparer (recheche doublons)
        Set rA = wshA.Range(wshA.Cells(2, kC), wshA.Cells(2, kC).End(xlDown))
        Set rB = wshB.Range(wshB.Cells(2, kC), wshB.Cells(2, kC).End(xlDown))
        arrA = rA
        arrB = rB
        ThisWorkbook.Activate
        Worksheets("Doublons").Select
        Cells.Clear
        Range("A1").Select
        '====== liste les doublons
        For j = 1 To UBound(arrA)
            Debug.Print arrA(j, 1)
            For k = 1 To UBound(arrB)
                If arrA(j, 1) = arrB(k, 1) Then
                    wshA.Rows(j + 1).Copy ActiveCell
                    ActiveCell.Offset(1, 0).Select
                End If
            Next k
        Next j
        Set rD = Range(Cells(1, kC), Cells(1, kC).End(xlDown))  '--- range doublons
        arrD = rD
     
        Stop
        '==== supprime les doublons dans fichier B
        wshB.Activate
        k = Cells(2, kC).End(xlDown).Row            '--- dernière ligne
        Do
            For j = 1 To UBound(arrD)
                If Cells(k, kC) = arrD(j, 1) Then
                    Rows(k).Delete
                    Exit For
                End If
            Next j
            k = k - 1                               '--- remonte
        Loop Until k = 0
    End Sub
    Cordialement.
    Fichiers attachés Fichiers attachés

  7. #7
    Membre Expert Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Par défaut Doublons
    Nom : Capture Ecran Doublons.jpg
Affichages : 137
Taille : 196,3 Ko

Discussions similaires

  1. [XL-2003] Macro pour gerer les doublons VBA
    Par Aetycc dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/03/2015, 14h22
  2. formule ou macro pour identifier les doublons
    Par TICHKA dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/02/2014, 12h43
  3. [XL-2007] Macro pour extraire les doublons en fusionnant les valeurs
    Par ptiloups dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/02/2013, 15h56
  4. Macro pour renommer les fichiers
    Par cristophil dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/06/2011, 12h10
  5. [XL-2007] Trier fichiers excel pour supprimer les doublons
    Par El-Cherubin dans le forum Excel
    Réponses: 3
    Dernier message: 26/06/2009, 15h59

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