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 Copier / Coller sans doublon


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
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut Macro Copier / Coller sans doublon
    Bonjour,
    j'ai mon petit programme sympa qui me fait une copie de mon tableau qui se trouve dans Feuille source vers Feuille cible .
    Il ajoute les données de source dans cible.
    Ma question : Est il possible d'ajouter dans mon programme du code qui me permettrai de ne pas copier une ligne s'il est déjà présent dans la cible. Supposons que dans mes deux tableaux j'ai un identifiant unique pour chaque ligne qui se trouve dans la colonne B à partir de B5 si ça peut aider.

    Mon programme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub copie()
      Dim lg As Integer
      Dim plage As Range
      lg = Sheets("cible").Range("A65536").End(xlUp).Row
      Set plage = Sheets("source").Range("A5:V" & Range("B65536").End(xlUp).Row)
       sup = MsgBox("Voulez-vous copier ?", vbYesNo + vbQuestion)
      If sup = vbYes Then
       plage.Copy Sheets("cible").Range("A" & lg + 1)
      End If
    End Sub
    Merci par avance.

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 23
    Par défaut
    Bonjour,

    Un proposition : tu peux utiliser l'enregistreur de macro pour faire une suppression des doublons et ensuite copier et coller !

    Guillaume

  3. #3
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour khech,

    Voici une petite procédure qui doit faire ce que tu souhaites, il me semble.
    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
    Option Explicit
     
    Sub recopie()
    Dim oRng As Range
    Dim oTable()
    Dim n As Long, i As Long, j As Long
     
    Dim nb_col As Integer
     
    With Worksheets("source")
        Set oRng = .Range("B4")
     
        nb_col = 22
     
        n = .Cells(Rows.Count, oRng.Column).End(xlUp).Row - oRng.Row
        ReDim oTable(1 To nb_col, 1 To n)
     
        For i = 1 To n
            For j = -1 To nb_col - 2
                oTable(j + 2, i) = oRng.Offset(i, j)
            Next j
        Next i
     
    End With
     
    With Worksheets("cible")
        For i = LBound(oTable, 2) To UBound(oTable, 2)
            Set oRng = .Columns(2).Find(oTable(2, i), LookIn:=xlValues, LookAt:=xlWhole)
            If oRng Is Nothing Then
                Set oRng = .Cells(Rows.Count, 2).End(xlUp).Offset(1, 0)
                For j = LBound(oTable, 1) To UBound(oTable, 1)
                    oRng.Offset(0, j - 2) = oTable(j, i)
                Next j
            End If
            Set oRng = Nothing
        Next i
    End With
     
    End Sub
    N'hésite pas à revenir vers moi !

    Cordialement,
    Kimy

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut
    re bonjour Kimy_Ire,
    ça marche super bien. Il fait le job.
    Merci bien pour votre rapidité et à bientôt.

  5. #5
    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 re
    Bonjour
    entre nous kimy_Ire a partir de 2007 il y avait beaucoup plus simple
    vire les ligne en doublon dans la colonne "B"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub copie()
      Dim lg As Integer, plage
      With Sheets("source")
      Set plage = .Range("A5:V" & .Range("B" & Rows.Count).End(xlUp).Row)
      End With
       lg = Sheets("cible").Range("A" & Rows.Count).End(xlUp).Row
       sup = MsgBox("Voulez-vous copier ?", vbYesNo + vbQuestion)
      If sup = vbYes Then
        plage.Copy Destination:=Sheets("cible").Range("A" & lg + 1)
      End If
        Sheets("cible").Range("A" & lg + 1).Resize(plage.Rows.Count, plage.Columns.Count).RemoveDuplicates Columns:=2, Header:=xlNo
    End Sub
    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

  6. #6
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    C'est vrai, j'y ai pensé...
    Mais, j'aime bien me compliquer la vie !

    C'est surtout que je maîtrise plus les méthodes que j'ai utilisées plus que celles que tu as utilisées. Mais j'en prends bonne note !

    Merci Patrick.

    Kimy

  7. #7
    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 re
    re
    et si pure vbiste tu est !!
    utilisation de 2 variable tableaux et un dico
    point barre
    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

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

Discussions similaires

  1. Simuler un copier/coller sans passer par le clipboard
    Par Lefaucheux dans le forum Windows Forms
    Réponses: 3
    Dernier message: 17/06/2008, 15h28
  2. Copier coller sans incrémenter
    Par chrichnou051 dans le forum Excel
    Réponses: 2
    Dernier message: 23/04/2008, 16h06
  3. Macro copier/coller avec tri
    Par Lechette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/03/2008, 12h44
  4. Macro copier coller première cellule vide
    Par jul85 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 24/02/2008, 17h06
  5. Macro copier/coller colonne- insérer nouvelle colonne
    Par rembliec dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/11/2007, 16h32

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