En oportunidades anteriores se han agregado ejemplos que recorren filas en busca de datos los cuales se sugiere ver a los fines de complementar, como por ejemplo: como ordenar datos, determinar la última fila o columna con datos, insertar filas, recorrer filas mediante un bucle, estos son algunos de los ejemplos donde se puede observar como se utilizan los códigos de VBA o macros de Excel a los fines de obtener el resultado deseado, en la categoría Macros VBA encontrarás muchos ejemplos que puedes adaptar a tu proyecto, un ejemplo reciente trata sobre ordenar los datos para luego trabajar con ellos.
Como es costumbre puedes descargar el ejemplo de la macro proporcionada, en forma gratuita, analizar su programación, adaptar a lo que requieras, para ellos debes descargarlo del link del final, sugiero que lo combines con algún otro ejemplo o ejemplos si necesitas adaptarlo a tu proyecto, el Código de VBA proporcionado aquí es libre.
Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.
Cuando abres el libro te encuentras con cuatro hojas una que se denomina, «OriginalOriginal», otra «Original», otra hoja que se llama «Coinciden» y por último una hoja que se titulo «No Coinciden»; la primer hoja se proporciona a los fines de poder observar varias veces como trabaja la macro de Excel; ya que una vez corrida la macro y ordenados los datos, se pueden eliminar de las otras tres hojas y copiar los datos de la hoja «OriginalOriginal» en la hoja «Original» y volver a correr la macro cuantas vece querramos.
Al presionar el botón se ejecuta un procedimiento de VBA que en primer lugar solicita mediante un ImputBox, que se ingrese la columna a Evaluar, en este caso es la columna «E», pero se puede seleccionar cualquier columna si están los datos en es columna, si se selecciona otra columna la macro no funciona, ya que los datos a evaluar están en la columna E en este ejemplo, se debe observar que se solicita al usuario establezca donde se encuentran los datos a evaluar, lo que hace la macro versátil, ya que se pueden cambiar de columna y la macro de VBA seguiría funcionando sin problema, aparte que se muestra en forma muy escueta el funcionamiento de ImputBox, que en este caso el valor ingresado se lo asigna a una variable para determinar el rango donde buscar los datos a evaluar.
En el libro de Excel se evalúa el registro de la primer columna que coincida con el registro de la fila siguiente y así sucesivamente hasta que llegue al último registro, es decir se recorren y comparan filas de la misma columna en caso de encontrar una coincidencia, el ejemplo tiene como criterio que la diferencia entre las filas seleccionadas de la misma columna, debe dar igual a cero; en caso verdadero, copia los datos en la hoja «Coinciden» caso contrario copia los datos en la hoja con «No Coinciden», eliminando los datos de las filas respectivas en la hoja «Original», a través del comando Delete. Los datos copiados son todos de la fila, es decir la fila completa; en este caso para pasar los datos de una hoja a la otra no se usa el comando «copy» «paste»; se hace que la fila y columna de hoja adonde se copian los datos sea igual a la fila y columna de origen de datos, es una variante en vez de copiar y pegar, que es bueno saber usar cuando se programa macros de Excel mediante VBA.
Sub comparafilas()
Dim fila, fila1, filaev, filade, conta, dato1, dato2, ncol As Integer
Dim col As String
MASTERCARD PAYONEER |
fila = 2
fila1 = 3
filaev = 2
filade = 2
conta = 0
col = InputBox(Chr(10) & Chr(10) & «Introduzca columna a evaluar, ej A, B, C, etc.»)
col = col & «1»
ncol = Range(col).Column
While Sheets(«Original»).Cells(fila1, ncol) <> Empty
dato1 = Sheets(«Original»).Cells(fila, ncol).Value
While Sheets(«Original»).Cells(fila1, ncol) <> Empty And conta = 0
dato2 = Sheets(«Original»).Cells(fila1, ncol).Value
If dato1 + dato2 = 0 Then
Sheets(«Coinciden»).Cells(filaev, 1) = Sheets(«Original»).Cells(fila, 1)
Sheets(«Coinciden»).Cells(filaev, 2) = Sheets(«Original»).Cells(fila, 2)
Sheets(«Coinciden»).Cells(filaev, 3) = Sheets(«Original»).Cells(fila, 3)
Sheets(«Coinciden»).Cells(filaev, 4) = Sheets(«Original»).Cells(fila, 4)
Sheets(«Coinciden»).Cells(filaev, 5) = Sheets(«Original»).Cells(fila, 5)
Sheets(«Coinciden»).Cells(filaev, 6) = Sheets(«Original»).Cells(fila, 6)
Sheets(«Coinciden»).Cells(filaev, 7) = Sheets(«Original»).Cells(fila, 7)
filaev = filaev + 1
Sheets(«Coinciden»).Cells(filaev, 1) = Sheets(«Original»).Cells(fila1, 1)
Sheets(«Coinciden»).Cells(filaev, 2) = Sheets(«Original»).Cells(fila1, 2)
Sheets(«Coinciden»).Cells(filaev, 3) = Sheets(«Original»).Cells(fila1, 3)
Sheets(«Coinciden»).Cells(filaev, 4) = Sheets(«Original»).Cells(fila1, 4)
Sheets(«Coinciden»).Cells(filaev, 5) = Sheets(«Original»).Cells(fila1, 5)
Sheets(«Coinciden»).Cells(filaev, 6) = Sheets(«Original»).Cells(fila1, 6)
Sheets(«Coinciden»).Cells(filaev, 7) = Sheets(«Original»).Cells(fila1, 7)
Sheets(«Original»).Cells(fila, ncol).EntireRow.Delete
Sheets(«Original»).Cells(fila1 – 1, ncol).EntireRow.Delete
conta = 1
filaev = filaev + 1
End If
fila1 = fila1 + 1
Wend
If conta = 0 Then
Sheets(«No Coinciden»).Cells(filade, 1) = Sheets(«Original»).Cells(fila, 1)
Sheets(«No Coinciden»).Cells(filade, 2) = Sheets(«Original»).Cells(fila, 2)
Sheets(«No Coinciden»).Cells(filade, 3) = Sheets(«Original»).Cells(fila, 3)
Sheets(«No Coinciden»).Cells(filade, 4) = Sheets(«Original»).Cells(fila, 4)
Sheets(«No Coinciden»).Cells(filade, 5) = Sheets(«Original»).Cells(fila, 5)
Sheets(«No Coinciden»).Cells(filade, 6) = Sheets(«Original»).Cells(fila, 6)
Sheets(«No Coinciden»).Cells(filade, 7) = Sheets(«Original»).Cells(fila, 7)
Sheets(«Original»).Cells(fila, ncol).EntireRow.Delete
filade = filade + 1
End If
conta = 0
fila1 = 3
Wend
End Sub
.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends