Excel - Comment aligner toutes les listes communes?

Problème

J'ai 4 colonnes. les deux premières colonnes (A et B) représentent la liste des chèques émis. alors les deux autres colonnes (C & D) sont une liste des chèques encaissés de la Banque. cela ressemble à ceci:

 A ---------- B ---------- C ---------- D ÉMIS ---- Montant ---- Encaissé --- 001 ------ 112.00 ------ 001 ------ 112.00 002 ------ 200.25 ------ 003 ------ 350.00 003 --- --- 350.00 ------ 004 ------ 512.00 004 ------ 512.05 ------ 005 ------ 200.10 005 ------ 200.05 - ---- 007 ------ 821.30 006 ------ 300.25 ------ 009 ------ 100.10 007 ------ 821.30 ------ 010 - ----- 500.00 008 ------ 254.23 009 ------ 100.00 010 ------ 500.00 

Maintenant, ce que je veux faire, c'est aligner tous les numéros de chèques courants des colonnes A et C. Et me faire savoir à la colonne E si le montant a la même valeur. qui ressemblera à ceci:

 A ---------- B ---------- C ---------- D ---------- E ÉMIS ---- Montant ---- Encaissé ---- montant ----- Valeur 001 ------ 112.00 ------ 001 ------ 112.00 ----- VRAI 002 - ---- 200.25 003 ------ 350.00 ------ 003 ------ 350.00 ----- VRAI 004 ------ 512.05 ------ 004 - ---- 512.00 ----- FAUX 005 ------ 200.05 ------ 005 ------ 200.10 ----- FAUX 006 ------ 300.25 007 - ---- 821.30 ------ 007 ------ 821.30 ----- VRAI 008 ------ 254.23 009 ------ 100.00 ------ 009 - ---- 100.80 ----- FAUX 010 ------ 500.00 ------ 010 ------ 500.00 ----- VRAI 

Solution

Hypothèses

  • 1. Le nombre maximal de lignes de données se trouve dans la colonne A
  • 2. Au moment de l'exécution de la macro, la feuille active est la feuille avec les données

 Sub AlignAndAccount () Dim lMaxRows As Long Dim lRowBeanCounter As Long Columns ("A: B"). Sélectionnez Selection.Sort _ Key1: = Range ("A2"), Order1: = xlAscending, _ En-tête: = xlYes, OrderCustom: = 1, _ MatchCase: = False, Orientation: = xlTopToBottom, _ DataOption1: = xlSortNormal Columns ("C: D"). Sélectionnez Selection.Sort _ Key1: = Range ("C2"), Order1: = xlAscending, _ Header: = xlYes, OrderCustom: = 1, _ MatchCase: = False, Orientation: = xlTopToBottom, _ DataOption1: = xlSortNormal lMaxRows = Cellules (lignes, nombre, "A"). End (xlUp). Cellules droites (1, "E") ) = "Valeur" Pour lRowBeanCounter = 2 dans les cellules de cas de sélection lMaxRows (lRowBeanCounter, "A") Le cas est = Cells (lRowBeanCounter, "C") Si (Cellules (lRowBeanCounter, "B") = Cells (lRowBeanCounter, "C") )) Then Cells (lRowBeanCounter, "E") = "VRAI" Autres cellules (lRowBeanCounter, "E") = "FALSE" Fin si la case est <Cells (lRowBeanCounter, "C") Range ("C" & lRowBeanCounter & " : D "& lRowBeanCounter) .Sélectionnez Selection.Insert Shift: = Cellules" xlDown "(lRowBeanCounter, " E ") =" FALSE "Case Autre (" A "& lRowBeanCounter &": B "& lRowBeanCounter) .Sélectionnez Selection.Insert Shift: = xlDown lMaxRows = lMaxRows + 1 End Select Suivant lRowBeanCounter End Sub 

Remarque

Merci à rizvisa1 pour cette astuce sur le forum.

Article Précédent Article Suivant

Les Meilleurs Conseils