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 :

Comparer deux tableau et recuperer les différences [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Par défaut Comparer deux tableau et recuperer les différences
    Bonjour,
    Je pense que ce doit être un basique, mais je n 'ai pas la solution.
    Je souhaiterais comparer deux tableaux feuille1 et feuille2, récupérer les ajouts du 2 et les mettre dans le 1.

    Merci pour le coup de main

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Ce n'est pas clair
    une devinette, chercher les données dans la colonne A de feuil2, si elles ne sont pas dans la colonne A de feuil1, elles sont rajoutées à la fin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim c as range, v as range
    for each v in sheets("feuil2").Range("A1:A" & sheets("feuil2").range("A65536").end(xlup).row)
    set c=sheets("feuil1").Range("A1:A" & sheets("feuil1").range("A65536").end(xlup).row).find(v, lookin:=xlvalues,lookat:=xlwhole)
    if c is nothing then sheets("feuil1").Range("A" & sheets("feuil1").range("A65536").end(xlup).row+1)=v
    next v
    Edit, autrement,

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Par défaut Complements
    Bonjour,

    La première macro fonctionne parfaitement quand je compare deux colonnes.
    Par contre comment faire pour récupérer lors de la comparaison des informations sur la même ligne ?

    Par exemple une adresse un code postal ou un nom.

    Merci d 'avance

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if c is nothing then sheets("feuil1").rows( sheets("feuil1").range("A65536").end(xlup).row+1).value=sheets("feuil2").rows(v.row).value

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Par défaut Complements
    Merci c 'est super !
    Je comprends pas tout mais ça marche très bien.

    Sans abuser , est t 'il possible de récupérer les informations de manières sélective ?
    C 'est a dire certaines valeurs de la ligne et pas toute la ligne ?

    Par exemple je compare deux tableaux avec une référence commune, mais je ne veux récupérer que certaines informations de la ligne et donc des colonnes très précises.

    Merci parce que ça me permet d 'apprendre sur des cas concret .

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Je vais essayer d'éclater le code et de le commenter
    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
    Dim c As Range, v As Range
    Dim LastLig1 As Long, LastLig2 As Long
     
    LastLig2 = Sheets("feuil2").Range("A65536").End(xlUp).Row  'Dernière ligne de données de feuil2
     
    With Sheets("feuil1")
        LastLig1 = .Range("A65536").End(xlUp).Row  'Dernière ligne de données de feuil1
        For Each v In Sheets("feuil2").Range("A1:A" & LastLig2)   'pour chaque cellule v de la colonne A de feuil 2
     
            Set c = .Range("A1:A" & LastLig1).Find(v, LookIn:=xlValues, lookat:=xlWhole) 'on cherche v dans colonne A de feuil1
            If c Is Nothing Then                                    'Si v est non trouvée
                LastLig1 = LastLig1 + 1
                .Rows(LastLig1).Value = Sheets("feuil2").Rows(v.Row).Value   'on fait la copie
                'ou bien Sheets("feuil2").Range(v.Address & ":" & v.Offset(0, 5).Address).Copy .Range("A" & LastLig1)
            End If
        Next v
    End With
    Set c=nothing
    Set v=Nothing
    tu as la cellule de la donnée recherchée, tu peux copier n'importe quelle cellule à partir de v
    par exemple dans le code ci-haut toute la ligne de v est copié
    auparavant, seulement la cellule v est copiée
    tu peux adapter, regarde du coté v.offset(0,n)
    c'est la cellule se trouvant sur la même ligne que v est décalée de n colonnes

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

Discussions similaires

  1. Comparer deux feuilles et supprimer les doublons
    Par Lison Lisette dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 13/10/2010, 22h35
  2. Réponses: 1
    Dernier message: 03/12/2009, 11h52
  3. comparer deux chaines contenues dans les cellules de deux tableaux
    Par ellewided dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 22/07/2009, 11h03
  4. Comparer deux tableau
    Par themadmax dans le forum C#
    Réponses: 12
    Dernier message: 13/03/2008, 13h38
  5. Comparer deux tableau virtuel
    Par PrinceMaster77 dans le forum ASP
    Réponses: 1
    Dernier message: 19/02/2007, 23h40

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