BannerAnuncios

sábado, 15 de octubre de 2011

Cargar las Opciones de un ComboBox o Cuadro Combinado de Excel usando Macros y Filtros Avanzados.

Empezamos con el Curso Práctico de Programación de Macros en Excel. En esta primera sesión os mostraré el ejercicio que vamos a desarrollar y empezaremos a dar los primeros pasos en él. Entre otras cosas crearemos un ComboBox en el que cargaremos las opciones con una Macro.

Curso: Curso Práctico VBA.
Formato:Vídeo/Tutorial.
Archivos necesarios:Curso Práct 01...xlsm
Siguiente Sesión:Filtrar Datos...
Acceso al vídeo
en Youtube:
Empezamos un nuevo curso dedicado a la programación en Excel, pero este es un curso un poco especial, se trata de un curso orientado sobre todo a temas prácticos. Como ya sabéis muchos, anteriormente me dedicaba a impartir cursos presenciales de los mismos temas que desarrollo en el Blog y en el Canal y uno de los que impartía era el curso dedicado a la Programación de Excel. Durante ese curso, hacía dos tipos de sesiones, por un lado sesiones como las que ya he publicado en el Blog, en las que explicaba conceptos generales del lenguaje VBA. Y por otro lado también realizaba sesiones en las que iba desarrollando un ejercicio con el que practicamos todo lo visto en el otro tipo de sesiones, combinándolo con conceptos nuevos relacionados con las herramientas que más se suelen utilizar en Excel. Esta es la primera sesión dedicada a la creación de ese ejercicio.

Este curso sobre todo sirve para acercaros a la programación de Excel desde un punto de vista más práctico de lo que suelen ser los cursos de VBA en Excel. Vais a ver como manejar las herramientas más potentes de Excel desde una Macro con VBA. Es un ejercicio muy completo y creo que os va resultar realmente útil a la hora de resolver problemas reales que tengáis en vuestro trabajo. Para que os hagáis una idea se van a tratar temas como la importación de datos desde una base de datos de Access, la conexión de Excel con documentos de Word, creación de formularios, creación de Tablas Dinámicas y muchos temas más que creo que son muy  interesantes.

En el curso uso la versión 2007 de Excel, pero prácticamente al 100%, todo funcionará en las versiones posteriores, Excel 2010, 2013, etc... En esta sesión principalmente haremos lo siguiente:

  • Os muestro el ejercicio casi acabado, para que os hagáis una idea de lo que vamos a conseguir.
  • Os explicaré como añadir un ComboBox a una hoja de Excel.
  • Aprenderemos a crear filtros avanzados desde una Macro.
  • Los resultados que devolverán esos Filtros Avanzados los utilizaremos para cargar las opciones de un ComboBox, también desde una macro.

Todos mis vídeos son Gratis, pero si te gusta mi trabajo, puedes realizar una donación para que pueda continuar con este proyecto. Cualquier cantidad desde 1€/1$ es bienvenida. Gracias!!!!!!!!!!!!!!


Para seguir esta sesión podéis descargar el siguiente archivo que utilizo en el Vídeo.

