Тёмный

🟢 Cómo Crear Macros VBA que Incluyan Procesamiento por Lotes (100 Veces más Rápidas) 

Excel Hecho Fácil
Подписаться 368 тыс.
Просмотров 9 тыс.
50% 1

Опубликовано:

 

23 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 75   
@tonybd74
@tonybd74 2 года назад
Hola. Cuento mi experiencia con este metodo por lotes. Logre implementar este metodo por lotes que desarrolló Andres en un archivo Excel que genera 3 archivos txt. En total se procesan 10 columnas con mas de 2 millones de filas (2,100,000). Por este motivo se crean 3 txt. Anteriormente aplicando los metodos comunes de bucles For Next o For Each para procesar todas esas filas y columnas demoraba casi una hora (considerando que mi computadora en el trabajo es bastante basica), luego cuando aplique el procesamiento por lotes demora solo 11 minutos, asi que la diferencia de rendimiento es realmente increible. Muchas gracias por el aporte Andres. Saludos y abrazos
@josealbertobriosoperez1618
@josealbertobriosoperez1618 2 года назад
Buenos días, súper como siempre.
@fernandopossorivera5412
@fernandopossorivera5412 2 года назад
Tenemos material humano con conocimientos en Colombia. Muchas gracias por compartir tu conocimiento
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Gracias por la confianza... Un abrazo fuerte desde la distancia. Saludos.
@jeanpierremcalchez3244
@jeanpierremcalchez3244 2 года назад
cada vez me gusta mas tu canal, como harías un MRP ingeniero
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Déjame ver y te comento.
@jeanpierremcalchez3244
@jeanpierremcalchez3244 2 года назад
@@ExcelHechoFacil yo tengo la plantilla solo falta automatizarla con tus excelentes lógicas para que sea de una manera rápida
@macexcont9044
@macexcont9044 2 года назад
Sencillamente espectacular, muchas gracias por compartir sus conocimientos
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Muchas gracias a ti por comentar... Un abrazo.
@javigata5482
@javigata5482 2 года назад
Espectacular si señor, super profesional. Nunca comenté ningún vídeo, pero este es para recomendarlo
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Super, te agradezco muchísimo tu buen gesto y buena voluntad... Un abrazo fuerte desde la distancia. Saludos.
@jorgeafernandezleon988
@jorgeafernandezleon988 2 года назад
Excelente video Andrés, quiero aprovechar la oportunidad para hacer de su conocimiento, esperando que no se me ofenda y me lo permita, es que le recomiendo que no diga mas esa palabra porque al menos en México representa una grosería muy fuerte, y esto se lo digo porque lo aprecio mucho.
@edwinnieves7812
@edwinnieves7812 2 года назад
Excelente! Espectacular clase, y también me apunto.
@moisesperaza3830
@moisesperaza3830 2 года назад
Me gusta estos tipos de tutoriales porque es más efectivo y rápido, gracias por enseñar, estaré más atento con más vídeos de este tipo
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Con mucho gusto!!! Un abrazo fuerte desde la distancia. Saludos.
@pacogarrido283
@pacogarrido283 Год назад
muchas gracias Andrés, estupendo este tutorial también como no podía ser de otra manera. Para tu conocimiento y el resto de seguidores, se me ocurrió probar a hacer el procedimiento con la sentencia [ Hoja1.Range("B1").value = StrReverse(Hoja1.Range("A1").value) ] con un bucle para que recorra todas las filas, y el resultado es una auténtica locura (más de 20' procesando) 😂😂😂😂😂😂
@eduardoguillen3318
@eduardoguillen3318 2 года назад
Excelente explicación! Muchas gracias por compartir con todos. Por supuesto que me gustaría que explicaras cualquier proceso para que nuestro trabajo sea más eficiente. Por supuesto que lo voy a utilizar. Un abrazo.
@Fredick.7
@Fredick.7 2 года назад
Buen día. Gracias por compartir tu método, por mi parte comparto el mío es el: Método de transferimiento de datos contenido de un solo bloque. La idea es volcar de golpe todos los datos que previamente se almacenaron en una matriz, a un rango predeterminado: Sub Metodo_Bloque() Dim Matriz(100500, 0), i As Long For i = 1 To 100500 Matriz(i - 1, 0) = StrReverse(Cells(i + 1, 1)) Next [C2:C100500] = Matriz End Sub
@tonybd74
@tonybd74 2 года назад
Hola @Freddy, es interesante tu aporte. Recien probe tu codigo y con la funcion StrReverse da los resultados practicamente en el mismo tiempo que la macro de Andres. Pero al aplicar un procedimiento un poco mas complejo, en mi caso el proceso demora mucho mas. Por ejemplo usando un For Next como el que aplico Andres para revertir las cadenas de texto: Sub Metodo_Bloque() Dim Matriz(100500, 0), i As Long Dim tiempo As Double tiempo = Timer For i = 1 To 100500 For a = 15 To 1 Step -1 Matriz(i - 1, 0) = Matriz(i - 1, 0) & Mid(Cells(i + 1, 1), a, 1) Next a Next [C2:C100500] = Matriz Hoja1.Range("f3").Value = Round(Timer - tiempo, 3) End Sub Parece que al combinar procedimientos sigue siendo mucho mas optimo el metodo por lotes de Andres. Buen aporte. Abrazos
@Fredick.7
@Fredick.7 2 года назад
@@tonybd74 Es lógico va a durar más tiempo con procedimiento híbrido que propones en el mensaje, dado que estas asiendo uso de un ciclo For- Next más. Te propongo algo, has la prueba de rendimiento entre los procedimientos con 300.000 registros y luego con 500.000. Te recomiendo que Copies y pegues los datos que te da el archivo, yo no voy realizar la prueba porque el archivo que descargué en el repositorio no contienen las macros que sugiere el instructor del video. Lo que quisiera mostrar es que al utilizar funciones nativas VBA y al hacer el volcamiento directo de la matriz al rango, mejora el rendimiento mientras más registros alla en comparación con otros procedimientos. Espero no equivocarme con la aseveración que hice. Luego me cuentas...👍
@tonybd74
@tonybd74 2 года назад
@@Fredick.7 Hola Freddy. Gracias por responder. Si, probe tu codigo y de hecho es unas fracciones mas rapido que el metodo de Andres ( transcribi el codigo de Andres desde el video al archivo que descargue). Por este motivo tambien adopte tu metodo como para empezar a aplicarlo. Mi punto es que me parece que el metodo de Andres gestiona mejor el procedimiento cuando se requiere combinar otros subprocesos. Abrazos. Gracias
@Fredick.7
@Fredick.7 2 года назад
@@tonybd74 En cuanto a la conclusión que has llegado al final del mensaje que me enviaste, gracias por compartirla, se la valora. Por otro lado, ud. dice: “Gracias por responder”. Mira Tony, lastimosamente es poco lo que puedo contribuir con este canal en comparación de lo mucho que he recibido de él. Respondiéndote, trato de aportar con un granito de arena a ti y a otros que siguen este emprendimiento como gratitud de lo que antes comenté. Y es que, lo que hace el instructor me da ideas que termino convirtiéndolas en perlas de gran precio. >> A DIOS sea la Gloria.
@gramos73
@gramos73 Месяц назад
Buen video, muchas gracias por el tip. Adicionalmente quiero agregar que para este tipo de tareas es mucho más rápido usar código python...
@eduardomunoz2764
@eduardomunoz2764 2 года назад
Estimado Andrés, mi mas sincera admiración a tu persona, sin lugar a duda eres un Master en la materia. agradecido por tan extraordinario video, saludos y éxito en tus proyectos.
@rodolfopineda3586
@rodolfopineda3586 2 года назад
Muchas gracias andres realmente impresionante trabajo y conocimiento y me gustaria mas tutoriales sobre este tipo de metodos x lotes para mejorar nuestros procesos que se presentan dia a dia en el trabajo en la exportacion de datos a excel con base de datos (access) y la opcion q tengo es realizarla con vba bendiciones
@manuelreyes6994
@manuelreyes6994 2 года назад
Gracias Andrés, en la parte final del video lo explicas perfectamente
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Muchas gracias... Un abrazo fuerte desde la distancia. Me alegra mucho saber que te gustó... Saludos.
@mariodiaz7038
@mariodiaz7038 2 года назад
Excelente, y gracias por darte un tiempo para enseñarnos tus conocimientos
@edgarsierra345
@edgarsierra345 2 года назад
Excelente profesor, es un placer mirar y practicar tus tutoriales, gracias por compartir
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Gracias Edgar, muchas gracias por comentar, me alegra que te guste, un abrazo fuerte desde la distancia. Saludos.
@nednavarrete
@nednavarrete Год назад
Excelente video. Gracias por compartir tus conocimientos. Pobre la primera forma y tomo hasta minutos (talves no tenga un buen procesador), y luego probe la segunda forma, del procesamientos por lote, y lo hizo en menos de un segundo. Me pasaba que cuando copiaba registros de una tabla (de mas de 8 columnas y mas de 25000 filas), y las pegaba en otra hoja, mediante macro, tambien se me colgaba demoraba mucho el procesamiento. Me gustaria que en un video apliacando el procesamiento por lote, lograr copiar y pegar grandes cantidades de registros y hacerlo mas eficientemente.
@ruizanjel
@ruizanjel 2 года назад
Eres un crack Andrés. Muchas gracias por compartir tus conocimientos. Nunca se me había ocurrido algo así. 👏👏
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Un abrazo, para servirle... Saludos
@ivelec100
@ivelec100 9 месяцев назад
Hola Andrés, felicitaciones. Excelente aporte!! Pregunta, como se define el valor óptimo del Batch (lote)? Existe una forma de definir dicho valor?
@manuelreyes6994
@manuelreyes6994 2 года назад
Me gustaría más tutoriales sobre este método por lotes, ya que tengo unas macros que duran mucho en su proceso y poder depurarlas
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Genial, haré un poco más de este tema. Saludos.
@juancamilovelezr.7530
@juancamilovelezr.7530 2 года назад
Utilizas el cálculo automático? Poniéndolo manual logré pasar una macro de 10 minutos a 30 segundos.
@IvanCortinas_ES
@IvanCortinas_ES 2 года назад
Buenísimo!!!! Supremamente explicado. Otro video absolutamente imprescindible. 1000 Gracias!!!!
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Gracias Iván, muy agradecido, siempre estás pendiente del nuevo contenido, me alegra mucho saber que te gustó... Saludos.
@jaimegibaja9470
@jaimegibaja9470 2 года назад
Espectacular como siempre gracias
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Hola Jaime, muchas por comentar, te agradezco enormemente, me alegra que te haya gustado y aprendas mucho... Esto acelera el trabajo con macros muchisimo. Un abrazo fuerte desde la distancia.
@manogm6901
@manogm6901 2 года назад
Gracias, esta bueno el ejercicio, estaré atento a más casos de Batch.
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Super... Gracias por comentar. Saludos.
@ThePEGASO78
@ThePEGASO78 2 года назад
Excelente clase!, aprendí mucho y me apunto a las demás clases que comentas con métodos como estos 😁. Solo me llama la atención que usaste el ciclo For-to-Next para invertir las cadenas de texto. Por qué no usar la función StrReverse para ahorrar algunas líneas de código?
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Lo hice así porque quería saturar el procesador con mucha carga en ciclos para demostrar que el método por lotes es mucho, pero mucho más rápido. Un abrazo fuerte desde la distancia. Gracias por comentar... Saludos.
@chimboterex
@chimboterex 2 года назад
Bendiciones y gracias, profesor
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Gracias Freddy! Un abrazo fuerte desde la distancia. Espero te sirva el método.
@Fredick.7
@Fredick.7 2 года назад
Amén, que el SEÑOR JESÚS bendiga enormemente al autor de este canal...👍
@hausserzavaletaalcalde6416
@hausserzavaletaalcalde6416 2 года назад
muy buen video. se puede usar tambien esta técnica de batch para hacer busquedas en varias hojas? si tengo varias hojas con miles de registros cada una, y necesito evitar que cuando ingrese un nuevo registro en cualquier hoja, este ya se encuentre en alguna de las hojas, y me lanze una alerta. obviamente en el evento (selection_change). gracias por compartir conocimiento andrés. y claro, nos gustaría que sigas difundiendo este tipo de metodos con vba mas avanzados. saludos desde perú.
@dennispdedios
@dennispdedios 2 года назад
Excelente! Muy buen video y como siempre, muy bien explicado.
@SuperGallote
@SuperGallote 2 года назад
Buen aporte. Muchas gracias!!! Cómo podría ordenar ascendentemente datos masivos con macros?
@felixmoragajimenez5523
@felixmoragajimenez5523 2 года назад
No voy a ser hipocrita, al inicio pensabe "este mae si le gusta hablar papaya" y pensaba que lo hacias para idolatrarte por que sabes de excel, pero viendo el proceso completo entendi perfectamente que los que saben pueden decir lo que les venga en gana por que conocen del tema, mis respetos y mis disculpas por pensar asi aunque obvio no sabias por que no sos adivino XD para estas cosas como dijiste hay que explicar varias veces un paso por que sino en cualquier momento se puede perder uno, incluso yo viendo el video tenia que retroceder a cada rato por que no entendia por que pasaba tal cosa hasta que lo veia como 4 veces y eso que no soy lento la verdad pero si uno quiere que le den un trabajo asi por desgracia o por dicha hay que destacar sobre los demas, la competencia es dura pero por que la gran mayoria nos quedamos estancados en cosas faciles que los demas tambien saben hacer, la mediocridad es un aliado desastroso, muchas gracias y saludos.
@Sky6109
@Sky6109 2 года назад
Hola Andrés. Excelente aporte para el tratamiento de grandes volúmenes de datos; sin embargo, te recomendaría omitir comentarios y/o aclaraciones que creo están de más que son obvios para quien sabe macros y ve este tipo de videos. Pienso que se reduciría el tiempo de grabación sustancialmente. Saludos
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Y para los que no saben y quieren aprender desde cero? Lamento tener que decirlo, pero existen más personas que no saben macros en Excel que las que si lo saben, para ellos, para esas personas que no les interesa tanto el tiempo y si el aprendizaje, para ellos son los vídeos... Mi recomendación, en RU-vid hay canales que son más directos y gastan menos tiempo, ve a ellos sin problemas. Un abrazo fuerte.
@Sky6109
@Sky6109 2 года назад
@@ExcelHechoFacil De acuerdo Andrés pero quien no sabe macros, no inicia con estos videos que son de avanzados para arriba. Saludos!
@Sky6109
@Sky6109 2 года назад
@@ExcelHechoFacil Hola de nuevo Andrés. Bajé el archivo del video y a pesar de ser xlsm, no trae macros. Así es la publicación, sin macros? Gracias
@manuelreyes6994
@manuelreyes6994 2 года назад
Buen día Andrés, excelente video, una duda, cual es la explicación técnica, motivo por el cual en la primer macro se traba un poco y en la segunda que es por lotes no, saludos
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Esto es debido a que liberas memoria en cada lote y no sobre cargas la pila de memoria con cada iteracion... Cada vez que almacenas algo en la memoria barre el resto de la carga, con muchos registros se congestiona incluso hasta bloquear la aplicación... Un abrazo fuerte desde la distancia...
@sofiafisacvarela2070
@sofiafisacvarela2070 2 года назад
Perdona Andrés acabo de ver que ese error lo corriges al final de video!! Muchas gracias!!!!
@israelhidalgojimenez4801
@israelhidalgojimenez4801 2 года назад
Andrés, excelentísimo contenido, la verdad he visto muchísimas de tus clases y todas son muy buenas (especialmente ese toque matricial que le das a tus fórmulas de excel), pero en este video te la comiste, ahora fue en vba en donde aplicaste ese toque matricial, EXCELENTE, eso sí que se puede llamar: EXCEL HECHO FÁCIL (mejor dicho excel hecho súper rápido) Claro que sí quiero ver más contenido donde pongas en práctica otros casos con trabajos por lotes (y que no comprendo cómo demonios pueden ser más rápido que en este caso). Felicidades, un abrazo. Por cierto, cómo puedo aprender manejo de matrices así como las manejas, algún consejo?
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Gracias por comentar y por los ánimos sobre todo y de tomarse el tiempo de hacerlo... La verdad el algoritmo de procesamiento por lotes se demora mucho menos porqué descarga la memoria cada 5000 filas... Es decir, no barre y no actualiza la pila de memoria a más de 5000 registros... Por eso gana y ganará siempre... Saludos.
@ABRAHAM-A-B
@ABRAHAM-A-B 2 года назад
Ing. Algún tutorial de como hacer un visualizador de facturas XML que distinga entre una factura de ingresos,egresos y nominas con una macro, o que nodos agarrar y de pasada como quitar los destellos de una macro es decir cuando se crashea
@pierechristofersalasherrer2155
@pierechristofersalasherrer2155 2 года назад
Hola excelente, siga pa delante con su contenido de calidad ... yo quisiera aplicarlo para crear base de datos en analisis de costos en construccion, donde la programacion esta por desarrollar mucho
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Gracias parcero, un abrazo fuerte desde la distancia... Lo haré y lo seguiré haciendo mientras Papá Dios me de voz y fuerzas... Una vez más abrazos.
@israelhidalgojimenez4801
@israelhidalgojimenez4801 Год назад
Hola Andrés, el archivo adjunto que cargaste (#941) no contiene el código vba que escribiste durante el video. Parece que no se guardo el código antes de subir el archivo. Será posible colgar el archivo con el código?
@arielgomez8965
@arielgomez8965 2 года назад
No halló su correo electrónico en su discripcion de su canal. Nesecito su ayuda con una tabla, veo todos sus videos y soy nuevo suscriptor. Gracias
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Está en la descripción, debes resolver el captcha. Saludos
@israelhidalgojimenez4801
@israelhidalgojimenez4801 2 года назад
Hola Andrés, he descargado el archivo #941 que corresponde a este video, pero al parecer no lo guardaste con el código pues el editor vba aparece en blanco y sin los módulos. Favor verificar esta parte par que corrijas el archivo. Un abrazo
@sofiafisacvarela2070
@sofiafisacvarela2070 2 года назад
Buenas a todos, he seguido el video dos veces y me da las dos veces el mismo error LoteReversoAux(indice, 1) = sInvertido "se Ha producido el error 9 en tiempo de ejecución". He copiado literalmente todo el ejercicio, no sé por qué me salta este error...
@belemanicetoteofilo6065
@belemanicetoteofilo6065 2 года назад
Que tal Andrés, excelente video, disculpa estoy intentando automátizar un archivo para eliminar filas masivamente con vba que cumplan unos criterios, el cuál es que una columna sea igual a el valor de 0 (cero) o 99, solo me interesa conservar todos los valor que sean igual a -1 (menos uno), pero son más de 100000 filas que tiene que recorrer el bucle y estos es muy tardado. Se podría hacer con tu método que explicas algo similar a lo que estoy intentando automátizar?
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Huy si... Solo tendría que modelar las funciones y listo. Pero eso lleva tiempo... Un abrazo.
@JMAnguiano
@JMAnguiano 2 года назад
ASI ES ANDRES COLOQUIALMENTE SE USA ESA PALABRA EN MEXICO JAJAJA, ME SORPRENDIO ESCUCHARLA RECOMENDACION: NO LA MENSIONES AMIGO
@ExcelHechoFacil
@ExcelHechoFacil 2 года назад
Ok... Si, se me fue la bola... No sucederá más... Un abrazo fuerte estimado
@juancamilovelezr.7530
@juancamilovelezr.7530 2 года назад
Que teso... No entendí nada jajaja. Mucho pro estudiar.
@wilbervalverdeccolque4531
@wilbervalverdeccolque4531 2 года назад
Amigo usted habla mucho, al grano
Далее
🌭 BBQ Chili Dog Skillet #Shorts
00:36
Просмотров 1,3 млн