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 :

Transfert de NON-doublons dans une feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut Transfert de NON-doublons dans une feuille
    Bonjour,

    Je possède un Classeur1, Feuil1, en colonne A des Noms, en colonne B des Métiers.
    Je possède également un Classeur2, Feuil2, en colonne F des Noms, en colonne G des Métiers également.

    Entre le Classeur1 et 2, il y a des doublons, c'est à dire des Noms avec les même Métiers. Ce qui est parfait par rapport à mon projet.

    Le Classeur1 évolue, c'est à dire que l'ont rajoute des Noms et des Métiers.

    Du coup, j'aimerais, par le biais d'une Macro VBA, pouvoir cliquer sur un bouton, et que toutes les lignes où NE FIGURE PAS le même Nom et Métier que sur une ligne du Classeur2, que cela se transfert dans le Classeur2.

    Donc il s'agit de comparer 2 classeurs et 2 colonnes.

    Mais là, j'ai beau chercher et essayer de bidouiller des bouts de codes, je suis trop novice

    J'ai trop besoin de votre aide svp

    Merci beaucoup (et j'espère que vous comprendrais mon appel au secours)

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    déjà sans code via le B-A-BA d'Excel en ajoutant une colonne supplémentaire dans chacune des feuilles
    afin de concaténer les colonnes des noms et des métiers …
    Ensuite avec une colonne supplémentaire il est facile avec la fonction de feuille de calculs EQUIV par exemple
    de repérer les concaténations absentes d'une feuille à une autre !
    Après un p'tit filtre, reste juste alors à copier les données filtrées …

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut
    Bonjour,

    Désolé de répondre un peu tardivement, je vais essayer cette méthode de repérage, qui est simple, et je n'y avais pas pensé.

    C'est la méthode de transfert de NON-Doublons que j'aimerais approfondir.
    Ce serait cool de pouvoir cliquer sur un bouton (par macro) afin que cela puisse se faire.
    Je vais essayer de rebidouiller, je vous tiens au courant.

    La discussion n'est pas résolue pour le moment.

    Merci, à très vite !

  4. #4
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,

    si tu veux du vba tu devrais t'intéresser à cette discussion : Identifier les doublons dans une base

    Dans cette discussion il y ait expliqué une maniére simple à la façon d Excel le repérage de doublons
    Déjà pour appréhender la doublons sur une feuille

    Tu peux aussi t'intéresser aux collections - cf faq

    Voir la méthode de Marc-L en Excel à adapter en vba

    Utilisation de l'enregistreur de macro peut être d'une grande aide au début

    Edit : modif
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  5. #5
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Je ne sais pas si c'est traité dans le lien donné par Ryu mais ici: http://www.developpez.net/forums/d16...s/#post8849435 tu as un exemple de copie de doublon en utilisant les filtres avancés avec critère calculé qui facilement être adapté a la copie de non-doublons en modifiant le critère calculé.

  6. #6
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,
    voilà un code (bien pointé sur les feuilles et le 2è classeur) à mettre dans le classeur 1
    A faire en mode pas à pas avec F8 et la fenêtre des variables locales (mettre des espions si il le 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
    Sub SansDoublons()
    Const Entete = 1: Const Decal = 2
        Dim NomCl As String, Feuille As String, DL2 As Long, NbColC2 As Integer, Rng As Range
        Dim DL1 As Long, NbColC1 As Integer, ThWb_Rng As Range, Col As String, Crit As Integer
     
    Application.ScreenUpdating = False
        With Workbooks("Classeur2").Sheets("Feuil1") 'ThisWorkbook.Sheets("Feuil2")
            NomCl = .Parent.Name: Feuille = .Name
     
            DL2 = .Cells(Rows.Count, 6).End(xlUp).Row: NbColC2 = .UsedRange.Columns.Count
     
            Set Rng = .Range(.Cells(Entete + 1, NbColC2 + Decal), .Cells(DL2, NbColC2 + Decal))
                Rng.Formula = "=F" & Entete + 1 & "&""_""&G" & Entete + 1
        End With
     
        With ThisWorkbook.Sheets("Feuil1")
            DL1 = .Cells(Rows.Count, 1).End(xlUp).Row: NbColC1 = .UsedRange.Columns.Count
            Crit = NbColC1 + Decal + 1
     
            Set ThWb_Rng = .Range(.Cells(Entete + 1, NbColC1 + Decal), .Cells(DL1, NbColC1 + Decal))
            ThWb_Rng.Formula = "=A" & Entete + 1 & "&""_""&B" & Entete + 1
                Col = Split(ThWb_Rng.Address, "$")(1)
     
            ThWb_Rng.Offset(, 1).Formula = "=MATCH(" & Col & Entete + 1 & ",[" & NomCl & "]" & Feuille & "!" & Rng.Address & ",0)"
     
            If Application.CountIf(ThWb_Rng.Offset(, 1), "#N/A") > 0 Then
                .UsedRange.AutoFilter Field:=Crit, Criteria1:="#N/A"
                .Range("A" & Entete + 1 & ":B" & DL1).SpecialCells(xlCellTypeVisible).Copy _
                    Destination:=Rng.Resize(1).Offset(Rng.Rows.Count, 6 - NbColC2 - Decal)
                If .AutoFilterMode Then .Cells.AutoFilter
            Else
                MsgBox "Aucun champs uniques à ajouter"
            End If
            ThWb_Rng.Resize(, 2).Clear
        End With
        Rng.Clear: Set Rng = Nothing: Set ThWb_Rng = Nothing
    Application.ScreenUpdating = True
     
    End Sub
    Edit : ici les 2 classeurs doivent être ouverts
    Il reprend le principe expliqué par Marc-L en post 2
    J'ai essayé de faire en sorte que le code s'adapte automatiquement aux données

    Edit 2 : Mea culpa - la fatigue et le codage ne pouvant faire bon ménage parfois je me suis aperçu en ré-testant mon code, des dysfonctionnements
    je l'ai donc modifié (dans ce post) - si vous voyez un pbm faites le moi savoir svp - merci
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

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

Discussions similaires

  1. Distinguer le nombre de plages non contiguës dans une feuille
    Par Philippe Tulliez dans le forum Macros et VBA Excel
    Réponses: 85
    Dernier message: 01/04/2015, 20h45
  2. test sur une checkbox dans une feuille non active
    Par diude54 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/08/2009, 22h29
  3. Renseigner une liste sans doublon dans une feuille ou dans un userform
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 26/01/2009, 14h54
  4. ecrire dans une feuille non active d'excel
    Par baboo50 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 08/08/2007, 11h37
  5. [VBA-E]trie(suppression de doublons) dans une feuille excel
    Par TANIE dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/08/2006, 13h25

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