excel comparer colonnes

chrystelle3103

XLDnaute Nouveau
bonjour,

et merci d'avance à tous ceux qui pourront m'aider

voila, dans le fichier joint, je voudrais comparer les 2 premieres colonnes des 2 onglets, et inserer dans le 2° onglet les lignes manquantes. De plus ce serait le top si ça se faisait automatiquement.

Vous pensez que c'est possible?:confused::confused::confused:
 

Pièces jointes

  • CLIENT EXPORT DE BASE test.zip
    12.5 KB · Affichages: 67
  • CLIENT EXPORT DE BASE test.zip
    12.5 KB · Affichages: 52
  • CLIENT EXPORT DE BASE test.zip
    12.5 KB · Affichages: 51

Catrice

XLDnaute Barbatruc
Re : excel comparer colonnes

Bonsoir,

Voir l'exemple dans le fichier joint.
A priori dans le fichier que tu as joint toutes les fiches sont identiques.

Qu'entends tu par : "De plus ce serait le top si ça se faisait automatiquement"
 

Pièces jointes

  • CLIENT EXPORT DE BASE test.zip
    20.8 KB · Affichages: 46
  • CLIENT EXPORT DE BASE test.zip
    20.8 KB · Affichages: 43
  • CLIENT EXPORT DE BASE test.zip
    20.8 KB · Affichages: 49
Dernière édition:

Catrice

XLDnaute Barbatruc
Re : excel comparer colonnes

Re,

J'ai reposté un fichier qui fait le tri sur le 2eme onglet dans le Post précédent.
J'ai également corrigé un petit bug.
Il faut donc utiliser cette derniere version et tester quelques cas de figures.
 

chrystelle3103

XLDnaute Nouveau
Re : excel comparer colonnes

Il y a apparement une erreur dans la macro, et moi les macros je comprends pas tout:

Sheets(Dest).Range("A1").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes

Si en plus on pouvait l'adapter dans un troisieme onglet qui s'appelera TVA et qui devra récuperer les infos de la colonne G à la colonne H, je vous en serais extrement reconnaissante.

Et pour finir dans un quatrième onglet qui s'appelera fiscal, ou il me faudrait les infos de la colonne D, F, et Jà R. Ou si c'est pas possible, tout, et je masquerais les colonnes dont je n'ai pas besoin.

Merci d'avance à tous.
 

Catrice

XLDnaute Barbatruc
Re : excel comparer colonnes

Bonjour,

Decidement, il y avait encore une petite coquille.
Sheets(Dest).Range("A1").Sort Key1:=Sheets(Dest).Range("A2"), Order1:=xlAscending, Header:=xlYes

J'ai mis à jour le fichier dans le précédent Post.

Pour les nouvelles questions, je n'ai pas compris ce qu tu voulais faire ?
Quoi doit aller où ?
Peux tu préciser ?
 

chrystelle3103

XLDnaute Nouveau
Re : excel comparer colonnes

Ci joint mon fichier avec tous les onglets dont j'ai besoin

seul défaut, toutes les colonnes sont reportées; n'est-il pas possible de choisir les colonnes qu'on veut reporter?

de plus, et j'abbuse, je le sais, je voudrais que le tri soit sur la colonne client et non pas code

merci d'avance
 

Pièces jointes

  • CLIENT EXPORT DE BASE test.zip
    25.7 KB · Affichages: 56
  • CLIENT EXPORT DE BASE test.zip
    25.7 KB · Affichages: 52
  • CLIENT EXPORT DE BASE test.zip
    25.7 KB · Affichages: 53

Catrice

XLDnaute Barbatruc
Re : excel comparer colonnes

Re,

Pas de probleme, on peut trier et transférer ce que tu veux où tu veux.
Pour reformuler, tu veux donc ventiler les datas de l'onglet données vers les onglets clients, Tva et Fiscal seulement si elles n'existent pas ?
Des fiches dans la feuille donnees vont s'ajouter ou se supprimer et celles des 3 autres onglets vont evoluer en fonction de ces évolutions.
Je regarde ça asap.
 

chrystelle3103

XLDnaute Nouveau
Re : excel comparer colonnes

je comprends et je confirme, c'est mon premier week end depuis longtemps. Vive la fin de la période fiscale!!!

Mais je me prends encore la tête pour mon boulot, j'aimerais tant pouvoir gérer plus facilement ma liste de clients
 

chrystelle3103

XLDnaute Nouveau
Re : excel comparer colonnes

