A decir verdad, me resulta difícil encontrar una razón para reproducir -vía VBA- lo que ya hace MS Excel en forma natural...
Cabe aclarar que dado que MS Excel usa un lenguaje de programación de nivel más bajo que VBA, siempre será más rápido y eficiente que cualquier macro.
Por esta razón y por exceder en utilidades a lo que solicitas te explico a continuación cómo resolver tu problema con una tabla dinámica.
Una Tabla Dinámica es una herramienta de MS Excel para obtener un reporte agrupado de distintas maneras basado en datos incluidos en una tabla o base de datos.
Es dinámica porque, una vez armada, permite agregar, mover, o eliminar campos en ella hasta lograr el reporte deseado.
Para armarla, sigue los siguiente pasos:
¿1.? Es necesario que cada columna tenga un titulo único, aún aquellas que estuvieran vacías.
Selecciona tu lista desde esta primera fila (títulos) hasta el último registro en ella. Continúa resaltando este rango para que futuros registros (if any)se incluyan en la Tabla dinámica.
Mantenla seleccionada.
2. - Pulsa el botón en "Datos" encontrado en la barra del menú principal y selecciona "Asistente de tabla dinámica".
3. - Una ventana pide seleccionar la fuente de los datos. Marca "Lista o base de datos de MS Excel".
4. - Si hubieras dejado tu rango seleccionado, se asumirá ésta como la base de datos fuente. En caso contrario, puedes seleccionar el área en este paso.
5. - Si usas una versión de Office 97 se mostrarán los títulos de las columnas en el próximo paso (en versiones posteriores, pulsa el botón Diseño). Verás, por ejemplo:
Numero de móvil
Nombre de la persona
Código departamento
Nombre departamento
Enero
Febrero
Marzo
...
Diciembre
Total
6. - El próximo paso depende de ti, porque esto es muy "personalizable". Sólo tienes que arrastrar etiquetas al área donde quieres que ellas sean mostradas.
Por ejemplo:
- Arrastra la etiqueta "Código departamento" al área de FILAS.
Pulsa dos veces el botón en la etiqueta arrastrada y marca "Ninguno" para "Totales"
- Arrastra la etiqueta "Nombre departamento" también al área de FILAS.
Pulsa dos veces el botón en la etiqueta arrastrada y marca "Automático" para "Totales", si no lo estuviera ya.
- Arrastra la etiqueta "numero móvil" al área de FILAS.
- Arrastra la etiqueta "Nombre de la persona" al área de FILAS.
Pulsa dos veces el botón en estas dos últimas etiquetas arrastradas y marca "Ninguno" para "Totales"
- Arrastra cada una de las etiquetas de meses al área de DATOS, si te interesa un detalle mensual de los importes. Caso contrario, deja sólo allí la de "Total"
Escoge a operador de la Suma.
(Nota: otras funciones posibles sobre campos numéricos son:
Contar
Promedio
Min
Max
Producto
Contar Números
Desvest
Desvestp
Var
Varp)
Presiona el botón "Siguiente"
7. - Selecciona dónde poner la tabla dinámica (puede ser en una hoja nueva, como solicitabas) y aprieta el botón del "Terminar".
Así conseguirás una tabla donde se consolidará los importes de cada mes (si lo hubieras colocado allí) por cada movil/propietario, y un subtotal por cada departamento.
Esto se parece bastante a lo que solicitabas y, como ves, no es necesaria ni una sola línea de programación.
Una ventaja adicional es que no es necesario repetir este procedimiento cada vez que cambien, se agreguen o quiten, datos de la base.
Bastará actualizar la tabla dinámica, con botón derecho del mouse sobre ella y eligiendo la opción "Actualizar datos"
Espero que mi extensa explicación haya sido clara.
De todos modos, existen artículos sobre ellas aunque suelen estar en Inglés.
Si esto no es un obstáculo, el mejor que pude encontrar está en:
http://www.techrepublic.com/article.jhtml?id=r00320001218det03.htmTambién puedes ver:
http://www.nulook.uneb.edu/train/tutorial/Spreadsheets/excel97/pivot.htmlAsegurate de copiar la dirección completa a tu navegador (si la pega desde aquí, a veces, suele cortarse)
---
Respecto al manual de Macros, hubiera ayudado que me indicaras una dirección dónde enviártelo.
De cualquier forma, el que tengo, lo obtuve de www.cybercursos.com.
Supongo que será como los que se ofrecen aquí y no sería de extrañar que ya lo tengas.
Como es un archivo tipo PDF necesitarás el Acrobat Reader para poder verlo. Si no lo tuvieras, no hay problema, es de distribución gratuita y puedes bajarlo de
http://www.adobe.com/products/acrobat/readstep2.htmlHasta donde pude ver, contiene un material interesante.
Tal vez quieras explorar estos sitios en busca de otras fuentes:
Este es un buen sitio, en castellano, para empezar:
http://www.portalvb.com/CursosVBAAp.asp?Ap=0000también, hallarás algo aquí:
http://www.excel-vba-access.com/vba-excel-tips-intro.htmhttp://www.uv.es/~perezsa/docencia/material/AdeitVBA/Word/ExcelVBA/
Espero que toda esta información te sirva y ayude a resolver tu problema.
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
A cambio de mi tiempo, sólo te pido dos cosas:
- Finaliza (con puntaje y comentario) esta pregunta
- Ingresa al sitio www.porloschicos.com y, si quieres,
presiona el botón de donación (es gratis).
Confío en que lo harás.