En el material de hoy se explicará paso a paso el desarrollo de Macro en Excel para copiar datos a otra hoja con condición, en este caso la condición corresponde a que se debe verificar que el registro o fila en Excel que se copiará o que se enviará a la otra hoja de Excel, contenga en alguna de sus celdas una palabra o texto especifico, en otras palabras el registro se enviará si cumple la condición de tener en alguno de sus campos o celdas el texto deseado o buscado.las.

Este material se publica dando solución a una inquietud que realizó uno de los miembros de la Comunidad Triple EEE y en la resolución de esta participaron otros miembros de nuestra comunidad, los cuales se mencionan en el vídeo. Lo que se muestra hoy es una posible solución de esta inquietud, a través de una Macro en Excel para copiar datos, próximamente publicaremos otra forma de conseguir el mismo objetivo.

Especialistas En Excel
En este ejercicio de la Macro en Excel para copiar datos, la base de datos que utilizamos corresponde a una base de datos en Excel de una librería, la cual tiene varios campos, entre ellos uno de los campos es el de país, por tal razón seleccionamos este campo para que se envíe o copie la información cuando el dato del país almacenado cumpla con una condición específica, en el caso que se requiera que sea otro campo, solo es modificar el campo de referencia, el proceso lógico en Excel continua siendo el mismo.

Para desarrollar esta Macro en Excel para copiar datos a otra hoja con condición, se tuvieron en cuenta varios objetos o elementos de código VBA para cumplir el objetivo propuesto. En este material aprenderás varios puntos importantes en las macros en Excel con VBA, a continuación te describo lo que enseñamos en el presente vídeo:

– Declaración de variables con VBA en Excel
– Asignación de valores a variables VBA
– Identificar la última fila que contiene datos con VBA
– Ciclos en VBA o bucles en VBA
– Incremento de contador en Excel
– Aplicar formato a una celda con VBA
– Mensaje Msgbox en VBA
– Comodines en VBA

Para no perderte nada de lo que compartimos en las redes sociales, puedes seguirnos a través de los siguientes medios:

Youtube: https://goo.gl/FrswaC
Facebook: https://goo.gl/W5dIsa
Twitter: https://twitter.com/ee_excel
Instagram: https://goo.gl/xadGB5
Linkedin: https://goo.gl/Os1boH

A continuación el material de hoy:

Click >> Aquí << para descargar archivo Excel

1) Comunidad Triple EEE, Únete >> https://goo.gl/FrswaC

2) Suscríbete a este curso gratuito para aumentar tu productividad en Excel un 80% y obtén 4 regalos adicionales al suscribirte a este curso: http://goo.gl/zNqh0o

Artículos anteriores:

  1. Función SUBTOTALES en Excel
  2. Sumar en Excel con condiciones – Parte 3 de 4 – Excluyendo mes
  3. Sumar en Excel con condiciones – Parte 2 de 4 por período
  4. Sumar en Excel con condiciones – Parte 1 de 4 Listas desplegables
  5. Eliminar hoja en Excel solicitando contraseña con Macros VBA
  6. Identificar con Excel si es un carro o moto a partir de la placa
  7. Macro en Excel para buscar cualquier hoja
  8. Truco 5 de formato condicional en excel, Mostrar cumpleaños del mes
  9. Truco 4 de formato condicional en excel,Comparar dos listas en Excel
  10. Truco 3 de formato condicional en excel, Seleccionar filas con función BuscarV

