comparer 2 listes de comptes

ptite_linda

XLDnaute Junior
Bonjour,

A partir de 2 listes de comptes sur 2 feuilles différentes:
A B C D
7011000 70110000 30 286 994,39
7011010 70110010 4 830 415,32
7019000 70110100 5 138 071,08
7019010 70110600 209 037,38
7019011 70110610 19,20
7011020 70113000 1 776 679,23
7019020 70113010 0,00
7019030 70190000 28 110 751,69
7011040 70190200 20 614 141,30
7019040 70190600 265 351,82
7011060 70190700 4 882,80
7019060 70712000 2 503 496,69

Je voudrai comparer les 2 listes de comptes et tester :
si le compte de la colonne C est égal à celui de la colonne A, alors mettre la valeur correspondante de la colonne D dans B, et supprimer la ligne dans le deuxième tableau.

Sachant que dans la colonne A les comptes ne sont pas dans l'ordre croissant, et que certains comptes de la colonne C n'existent pas dans A.
Si le compte de la colonne C n'existe pas dans A, on passe à la ligne suivante.

Comment puis-je faire?
 

ptite_linda

XLDnaute Junior
Re : comparer 2 listes de comptes

On comprend mieux comme ça

A------------b--------c-----------------d
7011000-----------70110000-------30 286 994,39
7011010-----------70110010-------4 830 415,32
7019000-----------70110100-------5 138 071,08
7019010-----------70110600-------209 037,38
7019011-----------70110610-------19,20
7011020-----------70113000-------1 776 679,23
7019020-----------70113010-------0,00
7019030-----------70190000-------28 110 751,69
7011040-----------70190200-------20 614 141,30
7019040-----------70190600-------265 351,82
7011060-----------70190700-------4 882,80
7019060-----------70712000-------2 503 496,69
 

Tibo

XLDnaute Barbatruc
Re : comparer 2 listes de comptes

Salut ptite linda,

Je suis comptable et je vois bien que j'ai à faire à des numéros de comptes.

Mais j'ai du mal à comprendre le traitement que tu veux leur faire "subir".

Peux-tu joindre ton fichier sur cjoint.com avec, d'un côté ce que tu as, d'un autre côté, ce que tu veux.

On essaiera ensuite de trouver les formules adéquates entre les deux. A moins qu'il ne faille passer par un traitement VBA...


@+
 

Kobaya

XLDnaute Occasionnel
Re : comparer 2 listes de comptes

salut ptite_linda,

j'espère que tu as bien recollés tes cheveux :p


plusieurs précisions:

dans :
A------------b--------c-----------------d
7011000-----------70110000-------30 286 994,39

que contiennent exactement les colonnes A, B, C et D ?
la colonne B est-elle vide ?

peux-tu trier tes données ?
peut-il y avoir des doublons ?
 

porcinet82

XLDnaute Barbatruc
Re : comparer 2 listes de comptes

Salut ptite_linda, Tibo,

J'etais persuadé d'avoir répondu hier sur un fil similaire mais j'ai sans doute rêvé.
Donc ce que j'aurais mis hier si j'avais répondu, c'est que tes comptes en colonne A et ceux en colonne C ne compte pas le même nombre de chiffres (colonne A : 7 chiffres et colonne C : 8 chiffres) donc sauf erreur de ma part, tes numéros de comptes ne seront jamais égaux.

Voili, voilou,

@+

Edition : Salut Kobaya, le temps de rédiger...
 

Kobaya

XLDnaute Occasionnel
Re : comparer 2 listes de comptes

salut porcinet82,

je m'aperçois que je n'avais pas bien lu la question de notre amie Linda.
si un article enfant peut avoir plusieurs articles parents, VLookUp() ne ramènera que le premier qu'il trouvera...
 

ptite_linda

XLDnaute Junior
Re : comparer 2 listes de comptes

