martes, 30 de junio de 2015

Contar la cantidad de celdas de un determinado color de fondo

En excel no existe una función predeterminada que nos permita contar la cantidad de celdas que contienen un determinado color de fondo. Sin embargo podemos realizar una función udf que nos permita realizar tal cosa haciendo uso de programación vba

Analisis:

Veremos en nuestra imagen inferior, dos bloques: el bloque A el cual contiene datos desde la celda A2:A12 cada celda con un determinado color (con colores repetidos), y por otro lado el bloque B con una lista de 3 colores únicos los cuales son iguales al del Bloque B.

La idea es contar la cantidad de veces que se repiten los colores del bloque B en el Bloque A, es como si fuera un contar.si pero con colores de fondo de una celda.


Antes de comenzar con nuestro código vamos a explicar que la manera de saber el color de fondo de una celda usando vba es a través del código interior.color que hace referencia a una celda.
Por ejemplo :
Al ejecutar el siguiente código nos muestra un mensaje con el numero de color de la celda .
De esta manera cada color podemos identificarlo con un numero. que en este caso para el amarillo sera 16777215

Sub ColorFondo()
MsgBox Range("A2").Interior.Color
End Sub

Bueno una vez analizado lo que se requiere, crearemos la funcion udf en vba.
Para lo cual ingresamos al editor de vba e insertamos un modulo en el cual escribiremos este codigo que a continuación pasaremos a explicar



Creamos nuestra función  llamada ContarColorRelleno y le colocamos dos parámetros de tipo Range: MatrizColores y ColorCriterio:

MatrizColores: Es la lista de colores que se va a contar, en este caso esta en nuestro bloque A
ColorCriterio: Es el color con el cual deseamos comparar la lista de colores. Este criterio seria nuestro bloque B.

codigo:
Function ContarColorRelleno(MatrizColores As Range, ColorCriterio As Range)
 La explicacion de cada linea del codigo se encuentra comentada de color verde.

Dim cont
Application.Volatile 'Permite actualizar la funcion al editar cualquier celda de la hoja
For Each celda In MatrizColores
    If celda.Interior.Color = ColorCriterio.Interior.Color Then ' Valida si el color es igual
        cont = cont + 1 'si es verdadero entonces incrementa la variable cont
    End If
Next
    ContarColorRelleno = cont 'Asignamos la cantidad de veces que se repite un color a la funcion

Una vez que hayamos finalizado con nuestro la sintaxis queda de la siguiente manera:

=ContarColorRelleno(MatrizColores,ColorCriterio)

Lo usaremos en la celda E2: =ContarColorRelleno($A$2:$A$12,D2)
De esta manera nos cuenta en E2 cuantas celdas de color amarillo existe en nuestro rango A2:A12
Y asi podemos realizarlo con la cantidad de celdas que nos haga falta.
Espero les haya sido de mucha utilidad este pequeño codigo. Pueden descargar el ejemplo en este enlance


sábado, 20 de junio de 2015

Unir todas las hojas de un libro de excel en una sola

En esta oportunidad haré entrega de una pequeña aplicación la cual cumple con la tarea de unir todas las hojas de un libro de excel en una sola.
Esto nos facilita el trabajo de realizarlo manualmente y nos ahorra tiempo.

Pasaré a explicar como funciona esta aplicación paso a paso.

Paso 1:
Presionar la combinación de teclas: Ctrl + H y se nos mostrara la siguiente ventana donde se cargara en una lista todos los libros abiertos para elegir a cual de ellos le vamos a unir sus hojas.


Paso 2:
En la parte que dice "Nombre de la hoja nueva" escribiremos el nombre de la hoja en la cual se unificara los datos de todas las hojas del libro seleccionado en el paso 1.



Paso 3 :
Por ultimo le daremos clic al botón unir el cual creara una nueva hoja con el nombre definido en el paso 2, y nos mostrara el siguiente mensaje.


El proceso ha finalizado y se realizo la consolidación de todas las hojas de nuestro libro en una sola hoja, tal como vemos en la siguiente imagen:



Consideraciones a tener en cuenta:
- Solo se puede seleccionar un solo libro por tarea.
- El aplicativo colocara el nombre de cada hoja en la primera columna.

Descargar aquí

domingo, 14 de junio de 2015

Abrir archivo de excel mediante formulario de login

Aqui se muestra un ejemplo en el cual mediante programacion vba creamos un formulario de login que nos pide ingresar el usuario y contraseña para abrir nuestro libro de excel.


Una vez ingresado los datos correctos y aceptamos, nos dirige hacia el archivo de excel que lo contiene.


Cargar multiples archivos txt en SSIS

 Fuentes Archivos planos Descargar AQUÍ los archivos Consulta SQL de creacion de tabla Despacho en SQL Server CREATE TABLE [dbo].[Despacho]...