49 Responses

  1. Gracias por tus enseñanzas. Tengo una consulta: es posible que al hacer una nueva busqueda, los datos de la hoja auxiliar se borren y solo queden los datos de la ultima busqueda.

    1. Hola Guillermo, claro, lo que harías es colocar una condición que borre los datos anteriores, vamos a pensar tu requerimiento para un futuro contenido. Síguenos para no perderte detalles. Saludos, gracias por comentar

      1. hola, yo también tengo esa duda, me podrían ayudar dándome un ejemplo de como hacerlo, para que pueda guiarme en la elaboración de un archivo personal.

    2. TE COMENTO, eso lo que pides es muy complicado, te lo digo porque yo apenas estaba buscando lo mismo que tu, en mi caso lo que hize fue primero copiar los datos en lugar de moverlos, primero los copie, luego volvi a hacer la comparacion y en este caso en vez de copiar los datos cambie la estructura para que borre los datos, primera orden, buscar y copiar, segunda orden, buscar y borrar

  2. Traté de hacer algo similar pero lo único q copia exactamente lo de la pagina1 a la pagina 2. No se que habré hecho mal. Cualquier ayuda se lo agradeceré.
    Los títulos serian:
    Nombre, fecha nacimiento, edad, dirreccion, teléfono, clasificación. (PAG.1)
    En la pag.2 serian:
    Nombre, fecha nacimiento, edad, dirreccion, telefono, telefono

    1. Hola Jesús, te recomendamos revisar el procedimiento que se muestra en el vídeo detenidamente. Gracias por comentar, saludos

  3. buenas tardes
    felicitaciones por este tema tan interesante, viendo el vídeo y el ejemplo que das se ajusta algo a una necesidad y problema que tengo y quisiera que me ayudaras a resolver, es el siguiente tengo una base de datos con información de 8 columnas (A:H) con un promedio de 300,000 registros, en las que quiero validar que si en la columna G contiene la palabra “alarma” y en la columna H la palabra “bóveda” (si cumple esta condición) que copie toda las filas desde la A:H a otra hoja. agradezco tu valiosa colaboración

  4. Buenos días,

    Estoy intentando hacer algo similar, pero me gustaría que pudiese buscar en todas las columnas la palabra ( en mi caso es una fecha). Agradecería si pudieses indicarme algún tutorial en el que no restringir el buscador a una columna.
    Gracias de antemano.
    Un saludo

  5. Hola,

    Estoy tratando de hacer algo similar, pero en vez de que compruebe solo una columna, que me mire en todas las que tengo el resultado buscado( en mi caso una fecha); es decir siguiendo su ejemplo, que detecte la palabra Francia tambien si esta escrita en cualquiera de las otras columnas. El resto del funcionamiento sería igual. Soy muy novato y no consigo dar con la solución, si pudiese dejarme algún tutorial orientativo o cualquier otra cosa se lo agradecería.
    Gracias
    Un saludo

  6. Tengo un archivo en el cual tengo varias hojas y quiero buscar cierto código en todas las hojas y me arroje cierta información que conforma ese código
    como puedo hacerlo?

  7. Hola Ing. Alfonso Lenis, tengo una duda, pasa que tengo que realizar una macro para recorrer las celdas una fila en la cual se encuestaran diferentes encabezados, y si alguna de estas cumple la condición de X celda, deberá copiar todo el contenido de la columna de esa celda que cumpla la condición…. mi duda es como seria el código para copiar dicha información de dicha coincidencia….

    Espero me pueda asesorar.

    saludos

    1. Hola Luis, éste vídeo es preciso para lo que necesitas. analiza la parte del ciclo For, lo que hace, es copiar todos los registros que cumplan dicha condición. Lo que debes hacer es:
      Utiliza el ciclo para recorrer los registros y encontrar la columna con una condición, guarda la columna(#Columna) en una variable
      Luego, utiliza otro ciclo For para copiar los registros de la columna como se muestra en el vídeo Sheets(“Auxiliar”).Cells(ultimaFilaAuxiliar + 1, 4), la diferencia será que si la columna fuera 4, solamente tendrías que colocar esa línea dentro del For.
      Esperamos que lo logres. Gracias por comentar. Saludos

  8. Distinguido Ing. tengo una una duda para que la búsqueda sea numero en ves de texto como seria el código. Gracias por su atención

    1. Hola, es igual, lo que se busca es una cadena de texto y una cadena de texto es un conjunto de caracteres incluido los nùmeros. Haz la prueba, esa es la mejor forma de confirmarlo, además de aprender algo nuevo por ti. Saludos, gracias por comentar.

  9. Buenas noches, tengo una aplicación para esta macro pero en lugar de buscar una palabra en concreto por ejemplo imperio yo quiero que de una lista (A … Z) haga la busqqueda primero para A luego B y así sucesivamente hasta llegar a Z, es decir que la palabra a buscar vaya variando y entregandome esa informacción, es osible?

    1. Hola Romano, claro que es posible, lo que te refieres es un ciclo, si ya tienes el resultado de una letra, ese proceso se coloca dentro de un ciclo For por ejemplo y asignar en un vector las letras y cambiarlas con cada vuelta del ciclo.

      ‘ declaración de vector
      Dim abc(1 to 32) As String

      ‘ asignación de las lestras … hasta la z
      abc(1) = “a”
      abc(1) = “b”
      abc(2) = “c”

      For x = 0 To 32
      ‘ AUÍ EL PROCESO PARA BUSCAR LA PALABRA
      MsgBox “LETRA ” & abc(x)
      Next x

  10. Buenas tardes
    En primer lugar enhorabuena por vuestros tutoriales, realmente son fantásticos. Tenía una consulta que haceros al respecto de este vídeo porque se acerca a un tipo de libro que estoy desarrollando pero no termino de dar con la manera. Os cuento el caso:
    Tengo una hoja de excel que a esta separada en diferentes bloques en este caso es una empresa de audiovisuales y eventos. Esa hoja nos sirve para determinar todos los artículos que para un evento harán falta y presupuetarlos. Para ello hay un bloque de sonido, iluminación, video, etc…Me gustaría que a la par que determino cuantas ud. de cada artículo se presupuestaran, este mismo número y mismo artículo automáticamente queden grabados en otra hoja del mismo libro de tal manera que solo se vea el artículo y la cantidad del mismo, y que se vean de una manera correlativa sin dejar líneas vacías. No sé si os podría mandar el documento para que lo viérais.

    Saludos y gracias por todo

    1. Hola Federico, gracias por comentar y participar, recomendamos éste contenido puede ayudarte para solucionar tu requerimiento. Vamos a evaluar tu solicitud para un futuro contenido. Un abrazo

  11. quiero realizar un formato un poco mas complejo y de ser posible me apoyaran a realizarlo ustedes que son expertos, y de ser así cuanto me saldría??? pudieras enviarme un correo y te mando el archivo con la explicación de lo que requiero… saludos

  12. Buenos días ingeniero, tengo una duda y no escuentro solución de ningún tipo por mas que e buscado.
    Debo estraer de diferentes libros de excel cerrados ciertas columnas que comparten el mismo nombre en común y que el valor se refleje en otro libro diferente a los anteriores; es decir:
    Columna 1 de LibroDestino: Está en el libro a.
    Columna 2 del LibroDestino: Está en el libro b.
    Columna 3 del LibroDestino: Está en el libro b.
    Columna 4 del LibroDestino: Está en el libro c.
    Columna 5 del LibroDestino: Está en el libro b.
    Columna 6 del LibroDestino: Está en el libro c.
    Columna 7 del LibroDestino: Está en el libro b.

    Debo resaltar que lo que tienen en común esas columnas ( los valores serán trasladados al LibroDestino) son los nombres mas no la ubicación de los libros a, b y c con la ubicación final en el LibroDestino que fue detallado anteriormente.

    Espero su pronta respuesta y disculpe las molestias de antemano.
    Estoy segura que podrá ayudarme ingeniero, no dudo de sus capacidades y conocimiento.

  13. Buenas, elabore un sistema pequeño pero necesito que varios operados utilicen el sistema y que la hoja (base de datos) sea compartida por todos y actualizada en tiempo real. Logre en un red compartir el libro desde “un servidor” y todos acceden a dicho libro, pero al compartir se pierde funcionalidad del excel, especialmente en buscarv y algunas macros; ¿usted ha tenido alguna experiencia de este tema?. Para explicarme mejor es un libro que pueda ser accedido por varias maquinas y que todos tengan el mismo actualizado al mismo momento. No es factible la posibilidad de utilizar mecanismos como cierres y consolidaciones.

    1. Hola Gilberto, se recomienda es manejar base de datos como repositorio de la información y Excel como herramienta para ingresar y extraer información de la base de datos, esto, para evitar problemas como los que describes. Recomendamos los siguientes contenidos para ayudarte con ésto. Saludos

  14. buenas Tardes

    realiza todos los pasos pero no me muestra ningún resultado no se porque esta pasando esto

    1. Hola Mauricio, cuando trabajas con Macros es muy normal que se escriba algo de forma errónea, por favor mira el vídeo las veces que sea necesario, pues en el vídeo estás viendo una macro funcional. Sigue los pasos atentamente y mira el código detenidamente. Saludos

  15. Hola, quiero que en una hoja se coloquen solo los datos que coincidan con tal criterio, en mi caso que traspase literal toda una fila, proveniente de una hoja de registro, si esta se registro sin importar si es un ingreso o un egreso, sólo que sea de la cuenta de crédito. pero sin la necesidad de usar un botón (macro).
    O sea que al momento que la persona registre que hubo ingreso o un egreso a esta cuenta esta automáticamente se pase toda la info. de esa fila a la tabla de esa hoja.
    Ya lo intente con filtros avanzados pero solo funciona si los registros están en la misma hoja, y si realizo macro no quiero que tenga ese botón.

  16. Hola buen día, gracias por la información.
    Hice la macro y todo bien pero ahora necesito hacer lo mismo pero con dos condiciones, ¿cuál sería la forma de hacerlo?
    Gracias.

  17. Buenas,
    Excelente el video y aun mas la forma de explicar paso a paso. Me cae al dedillo esta macro, sinembargo, tengo una duta.
    Como hago para hacer un ciclo antes que me permita que los datos a copiar en el Auxiliar vengan de diferetes hojas y no de solo “EEE”. –>como un consolidado pero con condicion.
    saludos,
    Luis Quiros.

  18. Buenas tardes, la macro esta genial, pero se podria adecuar para que en vez de una condicion busque con dos condiciones?.

    gracias

  19. Buen dia desde Buenos Aires
    Comencé a estudiar Macros desde cero hace una año con la pagina vuestra (EEE) y llegué a hacer algunas macros para mi trabajo que funcionan. Mi necesidad actual es que me den alguna pista sobre cual es la mejor manera de terminar una nueva macro que estoy intentando concluir pero estoy trabado.
    Esta casi completa y no necesitaria que la hagan ustedes o no es esa mi intención pero sí me gustaría que me guien para llegar al resultado deseado
    El resumen es el siguiente: Tengo un archivo de Excel para calcular el momento en que debe ser realizada una tarea con determinada frecuencia a diferentes equipos. Este archivo tiene una primera hoja que tiene filas donde por ejemplo hay 10 equipos o maquinas diferentes cada una con su codigo. En esta hoja primera se hacen una serie de calculos para determinar la cantidad de horas que faltan para hacer determinadas tareas de mantenimiento . Una segunda hoja solo para pasar o copiar datos de tareas concluidas para que que en en el historial queden grabadas y una tercer hoja donde mediante un formulario ya creado se registran la cantidad de horas de marcha de cada uno de los 10 equipos o maquinas
    Lo que me esta trabando es que llegue al punto de validar los datos del formulario y que estos pasen a guardarse en la hoja tres para que queden como registro. Pero necesito que a la vez cuando cierro el formulario y los datos se guardaron en esta HOJA tres tambien pasen a una columna de nominada HORASACTUALES en la primera Hoja ya que dependiendo de este valor se actualiza dicha hoja y me avisa automaticamente si una tarea de un determinado motor esta para ser realizada. Es decir que la macro debiera barrer la columna CODIGODEEQUIPO (hay varios repetidos) y en funcion del mismo pegar en la columna HORASACTUALES lel valor que trae de la hoja 3 que se cargo en el formulario
    No se si se logra entender mi necesidad

  20. Buenas noche, te escribo desde argentina, y quisiera saber como hacer para poder crear una macro que me permita visulaizar en una hoja X, la información que cargo habitualmente en otras hojas…
    la condición es que necesito decirle de cual hoja traerme la información a visualizar en la hoja X

  21. Hola, buen día, quisiera consultar lo siguiente:

    Tengo una hoja “modelo” que al crear una nueva hoja copia los datos tal cual provenientes de esta hoja modelo, sin embargo tengo creado un gráfico, el cual tiene un rango de datos en la hoja modelo, pero necesito que al crear la nueva hoja tome un nuevo rango de datos, que se ubiquen en las mismas posiciones que el de la hoja modelo pero que se actualice según los datos de la nueva hoja, existe algún código que permita modificar el rango que toma el grafico en la nueva hoja?

  22. Buenas tardes.
    Agradezco mucho por su tutorial, hace rato estaba buscando un video asi. Tengo 2 preguntas:
    1. Es posible que el traslado de la información de una hoja a otra se haga automatico sin necesidad de hundir algun boton. Es decir que tengo toda esta información de diferentes paises pero solo quiero que me traslade a la otra hoja aquello que diga francia y que cada vez que a la hoja “EEE” se le ingrese información sobre Francia, automaticamente en la hoja “Auxiliar” se vea la información. Se puede hacer?
    2. Es posible por ejemplo tal y como esta la macro del archivo que nos compartio. Realizar lo sgte: Por ejemplo ejecuto la macro con la palabra “Colombia” y este me transfiere la información a la hoja “Auxiliar”. Pero resulta que ingrese mas información sobre “Colombia” en la hoja “EEE” y no quiero que la información que ya estaba antes se me duplique en la hoja “Auxiliar” sino que solo me pase la nueva información y así las veces que repita la misma operación. Se puede hacer?

    Soy nuevo e ignarante en esto de macros asi que disculpeme si mis preguntas de pronto no son muy coherentes. Gracias.

  23. Te comento hice los pasos que explicaste en el video, pero al momento de ejecutar el macro, me dice (proceso terminado) pero al mirar la hoja donde se debe insertar la información – no aparece. ¿Qué hice mal?

  24. Buenos días ingeniero, gracias por dedicar su tiempo para trasmitir conocimiento,, nuevamente gracias.
    Quiero pedirle el favor, un código que me permita eliminar sola la información transferida de la hoja “EEE” a la hoja “Auxiliar. para que en la hoja “EEE” sola vaya quedado la información que aun no se ha transferido a la otra hoja.

    Tengo una aplicación en la necesito realizar esa actividad, pero no he podido dar con el código.

  25. Muy buen aporte. Una colsulta adicional, que código le faltaría para que en la hoja auxiliar no se repitan registros iguales, asumiendo que la hoja EEE es una base de datos que está nutriéndose constantemente. Gracias

  26. hola buen día, estoy tratando de hcer un ejercicio parecido, pero en lugar de copiarme todos los renglones que contengan la palabra búsqueda, sólo me guarda la información del último renglón en donde se encuentra esa palabra.. ya lo revisé muchas veces y no encuentro donde puede estar el error.

  27. Buenas Tardes, soy de Argentina, me llamo Jose
    Muy buono tus explicaciones, los felicito
    Te quiero consultar como hacer una macro sin VBA para copiar uns datos de una hola a otra con una condicion (palabra que se encuentra en una fila de la base de datos)
    Muchas Gracias

Leave a Reply to Víctor Cancel reply

Your email address will not be published. Required fields are marked *