Comparaison de 2 listes

Le
Michel MTO
Bonjour à toutes et tous,

j'ai un peu de mal à comparer 2 listes qui sont dans un même classeur mais
sur 2 feuilles différentes.
Voilà :

j'importe régulier d'un autre logiciel une liste de clients avec le code, le
nom, l'adresse, code postal, téléphone etc
(les données sont en lignes)
Il se peut que je rajoute manuellement à cette liste des clients en insérant
des lignes (à ce moment là ce sont des lignes qui n'existent pas qd
j'importe une nouvelle version de ma liste issue de mon logiciel externe)
Et vice versa, il se peut que dans mon import il y ait des lignes qui ne se
trouvent pas sur l'import précèdent.
Sachant que la comparaison doit se faire sur la colonne A qui contient tous
les codes (qui sont uniques), comment s'y prendre pour regrouper les 2
feuilles en une (par exemple on garderait la dernière feuille importée et on
y rajouterait les lignes saisies manuellement dans la version précèdente),
de manière à avoir une seule liste nettoyée des doublons.

J'espère avoir été clair

Merci par avance pour votre aide

Michel MTO
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #19626681
Bonjour,

Si tes deux listes ont mêmes entt et mêmes dispositions
tu colles effectivement les données de l'une en dessous de l'autre
puis
Donnée Filtre élaboré
Coches Sans Doublons
Copier vers autre emplacement Choisis une cellule
et Vas-y

Tu as ta nouvelle liste plus qu'à supprimer l'ancienne et coller celle
là à la place.

--
lSteph

On 24 juin, 11:29, "Michel MTO"
Bonjour à toutes et tous,

j'ai un peu de mal à comparer 2 listes qui sont dans un même classeur mais
sur 2 feuilles différentes.
Voilà :

j'importe régulier d'un autre logiciel une liste de clients avec le cod e, le
nom, l'adresse, code postal, téléphone etc...
(les données sont en lignes)
Il se peut que je rajoute manuellement à cette liste des clients en ins érant
des lignes (à ce moment là ce sont des lignes qui n'existent pas qd
j'importe une nouvelle version de ma liste issue de mon logiciel externe)
Et vice versa, il se peut que dans mon import il y ait des lignes qui ne se
trouvent pas sur l'import précèdent.
Sachant que la comparaison doit se faire sur la colonne A qui contient to us
les codes (qui sont uniques), comment s'y prendre pour regrouper les 2
feuilles en une (par exemple on garderait la dernière feuille importé e et on
y rajouterait les lignes saisies manuellement dans la version précède nte),
de manière à avoir une seule liste nettoyée des doublons.

J'espère avoir été clair

Merci par avance pour votre aide

Michel MTO


JB
Le #19627351
Bonjour,

Voir PJ
http://cjoint.com/?gynXFq3HrT

Sub synthese()
Set onglet1 = Sheets("BD1")
Set onglet2 = Sheets("BD2")
Sheets("recap").[A2:D10000].ClearContents
Range(onglet1.[A2], onglet1.[A65000].End(xlUp).Offset(0, 2)).Copy
Sheets("recap").[A2]
For Each c In Range(onglet2.[A2], onglet2.[A65000].End(xlUp))
p = Application.Match(c, [A:A], 0)
If IsError(p) Then
c.Resize(, 3).Copy [A65000].End(xlUp).Offset(1, 0)
End If
Next c
End Sub

JB
http://boisgontierjacques.free.fr/

On 24 juin, 11:29, "Michel MTO"
Bonjour à toutes et tous,

j'ai un peu de mal à comparer 2 listes qui sont dans un même classeur mais
sur 2 feuilles différentes.
Voilà :

j'importe régulier d'un autre logiciel une liste de clients avec le cod e, le
nom, l'adresse, code postal, téléphone etc...
(les données sont en lignes)
Il se peut que je rajoute manuellement à cette liste des clients en ins érant
des lignes (à ce moment là ce sont des lignes qui n'existent pas qd
j'importe une nouvelle version de ma liste issue de mon logiciel externe)
Et vice versa, il se peut que dans mon import il y ait des lignes qui ne se
trouvent pas sur l'import précèdent.
Sachant que la comparaison doit se faire sur la colonne A qui contient to us
les codes (qui sont uniques), comment s'y prendre pour regrouper les 2
feuilles en une (par exemple on garderait la dernière feuille importé e et on
y rajouterait les lignes saisies manuellement dans la version précède nte),
de manière à avoir une seule liste nettoyée des doublons.

J'espère avoir été clair

Merci par avance pour votre aide

Michel MTO


Michel MTO
Le #19627691
Merci LSteph
Méthode qui évite la prise de tête

Michel

"LSteph" news:
Bonjour,

Si tes deux listes ont mêmes entt et mêmes dispositions
tu colles effectivement les données de l'une en dessous de l'autre
puis
Donnée Filtre élaboré
Coches Sans Doublons
Copier vers autre emplacement Choisis une cellule
et Vas-y

Tu as ta nouvelle liste plus qu'à supprimer l'ancienne et coller celle
là à la place.

--
lSteph

On 24 juin, 11:29, "Michel MTO"
Bonjour à toutes et tous,

j'ai un peu de mal à comparer 2 listes qui sont dans un même classeur mais
sur 2 feuilles différentes.
Voilà :

j'importe régulier d'un autre logiciel une liste de clients avec le code,


le
nom, l'adresse, code postal, téléphone etc...
(les données sont en lignes)
Il se peut que je rajoute manuellement à cette liste des clients en


insérant
des lignes (à ce moment là ce sont des lignes qui n'existent pas qd
j'importe une nouvelle version de ma liste issue de mon logiciel externe)
Et vice versa, il se peut que dans mon import il y ait des lignes qui ne


se
trouvent pas sur l'import précèdent.
Sachant que la comparaison doit se faire sur la colonne A qui contient


tous
les codes (qui sont uniques), comment s'y prendre pour regrouper les 2
feuilles en une (par exemple on garderait la dernière feuille importée et


on
y rajouterait les lignes saisies manuellement dans la version précèdente),
de manière à avoir une seule liste nettoyée des doublons.

J'espère avoir été clair

Merci par avance pour votre aide

Michel MTO


Michel MTO
Le #19627681
Merci également à toi JB,

Propre, efficace et s'adapte à d'autres situations, cependant quelques
précisions s'imposent pour que je comprenne tout :

Je ne comprend pas ce code
p = Application.Match(c, [A:A], 0)
ni celui-çi
c.Resize(, 3).Copy [A65000].End(xlUp).Offset(1, 0)

Est ce qui te serait possible de me les commenter ?

En te remerciant par avance

Michel MTO

"JB" news:
Bonjour,

Voir PJ
http://cjoint.com/?gynXFq3HrT

Sub synthese()
Set onglet1 = Sheets("BD1")
Set onglet2 = Sheets("BD2")
Sheets("recap").[A2:D10000].ClearContents
Range(onglet1.[A2], onglet1.[A65000].End(xlUp).Offset(0, 2)).Copy
Sheets("recap").[A2]
For Each c In Range(onglet2.[A2], onglet2.[A65000].End(xlUp))
p = Application.Match(c, [A:A], 0)
If IsError(p) Then
c.Resize(, 3).Copy [A65000].End(xlUp).Offset(1, 0)
End If
Next c
End Sub

JB
http://boisgontierjacques.free.fr/

On 24 juin, 11:29, "Michel MTO"
Bonjour à toutes et tous,

j'ai un peu de mal à comparer 2 listes qui sont dans un même classeur mais
sur 2 feuilles différentes.
Voilà :

j'importe régulier d'un autre logiciel une liste de clients avec le code,


le
nom, l'adresse, code postal, téléphone etc...
(les données sont en lignes)
Il se peut que je rajoute manuellement à cette liste des clients en


insérant
des lignes (à ce moment là ce sont des lignes qui n'existent pas qd
j'importe une nouvelle version de ma liste issue de mon logiciel externe)
Et vice versa, il se peut que dans mon import il y ait des lignes qui ne


se
trouvent pas sur l'import précèdent.
Sachant que la comparaison doit se faire sur la colonne A qui contient


tous
les codes (qui sont uniques), comment s'y prendre pour regrouper les 2
feuilles en une (par exemple on garderait la dernière feuille importée et


on
y rajouterait les lignes saisies manuellement dans la version précèdente),
de manière à avoir une seule liste nettoyée des doublons.

J'espère avoir été clair

Merci par avance pour votre aide

Michel MTO


JB
Le #19629281
-On explore tous les codes de la seconde BD
-p = Application.Match(c, [A:A], 0) cherche la position du code dans
la colonne A de la recap
-Si le code n'existe pas p-> erreur
-Si le code n'existe pas, on ajoute la ligne avec:
-c.Resize(, 3).Copy [A65000].End(xlUp).Offset(1, 0) étend la cellule
sur 3 colonnes pour prendre les 3 cellules de la ligne et colle à la
fin de la recap

JB




On 24 juin, 14:36, "Michel MTO"
Merci également à toi JB,

Propre, efficace et s'adapte à d'autres situations, cependant quelques
précisions s'imposent pour que je comprenne tout :

Je ne comprend pas ce code
p = Application.Match(c, [A:A], 0)
ni celui-çi
c.Resize(, 3).Copy [A65000].End(xlUp).Offset(1, 0)

Est ce qui te serait possible de me les commenter ?

En te remerciant par avance

Michel MTO

"JB" Bonjour,

Voir PJhttp://cjoint.com/?gynXFq3HrT

Sub synthese()
  Set onglet1 = Sheets("BD1")
  Set onglet2 = Sheets("BD2")
  Sheets("recap").[A2:D10000].ClearContents
  Range(onglet1.[A2], onglet1.[A65000].End(xlUp).Offset(0, 2)).Copy
Sheets("recap").[A2]
  For Each c In Range(onglet2.[A2], onglet2.[A65000].End(xlUp))
    p = Application.Match(c, [A:A], 0)
    If IsError(p) Then
      c.Resize(, 3).Copy [A65000].End(xlUp).Offset(1, 0)
    End If
  Next c
End Sub

JBhttp://boisgontierjacques.free.fr/

On 24 juin, 11:29, "Michel MTO"


> Bonjour à toutes et tous,

> j'ai un peu de mal à comparer 2 listes qui sont dans un même classe ur mais
> sur 2 feuilles différentes.
> Voilà :

> j'importe régulier d'un autre logiciel une liste de clients avec le c ode,
le
> nom, l'adresse, code postal, téléphone etc...
> (les données sont en lignes)
> Il se peut que je rajoute manuellement à cette liste des clients en
insérant
> des lignes (à ce moment là ce sont des lignes qui n'existent pas qd
> j'importe une nouvelle version de ma liste issue de mon logiciel extern e)
> Et vice versa, il se peut que dans mon import il y ait des lignes qui n e
se
> trouvent pas sur l'import précèdent.
> Sachant que la comparaison doit se faire sur la colonne A qui contient
tous
> les codes (qui sont uniques), comment s'y prendre pour regrouper les 2
> feuilles en une (par exemple on garderait la dernière feuille import ée et
on
> y rajouterait les lignes saisies manuellement dans la version précè dente),
> de manière à avoir une seule liste nettoyée des doublons.

> J'espère avoir été clair

> Merci par avance pour votre aide

> Michel MTO- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Michel MTO
Le #19633871
Merci JB encore une fois pour tes explications très claires

Michel

"JB" news:

-On explore tous les codes de la seconde BD
-p = Application.Match(c, [A:A], 0) cherche la position du code dans
la colonne A de la recap
-Si le code n'existe pas p-> erreur
-Si le code n'existe pas, on ajoute la ligne avec:
-c.Resize(, 3).Copy [A65000].End(xlUp).Offset(1, 0) étend la cellule
sur 3 colonnes pour prendre les 3 cellules de la ligne et colle à la
fin de la recap

JB




On 24 juin, 14:36, "Michel MTO"
Merci également à toi JB,

Propre, efficace et s'adapte à d'autres situations, cependant quelques
précisions s'imposent pour que je comprenne tout :

Je ne comprend pas ce code
p = Application.Match(c, [A:A], 0)
ni celui-çi
c.Resize(, 3).Copy [A65000].End(xlUp).Offset(1, 0)

Est ce qui te serait possible de me les commenter ?

En te remerciant par avance

Michel MTO

"JB"

denews:
Bonjour,

Voir PJhttp://cjoint.com/?gynXFq3HrT

Sub synthese()
Set onglet1 = Sheets("BD1")
Set onglet2 = Sheets("BD2")
Sheets("recap").[A2:D10000].ClearContents
Range(onglet1.[A2], onglet1.[A65000].End(xlUp).Offset(0, 2)).Copy
Sheets("recap").[A2]
For Each c In Range(onglet2.[A2], onglet2.[A65000].End(xlUp))
p = Application.Match(c, [A:A], 0)
If IsError(p) Then
c.Resize(, 3).Copy [A65000].End(xlUp).Offset(1, 0)
End If
Next c
End Sub

JBhttp://boisgontierjacques.free.fr/

On 24 juin, 11:29, "Michel MTO"


> Bonjour à toutes et tous,

> j'ai un peu de mal à comparer 2 listes qui sont dans un même classeur


mais
> sur 2 feuilles différentes.
> Voilà :

> j'importe régulier d'un autre logiciel une liste de clients avec le


code,
le
> nom, l'adresse, code postal, téléphone etc...
> (les données sont en lignes)
> Il se peut que je rajoute manuellement à cette liste des clients en
insérant
> des lignes (à ce moment là ce sont des lignes qui n'existent pas qd
> j'importe une nouvelle version de ma liste issue de mon logiciel


externe)
> Et vice versa, il se peut que dans mon import il y ait des lignes qui ne
se
> trouvent pas sur l'import précèdent.
> Sachant que la comparaison doit se faire sur la colonne A qui contient
tous
> les codes (qui sont uniques), comment s'y prendre pour regrouper les 2
> feuilles en une (par exemple on garderait la dernière feuille importée


et
on
> y rajouterait les lignes saisies manuellement dans la version


précèdente),
> de manière à avoir une seule liste nettoyée des doublons.

> J'espère avoir été clair

> Merci par avance pour votre aide

> Michel MTO- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Publicité
Poster une réponse
Anonyme