j'ai essayé de me "dépatouiller" toute seule, j'ai donc acheté hier après midi un bouquin sur les fonctions, formules et macro pour excel 2007.

Mais impossible de comprendre la macro de Catrice!!!
Donc impossible de l'adapter completement à ce que je voudrais.

Un plan comptable ça va nickel, mais la (ou le ... je ne sais pas) vba c'est du chinois pour moi.

Au secours!!!
 

chrystelle3103

XLDnaute Nouveau
Re : excel comparer colonnes

Pour que la macro (excellente soit dit en passant) de Catrice tourne sur tous les onglets, j'ai fait ça :

Sub Test()
Source = "donnees"
Dest = "clients"
For Each X In Sheets(Source).Range("A2:" & Sheets(Source).Range("A65536").End(xlUp).Address)
With Sheets(Dest).Range("A2:" & Sheets(Dest).Range("A65536").End(xlUp).Address)
Set c = .Find(X.Value)
If c Is Nothing Then
Sheets(Source).Range(Sheets(Source).Cells(X.Row, 1), Sheets(Source).Cells(X.Row, 256).End(xlToLeft)).Copy Sheets(Dest).Range("A65536").End(xlUp).Offset(1, 0)
Else
Marqueur = 0
firstAddress = c.Address
Do
If X.Offset(0, 1) = c.Offset(0, 1) Then Marqueur = 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
If Marqueur = 0 Then Sheets(Source).Range(Sheets(Source).Cells(X.Row, 1), Sheets(Source).Cells(X.Row, 256).End(xlToLeft)).Copy Sheets(Dest).Range("A65536").End(xlUp).Offset(1, 0)
End If
End With
Next
Sheets(Dest).Range("b1").Sort Key1:=Sheets(Dest).Range("b2"), Order1:=xlAscending, Header:=xlYes
Dest = "TVA"
For Each X In Sheets(Source).Range("A2:" & Sheets(Source).Range("A65536").End(xlUp).Address)
With Sheets(Dest).Range("A2:" & Sheets(Dest).Range("A65536").End(xlUp).Address)
Set c = .Find(X.Value)
If c Is Nothing Then
Sheets(Source).Range(Sheets(Source).Cells(X.Row, 1), Sheets(Source).Cells(X.Row, 256).End(xlToLeft)).Copy Sheets(Dest).Range("A65536").End(xlUp).Offset(1, 0)
Else
Marqueur = 0
firstAddress = c.Address
Do
If X.Offset(0, 1) = c.Offset(0, 1) Then Marqueur = 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
If Marqueur = 0 Then Sheets(Source).Range(Sheets(Source).Cells(X.Row, 1), Sheets(Source).Cells(X.Row, 256).End(xlToLeft)).Copy Sheets(Dest).Range("A65536").End(xlUp).Offset(1, 0)
End If
End With
Next
Sheets(Dest).Range("b1").Sort Key1:=Sheets(Dest).Range("b2"), Order1:=xlAscending, Header:=xlYes
Dest = "Fiscal"
For Each X In Sheets(Source).Range("A2:" & Sheets(Source).Range("A65536").End(xlUp).Address)
With Sheets(Dest).Range("A2:" & Sheets(Dest).Range("A65536").End(xlUp).Address)
Set c = .Find(X.Value)
If c Is Nothing Then
Sheets(Source).Range(Sheets(Source).Cells(X.Row, 1), Sheets(Source).Cells(X.Row, 256).End(xlToLeft)).Copy Sheets(Dest).Range("A65536").End(xlUp).Offset(1, 0)
Else
Marqueur = 0
firstAddress = c.Address
Do
If X.Offset(0, 1) = c.Offset(0, 1) Then Marqueur = 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
If Marqueur = 0 Then Sheets(Source).Range(Sheets(Source).Cells(X.Row, 1), Sheets(Source).Cells(X.Row, 256).End(xlToLeft)).Copy Sheets(Dest).Range("A65536").End(xlUp).Offset(1, 0)
End If
End With
Next
Sheets(Dest).Range("b1").Sort Key1:=Sheets(Dest).Range("b2"), Order1:=xlAscending, Header:=xlYes
End Sub

ça marche nickel mais il y a peut être plus simple

Par contre ça me reprend toute la ligne pour les nouveaux clients et non pas seulements les colonnes dont j'ai besoin.

Une solution?
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
207

Statistiques des forums

Discussions
312 840
Messages
2 092 701
Membres
105 513
dernier inscrit
simo200100