oui je sais, en fait on exporte une balance de la compta sur 8 chiffres dans un tableur excel et on la retraite pour l'avoir sur 7 chiffres.
J'ai un fichier excel avec les comptes pour calculer le prix de revient.
On veut insérer les valeurs de la balance dans notre fichier excel en comparant les comptes à l'aide d'une macro.
ci-joint le fichier excel:

http://cjoint.com/?hmpCMALa8S
 

porcinet82

XLDnaute Barbatruc
Re : comparer 2 listes de comptes

re,

Je veins de regarder tes 2 fichiers et je ne comprends pas trop ce que tu veux qu'on fasse. Je ne reconnais pas la structure de ton exemple.

De plus j'ai essayer la macro liée au bouton import Balance et chez moi ca ne focntionne pas du tout. Soit il plante car il me ferme le fichier dans lequel se trouve la macro. J'ai essayer de l'executer pas a pas et je pense que ca merdouille dans le debut de ton code, il doit y avoir un problème de sélection de fichier qui fai tout merder par la suite :
PHP:
    Workbooks.Open Filename:=NomFic  'sert à ouvrir un autre fichier
    Sheets(1).Select  'feille 1 du classeur
    Sheets(1).Copy after:= _
        Workbooks("pxrt2.xls").Sheets(Workbooks("pxrt2.xls").Worksheets.Count)
    ActiveWindow.ActivatePrevious  'la dernière feuille ouverte
    ActiveWindow.Close  'fermer la feuille
    ActiveSheet.Name = "EC10"

@+
 

ptite_linda

XLDnaute Junior
Re : comparer 2 listes de comptes

ci-joint le fichier une fois la balance importée de la compta, quand on lance la macro, elle doit comparer les comptes de la feuille saisie colonne A avec les comptes de la feuille EC10 colonne A, et si ils sont égaux, elle calcule dans la feuille EC10 le débit - crédit pour les comptes 6, et crédit - débit pour les 7, et va mettre le résultat dans la feuille saisie colonne D.
Une fois le résultat copié, la ligne dans EC10 est supprimée, il ne reste à la fin que les comptes qui n'ont pas été trouvés.

La macro ne marche pas correctement, je ne comprend pas ce qu'il y a.
les valeurs pour les comptes 6 apparaissent en négatif.
La ligne 443 qui normalement est une somme, s'efface quand on exécute la macro.


fichier pxrt2 avec la balance importée:
http://cjoint.com/?hnkbngqdBr

la balance:
http://cjoint.com/?hnkcKdg22D
 
Dernière édition:

porcinet82

XLDnaute Barbatruc
Re : comparer 2 listes de comptes

Salut ptite_linda,

Le code suivant devrait faire ce que tu souhaites, mais j'ai pas testé si les résultats donnés étaient correcte ou non.


PHP:
Sub test()
Dim i&, cel As Range
Application.Goto Sheets("saisie siege").Range("A7")
For i = 7 To Range("A65536").End(xlUp).Row
    If IsEmpty(Cells(i, 1).Value) Then GoTo fin
    With Sheets("EC10")
        For Each cel In .Range("A4:A" & Range("A65536").End(xlUp).Row)
            If Cells(i, 1).Value = cel Then
                Select Case Left(cel, 1)
                Case 6
                    Cells(i, 4).Value = cel.Offset(0, 1).Value - cel.Offset(0, 2).Value
                Case 7
                    Cells(i, 4).Value = cel.Offset(0, 2).Value - cel.Offset(0, 1).Value
                End Select
                cel.Offset(0, 3).Value = "x"
            End If
        Next cel
    End With
fin:
Next i
With Sheets("EC10")
    For i = .Range("A65536").End(xlUp).Row To 4 Step -1
        If .Cells(i, 4).Value = "x" Then .Rows(i).Delete
    Next i
End With
End Sub

Tiens nous au courant,

@+
 

Statistiques des forums

Discussions
312 400
Messages
2 088 087
Membres
103 711
dernier inscrit
mindo