61 comentarios:

  1. Te felicito por tan excelente tutorial, espero con emoción el siguiente para seguir conociendo

    ResponderEliminar
  2. Gracias.

    Ahora voy a empezar a preparar la segunda parte. Voy un poco retrasado para lo que quería haber publicad ya, pero hasta que no acabe de trabajar no hay manera.

    Saludos.

    ResponderEliminar
  3. Da error en excel 2010 en la línea
    Selection.AdvancedFilter Action:=xlFilterCopy, CopyRange:=Range("F1"), Unique:=True

    ResponderEliminar
  4. Hola Cando

    Te has comido un pequeño detalle no es "CopyRange", es "CopyToRange". A ver si solo es por eso.

    Saludos.

    ResponderEliminar
  5. Jejeje.

    No te fustigues. Es fácil saltarse algún detalle.

    Saludos.

    ResponderEliminar
  6. David, para cuando el siguiente.

    Estoy impaciente!!!!

    ResponderEliminar
  7. Hoy tengo que acabar todo lo del curso presencial y en cuanto lo tenga ya estoy disponble al 100% para el Blog. Tengo preparado un 50% o así. Osea que yo calculo que para el Martes podría estar.

    Saludos.

    ResponderEliminar
  8. Excelente trabajo que estas empezando a elaborar. Te auguro un éxito con este blog.

    ResponderEliminar
  9. Hola

    Gracias. Lo has dicho bien, estoy empezando, no se puede imaginar la gente lo que cuesta publicar nuevas sesiones.

    Saludos.

    ResponderEliminar
  10. Excelente video...muy interesante tu aporte...saludos desde Colombia

    ResponderEliminar
  11. David,
    Felicitaciones por tus conocimientos y muchas gracias por compartirlos.
    Saludos Cordiales y Grandes Exitos.
    Daniel Agüero.Santiago de Chile.16-05-2012

    ResponderEliminar
  12. amigo la verdad que te luces con estos curcillos que das la verdad que me has sacado de muchas incognitas ya que pues tenia mucho interes de iniciarme en esta tarea de programar

    ResponderEliminar
  13. hay alguna manera de que podes programar algo para que al momento de abrir algun archivo mio pida usuario y contraceña para poder iniciar el libro algo asi usando algun UserForm????

    ResponderEliminar
    Respuestas
    1. Por poderse se puede, pero no es algo corto de explicar y de hacer si lo que quieres es que dependiendo del usuario se puedan hacer unas cosas u otras. Si lo que quieres es poner contraseña de apertura al documento para que solo tú puedas entrar esto ya es más fácil.

      Saludos.

      Eliminar
  14. La verdad es que tu curso es super didáctico. Más que felicitarte tengo que agradecerte por compartirlo abiertamente.
    Voy para la parte 2

    ResponderEliminar
    Respuestas
    1. Muchas gracias!!!!!! Todavía te falta mucho para acabarlo.

      Saludos.

      Eliminar
  15. Buenos Dias mira estoy comenzando a ver los videos y en el primero de excel habla sobre que hay que bajar un archivo pero donde lo bajo porque no lo encuentro.Espero puedas ayudarme gracias.

    ResponderEliminar
    Respuestas
    1. Aquí mismo arriba, tienes una imagen de un disquete verde que si haces clic encima te permite descargarlo. Si no puedes, cambia de navegador o actualiza el que tengas, con Internet Explorer y Google Chrome funciona perfectamente.

      Cada sesión tiene los archivos necesarios puestos de la misma manera.

      Saludos.

      Eliminar
    2. ok muchas gracias que ciego soy jajajaja,

      Eliminar
    3. Tranquilo, si te sirve de consuelo no eres el primero que lo pregunta, jejejeje.

      Saludos.

      Eliminar
  16. Buenas Tardes estoy viendo los videos Si quiero aprender esto. los estoy viendo y al mismo tiempo haciendo el ejercicio pero mira estoy en el video 1 y coloque los datos en visual basic. asi .

    Sub CargarPaises()
    hojadatos.Select
    Range("A1").CurrentRegion.Select

    Selection.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("F1"), Unique:=True


    End Sub

    Pero me da el siguiente mensaje

    -Se ha producido el error'1004' en tiempo de ejecucion:

    Este comando requiere al menos dos filas de datos. No se puede usar en una seleccion con una unica fila. Intente lo siguiente:

    .Si esta sando un filtro avanzado, seleccione un rango de celdas con datos organizados en al menos dos filas. A continuacion, haga clic en el comando filtro avanzado .
    .Si esta creando un informe de tabla o de grafico dinamico.escriba.

    ResponderEliminar
  17. No tranquilo lo volvi hacer todo desde el principio y me salio bien la primera vez me debi haber saltado algo

    ResponderEliminar
  18. LOS TUTORIALES QUE PUBLICAS SON LOS MEJORES DE LA RED, MUCHAS FELICIDADES!!! DESDE MEXICO, SALUDOS

    ResponderEliminar
  19. buenos dias ke bueno ke di con tu blog me interesa mucho aprender excel

    comentas en tu primer video de BVA ke hay algunos archivos para descargar, en ke parte de blog se encuentran esos archivos ??
    saludos buen dia

    ResponderEliminar
    Respuestas
    1. Hola

      En cada sesión están los archivos para descargar. En esta sesión tienes arriba el documento de Excel que se necesita. Si no lo ves o no lo puedes descargar actualiza tu navegador o cambia a IE o Google Chrome. Con esos no hay ningún problema.

      Saludos.

      Eliminar
  20. Buenas tardes David, te molesto por la siguiente consulta, tengo listo un libro de excel 97-03, con varios macros (userform,etc)en VB, y me gustraía que cada hoja tenga los nombre de filas y columnas fijas , asi como diferentes colores. La idea es que al abrir el libro se mantenga ese formato y que no se pueda modificar por otro usuario.
    Muchas Gracias. Antonio

    ResponderEliminar
    Respuestas
    1. Te comento, al ser una duda personal o trabajo lo que me pides se rige por las normas que puedes leer en el siguiente enlace. De todas las maneras ya te aviso que es prácticamente imposible proteger al 100% un libro. Si alguien se lo propone se acaba consiguiendo y quizás más si cabe en las versiones 97-2003.

      http://davidasurmendi.blogspot.com.es/p/contacta-con-david-asurmendi-ochoa.html

      Eliminar
  21. Excelente trabajo y sobretodo muy didáctico y mucha paciencia al explicarlo. Mis felicitaciones desde Bolivia, si en algo puedo colaborar me avisas, al mismo tiempo aprendo.
    Felipe. fverae@hotmail.com

    ResponderEliminar
  22. David.
    Gracias por compartir parte de tu conocimiento.
    Excelente Material.

    ResponderEliminar
  23. lo que haces no tiene nombre, estoy cansado de pasearme de web en web y de foro en foro pero contigo cambia mi concepto de la programación ,haces fácil lo difícil y parece que adivines las dudas antes de que preguntemos un 10 con muchos plus para ti.estoy en murcia y me gustaría saber si impartes seminarios o cursos cerca.para poder asistir o al menos intentarlo

    ResponderEliminar
  24. Gracias Fran!!!!

    Pues parte de lo que comentas creo que lo da la experiencia. Son casi 12 años impartiendo cursos y al final el que más aprende soy yo por todo lo que se me pregunta. Por eso te puede dar esa sensación de adelantarme a las dudas, porque en este tiempo me han preguntado muchas cosas ya, jejejeje.

    Luego también está el concepto de formar que tiene cada uno. Hay gente que piensa que repito mucho las cosas o que voy lento, pero es la única manera que hay de no descolgar a mucha gente.

    Y muchos más cosas pero tampoco quiero aburrirte... En cuanto a lo de los cursos cerca de Murcia pues lamentablemente no. Solo imparto cursos por Navarra y al paso que vamos ya ni por aquí, porque cada vez esta peor.

    De todas las maneras lo que os doy aquí, es lo que os daría en un curso presencial, no me guardo nada bajo la manga. La única ventaja de los presenciales es que como tengo todo el material preparado, lo doy completo. Aquí como hay que grabar, editar, publicar, etc... pues es más lento. Bueno, eso y el tema de dudas, preguntas, etc... que siempre mejor en un presencial.

    Saludos.
    David Asurmendi Ochoa.

    ResponderEliminar
  25. David como descargo los archivos para desarrollar los ejercicios? ya vi todos los videos pero no he podido practicarlos por que no se como descargar los archivos, por sierto que cursos mas buenos, muchas gracias.

    ResponderEliminar
    Respuestas
    1. Aquí mismo, arriba tienes una imagen con un disquete verde. Haz clic encima y lo descargas. Si no puedes actualizar tu navegador, igual ahí está el problema.

      Cada sesión del Blog tiene los archivos para descargar en el mismo sitio.

      Saludos.

      Eliminar
  26. hola amigo david......muy buenos sus tutoriales.......pero la verdad se muy poco sobre las funciones que cumplen cada una de esas aplicaciones que se usan en vba como userforme y todos los demas....no tiene un archivo que me pueda mandar al correo para conocer mas detalladamente la funcion de cada una de estas......mi correo es Wiston.98@hotmail.com

    ResponderEliminar
    Respuestas
    1. Hola

      No, no tengo nada para enviarte. De todas las maneras si no has tocado nunca VBA deberías empezar por el curso de VBA en Excel 2010 que empieza desde el principio.

      Saludos.

      Eliminar
  27. Selection.AdvancedFilter Action:=xlFilterCopy, CopytoRange:=Range("F1"), Unique:=True

    Como hago para que la columna F quede ordenada ascendentemente (ya seaN palabras o números)

    ResponderEliminar
    Respuestas
    1. Hola

      Pues así de memoria no recuerdo como se hace, pero ahora mismo no te puedo mirar como sería. Puedes hacer lo mismo que yo haría para darte la respuesta, grabar una macro que ordene esos datos y ahí tendrás la respuesta.

      Ahora mismo no dispongo de tiempo para responderos dudas que se salgan de los que son los vídeos.

      Saludos.

      Eliminar
  28. HOola .. recién estoy entrando al mundo de excel y pienso realizar todo lo que estas enseñando en tus tutoriales ... pero mi curiosidad sobre el primer video que acabo de ver es como creaste la hoja analisis es decir como isiste ese formato de poder colorear las hojas .. por fa si pudieras ayudarme aunqesea por escrito.. soy muy buen entendedor. gracias por tu curso.. (y) esta muy bueno!!!!

    ResponderEliminar
    Respuestas
    1. Hola Sandro

      Pues no lo tengo a mano pero creo recordar que no tenía mucho misterio. Simplemente colorear las celdas con colores de fondo.

      Y creo que quite las líneas de las celdas y los encabezados de filas y columnas. Esto se puede hacer en las opciones de Excel. En la sección avanzado.

      Saludos.

      Eliminar
  29. Soy coordinador de sorteos en mi trabajo y por lo tanto tengo una base de batos donde se registran cada sorteo, para saber cuando se necesita entregar cada componente esta base está ligada por fórmulas a la base, además de ligar le también los reportes de cada sorteo, pero como todo esta ligado el problema es que son archivos muy pesados, que me sugieres hacer para corregir este problema?

    ResponderEliminar
    Respuestas
    1. Hola

      Es que cada documento es un mundo y no en tods se puede hacer lo mismo. En programación lo que se suele hacer es desactivar el refresco de la pantalla mientras hace el trabajo, así ganas tiempo.

      O también se puede desactivar el cálculo automático de las fórmulas. En el momento que modificáis una celda se re calcula todo otra vez y eso es mucho trabajo.

      Pero ya te digo que hay que ver como es cada documento para ver que se puede hacer.

      Saludos.

      Eliminar
  30. Buenas, primero felicitarte por tan grande aporte, recien me estoy empapando con buen material sobre Vbe, ya que hay gran cantidad pero a mi parecer muy ambiguo o desarrollado para personas con grandes conocimientos de esta herramienta.
    David me tira un error aqui:
    Do Until Cells(Fila, "F") :""
    que es lo que sigue despus del parentesis, que no es muy visible y muchas gracias

    ResponderEliminar
    Respuestas
    1. Gracias!!!!!!!!!!!

      La línea es así:

      Do Until Cells(Fila, "F") = ""

      De todas las maneras cuando tengas alguna duda sobre lo que pone, bájate el archivo de la siguiente sesión, en este caso el de la dos, que ahí está el código de la anterior.

      Saludos.

      Eliminar
  31. hola Experto;
    Primero felicitarte por tus videos que son un gran aporte,
    Segundo, tengo un problema con una macro, el trabajo es sencillo, se trata de copiar y pegar datos de LIBRO1 a LIBROMATRIZ, LIBRO2 a LIBROMATRIZ, LIBRO3 a LIBROMATRIZ,el cual LIBROMATTRIZ es que almacena toda la data, todos archivos estan guardados en una carpeta, ahora, el problema que tengo es que dependo de que todos los libros esten en la carpeta, ya que si falta uno de ellos me sale un error y la macro se detiene, COMO PUEDO CAPTURAR EL ERROR SI ES QUE FALTA UNO DE ELLOS

    ResponderEliminar
  32. Hola

    Con las instrucciones On Error puedes controlar que quieres que pase cuando se produce un error. De todas las maneras yo lo que haría es comprobar si el archivo existe antes de hacer el trabajo correspondiente.

    Saludos.

    ResponderEliminar
  33. Excelente! Muy buen ejercicio, Muchas gracias.
    Dios te bendiga.

    ResponderEliminar
  34. Excelente! Muy buen ejercicio, Muchas gracias.
    Dios te bendiga.

    ResponderEliminar
  35. Buen Dia David
    Gracias infinitas en el ejemplo que adjuntas ,tengo una granduda , como sabe elprograma que la columna que debo filtrar la columna paises?
    Independiente de la duda cuando aplico f5 recibo el error 1004 en tiempo de ejecucion
    Error definido por la aplicacion o el objeto
    la sentencia que escribo es
    Selection.AdvancedFilter Action:=xlFilterCopy, COPYTOTANGE:=Range("F1"), uNIQUE:="True"

    ResponderEliminar
  36. Hola buenas tardes..Muchas gracias por el curso, es excelente... tengo un problema... me da error 424:en tiempo de ejecución, se requiere un objeto...
    HojaAnalisis.cboPaises.AddItem Cells(Fila, "F")

    ResponderEliminar
    Respuestas
    1. Revisa si tienes el nombre de la hoja y del cuadro combinado bien puestos, si coinciden con lo que has puesto en el código. Si sigue envíamelo a davidasurmendi@gmail.com

      Saludos.

      Eliminar

Nota: solo los miembros de este blog pueden publicar comentarios.