
Este ejemplo de macro que voy a exponerles el día de hoy, es una aplicación sencilla para hacer una conciliación de cuentas bancarias, es decir, comparar para ver que todos los registros que tenemos en contabilidad, se ven reflejados en movimientos de los extractos bancarios.
Esta macro se encargará de comparar los valores de contabilidad y los bancos, con el fin de mostrarnos dónde hay coincidencias, y en donde hay diferencias, para que una vez filtradas, podamos empezar a indagar la razón de estas discrepancias.
Te invitamos a seguir leyendo las siguientes páginas sobre cómo construir esta macro:
Estructura de la información
Entrando en materia, creamos una hoja de Excel, donde ponemos en la columna A, los datos que tenemos en Contabilidad, y en la columna C, los datos de los extractos bancarios:

Creamos un botón al lado de estos datos, para correr la macro cuando tengamos los datos disponibles:

Código VBA de la macro
Ahora creamos las siguientes macros:
' Macro que se encarga de comparar los datos de de consignaciones en Contabilidad, ' contra los registros de los extractos bancarios Sub conciliar() Dim f As Integer, c As Integer, tmp As Integer, j As Integer Dim encontrado As Boolean f = 2 j = 2 tmp = 2 'Se limpian las columnas B y D y se ordenan ascendentemente los datos en las columnas A y C Call limpiar ' Ahora se recorren uno a uno los registros de contabilidad de la columna A While (ActiveSheet.Cells(f, 1) <> "") encontrado = False j = tmp ' Para cada registro de contabilidad de la columna A, se comparan con los registros ' de bancos en la columna C While (ActiveSheet.Cells(j, 3) <> "") And Not encontrado And ActiveSheet.Cells(j, 4) = "" If ActiveSheet.Cells(f, 1) = ActiveSheet.Cells(j, 3) Then ' Una vez se encuentra coincidencia en los valores, se marca en la columna D la fila de coincidencia, ' en contabilidad encontrado = True ActiveSheet.Cells(j, 4) = f tmp = j + 1 End If j = j + 1 Wend ' Si luego de recorrer la columna de bancos, el registro de contabilidad no se encuentra, ' se marca con el símbolo $ en la columna B If Not encontrado Then ActiveSheet.Cells(f, 1).Interior.ColorIndex = 6 ActiveSheet.Cells(f, 2) = "$" End If f = f + 1 Wend f = 2 ' Los registros de bancos, no coincidentes, se marcan con un color magenta y el símbolo # While (ActiveSheet.Cells(f, 3) <> "") If ActiveSheet.Cells(f, 4) = "" Then ActiveSheet.Cells(f, 4) = "#" ActiveSheet.Cells(f, 3).Interior.ColorIndex = 7 End If f = f + 1 Wend End Sub
Sub limpiar() ' ' Esta macro se encarga de limpiar las columnas B y D, y ordenar en forma ascendente, ' los datos de las columnas A y C Range("B:B").Select Selection.Clear Range("D:D").Select Selection.Clear Cells.Select Selection.Interior.ColorIndex = xlNone Range("A1").Select Call ordenacion End Sub
Sub ordenacion() 'Esta macro ordena en forma ascendente los datos de las columnas A y C Columns("A:A").Select Range("A1").Activate Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes _ , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom Columns("C:C").Select Range("C1").Activate Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlYes _ , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom End Sub
Finalmente asignamos la macro conciliar(), al botón Conciliar que creamos en la hoja de excel.
También puedes leer Encontrar datos repetidos en una tabla de Excel o de una base de datos
Resultados de la conciliación
Así pues al oprimir el botón Conciliar, obtenemos unos resultados tal y como se muestra a continuación:

Si filtramos la columna B con el símbolo $, encontramos los registros que están en contabilidad, pero no se ven en bancos:
Si ahora filtramos por la columna D con el símbolo #, encontramos los registros de bancos que no están en la contabilidad:
Con este ejemplo quise ilustrar la forma en la que un proceso manual de comparación, se puede automatizar fácilmente con Excel, para hacer más rápido el proceso, minimizando la cantidad de errores humanos.
También te puede interesar el artículo Consolidar varias hojas de Excel con datos de ventas en una sola hoja
Este artículo hace parte del servicio de divulgación de conocimiento económico de Vendiendo.co.

Vendiendo.co es un servicio para tu punto de venta, muy sencillo de manejar, muy económico, con grandes prestaciones para ayudarte a crecer tu negocio.
Ven y conócenos hoy mismo en www.vendiendo.co.