15. Guía Rápida VBA para Excel | Conozcamos los Módulos de Clase

  Рет қаралды 23,751

Excel y Más

Excel y Más

Күн бұрын

Пікірлер: 54
@odar_vinces
@odar_vinces 6 жыл бұрын
Excelente maestro, usted si sabe enseñar, me gusta aprender con sus tutoriales, muchas gracias por sus cursos y tutoriales que nos imparte, siga adelante.
@excelymasoficial
@excelymasoficial 6 жыл бұрын
Gracias por comentar. Un abrazo!
@wildercondoricastro3110
@wildercondoricastro3110 6 жыл бұрын
Muchas gracias profesor por su tiempo... Con esta guía rápida de módulo de clase.. ahora entiendo para qué sirven... Porque siempre los veía pero no sabía exactamente su utilidad... Gracias por sus valiosos conocimientos y sobre todo compartirlos... Una vez más muy agradecido... Saludos...
@excelymasoficial
@excelymasoficial 6 жыл бұрын
Muchas gracias por tu apoyo!
@oscarsantos9251
@oscarsantos9251 6 жыл бұрын
Maestro otto que formidable explicación tan completa repetiré tantas veces sea necesario para darle mas enfoque como trabajan las clases lo ignoraba totalmente, lo que nos enseña lo hacer ver tan fácil,pero le a costado hrs de trabajo de pestañas, gracias por sus enseñanzas profe.sal2 pulgar arriba...100% bueno..pendiente del siguiente tutorial.
@excelymasoficial
@excelymasoficial 6 жыл бұрын
+oscar santos Muchísimas gracias mi estimado Óscar por tu gran valoración. Un abrazo!
@rubensantacruzmorel475
@rubensantacruzmorel475 6 жыл бұрын
Magistral como siempre ! Gracias por compartir tan importantes conocimientos estimado Otto. Aunque aún no puedo captar en su totalidad la diferencia entre ambos tipos de módulos y para qué se implementaría un módulo de clase, ya se puede notar la potencialidad de los módulos de clase. Ojalá pueda Ud. más adelante introducirnos cada vez más en este tema. Con su forma clara y sencilla de enseñanza, estoy seguro llegaremos a entender a profundidad la programación orientada a objeto. Un abrazo profesor.
@excelymasoficial
@excelymasoficial 6 жыл бұрын
+Ruben Santacruz Morel Los módulos de clase no necesariamente tienes que usarlo para cualquier cosa, sino para casos muy particulares en donde necesites usar de forma repetida un objeto que ya tiene todo y solo tendrás que ir rellenando. Más que todo en proyectos grandes como el Gestor de inventarios y contabilidad que al final lo hice con módulos estándar. Pensaré en algo más complejo para que vean de forma más enfocada la ventaja que puede tener una clase. :)
@cristianquiroz5304
@cristianquiroz5304 6 жыл бұрын
Muy buen método de enseñanza, tenia tiempo buscando a una persona que me explicara y conseguía. Muy Agradecido por sus clases.
@enricviguer9560
@enricviguer9560 6 жыл бұрын
Buenísimo, por fin entendí el concepto de clase y las propiedades let y get... gracias Otto!
@excelymasoficial
@excelymasoficial 6 жыл бұрын
Gracias a ti por tu apoyo! Saludos!
@Antonio8688
@Antonio8688 6 жыл бұрын
Clarísima explicación, profesor. Me gustaría su recomendación de cuándo es más provechoso utilizar los módulos de clase. Gracias.
@excelymasoficial
@excelymasoficial 6 жыл бұрын
😊 Te voy a poner un ejemplo muy simple y en el cual se consideraría necesario una clase. Digamos que repetidamente vas a lanzar un MsgBox que tiene una cadena de texto de hasta 20 lineas... obviamente un mensaje bastante largo, que constantemente tienes que poner en la mayor parte de tu proyecto... Tienes varias opciones... 1. Copiar dicha rutina del mensaje en cada una de los procedimientos. 2. Crear un procedimiento sub Publico para llamarlo... 3. Podrías crear una UDF. Sin embargo desde mi punto de vista consideraría ponerlo en una Clase en donde simplemente creo el objeto MsgBox personalizado y hago la llamada a dicho objeto haciendo referencia a su método contenido. Recuerda que la programación en general de Office en VBA es una programación Orientada a Objetos... la mayoría de los objetos ya están prediseñados como los UserForm, que con un click agregas un UserForm y le cambias todas sus propiedades a tu gusto destinándolo para una actividad en particular. Pero que tal sí a partir de ese UserForm que todos conocemos, creas tu propio Objeto UserForm Personalizado dentro de un proyecto, que al crear dicho objeto ya tenga todas las características que necesitas sin tener que trabajar mucho. Pues de eso se tratan las clases. Diseñar una plantilla que nos permita crear los objetos que necesitamos según nuestras necesidades, y más que todo si se trata de proyectos grandes en donde tenemos que reutilizar los objetos. Tal es es caso cuando necesitamos crear UDFs, que a pesar que Excel ya tiene su colección de funciones integradas, pero siempre requerimos de funciones personalizadas las cuales se generan con la combinación de otras funciones y procedimientos creados por nosotros mismos. 😊 Muchas gracias Antonio por estar siempre pendiente!
@Antonio8688
@Antonio8688 6 жыл бұрын
Muchas gracias a usted, profesor. Me queda claro su explicación.
@flaviobendl2611
@flaviobendl2611 6 жыл бұрын
Excelente explicação. Sua didática de ensino é muito objetiva. Muito Obrigado !!
@excelymasoficial
@excelymasoficial 6 жыл бұрын
+FLAVIO BENDL Muchas gracias por tu apreciación Flavio. Saludos y un fuerte abrazo :)
@ivandariosuarezrodriguez4627
@ivandariosuarezrodriguez4627 6 жыл бұрын
Estimado Otto muchas gracias, me has aclarado muy bien el tema como siempre. Quedo muy atento a la próxima entrega. Bendiciones
@excelymasoficial
@excelymasoficial 6 жыл бұрын
+Ivan Dario Suarez Rodriguez Gracias por estar siempre pendiente. Saludos cordiales!
@alunosouza8931
@alunosouza8931 6 жыл бұрын
Professor, Muito obrigado pelas aulas, estou querendo aprender trabalhar com classes, orientação a objetos, mas estou com dificuldade de entender a necessidade e aplicação prática de objetos. Muito obrigado!
@joseagundis1
@joseagundis1 6 жыл бұрын
Gracias profesor por su buen video tutorial, podría usted ir usando código para tablas (object), ya que como sabe son la potencia de Excel y las que nos ayudan más a los usuarios para el control de reportes, gracias y en espera de su comprensión. Felicidades!!!!
@excelymasoficial
@excelymasoficial 6 жыл бұрын
+Jose Manuel Agundis gracias por tu comentario y sugerencias :)
@pabloamundarain8885
@pabloamundarain8885 6 жыл бұрын
Si le soy sincero profesor no me quedó del todo claro, tendré que ver este video varias veces, pero deduzco que es una de las cosas que son complicadas de entender de VBA, es como la Función DESREF y la Función Buscarv, una más complicada que la otra, claro estoy exponiendo un caso totalmente distinto, pero quiero decir que no todo se comprende viéndolo una sola vez ni con un solo ejemplo, es algo complejo, primera vez que veo este modulo de clase siempre habia visto los modulos estandar como dice ud...saludos...tendré que ver su video 2 o n veces para tratar de entender y buscarle alguna aplicación a futuro...
@excelymasoficial
@excelymasoficial 6 жыл бұрын
Sí es algo confuso al principio, pero después lo veras de una forma más clara. Saludos y gracias por comentar!
@jaimealonsoprietopalomar6349
@jaimealonsoprietopalomar6349 4 жыл бұрын
Otro, buenas tardes. Muy buenos tus vídeos y muy didácticas tus explicaciones pero en esta oportunidad no pude asimilar los conceptos. Espero tomes en cuenta mi comentario y se programebun vídeo aclaratorio es este tema. Gracias. Saludo cordial Jaime Alonso Prieto Palomar
@albertogonzalez2613
@albertogonzalez2613 6 жыл бұрын
Excelente aporte!!!
@excelymasoficial
@excelymasoficial 6 жыл бұрын
Gracias por comentar. Saludos!
@oscareduardoochoasantana8050
@oscareduardoochoasantana8050 6 жыл бұрын
Hola, gracias por los vídeos, son bastante útiles. ¿Cómo le hiciste para que saliera la ventana en la que se pueden reemplazar los valores? Saludos.
@adriangomez8042
@adriangomez8042 4 жыл бұрын
Amigo agradecido, ¿seria posible que también nos enseñaras a como crear una colección del objeto para trabajar con ellos antes de enviarlos a la hoja de excel?
@magickelvin9248
@magickelvin9248 6 жыл бұрын
hola oto saludo yo quiero hacer mi sistema contable pero trabajar directo desde excel de escribir fecha codigo cuenta debe haber solo lo que quiero colocar sin un formulario y este por un boton de registro me lo guarde al libro diario es posible?
@cristianquiroz5304
@cristianquiroz5304 5 жыл бұрын
Hola Buenas Tardes, Gracias por tan buenas clase, Requiero una ayuda en cuanto a la mejores practicas de programación, para no gastar memoria Innesesariamente , Tal como cerrar formularios, rutinas, utilizar tablas dinámicas, campo calculado y mas. Gracias
@ivandariosuarezrodriguez4627
@ivandariosuarezrodriguez4627 6 жыл бұрын
Otto viendo el vídeo nuevamente y comparándolo con un vídeo tuyo anterior del mismo tema, noto que esta vez en el modulo de clase defines las variables de tipo Private y como consecuencia es necesario establecer las propiedades de escritura y lectura ¿que ventajas me trae usar las variables de tipo Private en lugar de Public en un modulo de clase?
@excelymasoficial
@excelymasoficial 6 жыл бұрын
+Ivan Dario Suarez Rodriguez La ventaja es que si creas un gran número de clases en tu proyecto, podrás repetir los nombres de las variables sin ningún problema. En cambio si las manejas de forma pública, será muy problemático manejar eso tratando de evitar conflictos por los alcances de las variables. La recomendación es que manejes todas las clases de forma privada Te pongo el ejemplo del Gestor de inventarios y contabilidad. Yo manejo dos variables que las repito en todos los procedimientos privados, FILA y FINAL, que si las manejara de forma pública, terminaría obteniendo resultados no deseados. Ese es el punto. :)
@ivandariosuarezrodriguez4627
@ivandariosuarezrodriguez4627 6 жыл бұрын
Muchas gracias Otto por tu oportuna respuesta.
@hernandomosquera2073
@hernandomosquera2073 3 жыл бұрын
Buenos días , por favor que diferencia hay en declarar una variable tipo DIM y Una variable Tipo Privarte ??
4 жыл бұрын
excelente la explicacion ,,, pero las letras son muy pequeñas ,, pero bueno habra un sacrificio de mi parte , para recopilar las senencia usadas ,,,,
@guaxh
@guaxh 6 жыл бұрын
Buen día, me surge una duda cuando declaras el método, pues utilizas el objeto "Me.XXXX", que significa ?
@luiscorado2868
@luiscorado2868 6 жыл бұрын
Muchas gracias Otto por compartir. Tu tiempo y tus conocimientos, te admiro mucho, como se te puede contactar por email.
@excelymasoficial
@excelymasoficial 6 жыл бұрын
Mi correo es otto@excelymas.com. Saludos!
@TheTramos00
@TheTramos00 6 жыл бұрын
Este ejemplo hace basicamente lo mismo que el video sobre Modulos de Clase #66 del 8/9/2015 sin embargo aca se habla propiedades de lectura y escritura. En aquel video se piden los datos por un InputBox y teniamos 1 sola hoja de calculo pero cual es la diferencia entre aquel video con este para tener que declarar las proiedades ? Saludos
@excelymasoficial
@excelymasoficial 6 жыл бұрын
+Ignacio Fabregas Tanto el vídeo de esa fecha y el actual son ejemplos muy simples en lo que a módulo de clase se refiere, pero para comprender el contexto de cómo trabajan las clases lo abordo de esa manera para que vayan familiarizandose con el tema. Ahora bien, en el vídeo de esa fecha las variables fueron declaradas de forma pública por lo que no requieren Propiedades de Lectura y Escritura, lo cual a la larga puede causar conflictos con otras clases. Lo recomendable es tratar las clases de forma privada y acceder a ellas mediante propiedades de lectura y escritura y mantener todas y cada una de las clases al margen una de otra no importando que repitas nombres de variables debido a su privacidad. En conclusión, cuando trabajas con variables públicas, deberás tener el cuidado con sus alcances y que no afecten otros procedimientos en el proyecto.
@TheTramos00
@TheTramos00 6 жыл бұрын
Entendido gracias por la respuesta ! Espero vengan mas videos de Modulos de Clase
@0baltimore
@0baltimore 6 жыл бұрын
No tenia ni idea de para que podrían servir, me parecen muy práctico usar módulos de clase, pero creo que me falta aún entender más la mecánica de su funcionamiento
@excelymasoficial
@excelymasoficial 6 жыл бұрын
+0baltimore Este tema es bastante complejo y a veces engorroso. Pero con esto sé que logran captar su funcionamiento. Más adelante haré algo más estructurado para que noten la importancia que tiene en VBA
@lacs83
@lacs83 Ай бұрын
No es que te falte entender... es que no esta bien explicado el concepto y no se dan ejemplos reales.
@SirJuly44
@SirJuly44 6 жыл бұрын
¿Qué pasó con los módulos 13 y 14? del módulo 12 saltó a 15. Favor indicar
@ALDELAOS
@ALDELAOS 5 жыл бұрын
Este es un tema que demanda un poco de teoria, en la programacion orientada a objetos, decir como se define un objeto, como se declara la una variable, declaracion de propiedades de ese objeto, y los metodos para ese objeto sin esto bien digerido dejas loco a mas de uno, y esto no es sino entender el por que de cada cosa de otra forma es muy berraco
@alfredonoboa
@alfredonoboa 6 жыл бұрын
Interesante, pero la pregunta que me surge es: ¿Cuándo uso una clase? ¿Y cuál es la ventaja de hacerlo vs un módulo "normal"? Gracias.
@excelymasoficial
@excelymasoficial 6 жыл бұрын
Si preguntas cuándo usarlo, pues para eso tienes que sopesar realmente qué te conviene más al momento de plantarte una una automatización. Te pongo el caso del Gestor de Inventarios; yo bien pude haber utilizado módulos de clases para correr los procesos y ahorrar mucho trabajo de programación en cada rutina que registra, que elimina, que calcula el costo, pero al final decidí hacerlo en Módulos Standard. Ahora, la ventaja de los módulos de Clase, es que tienes un nivel de abstracción que te permite escribir código más limpio. Imagina trabajar únicamente en módulos Standard como en el Gestor de inventarios que al momento de modificar una rutina tienes que modificar muchas cosas que van relacionadas cuando se dispare dicho procedimiento. Declarar una gran cantidad de variables que al final pierdes el control y es difícil darle seguimiento a las mismas. En cambio en el módulo de Clase, solo te remites a la clase donde tienes todo centralizado y aumentas código o modificas de forma progresiva lo cual afectará todo los procesos que realices. En conclusión código más limpio y mejor rendimiento en memoria. Sí, yo sé que es una curva de aprendizaje de intermedio a avanzado y hay que ponerle más enfoque y entendimiento para desarrollar algo muy bien estructurado, pero al final tienes excelentes resultado. Todo esto se conoce como Programación Orientada a Objetos. Espero te sirva toda esta explicación 😊
@alfredonoboa
@alfredonoboa 6 жыл бұрын
Excel y Más, bueno con esa respuesta tan completa, me dejaste más claras las cosas, gracias.
@lacs83
@lacs83 Ай бұрын
Llego demasiado tarde... Puedes usar una clase cuando quieres crear un objeto completamente nuevo o crearlo a partir de uno ya existente pudiendo agregar nuevas características. La ventaja de usar módulos de clase es la gran reutilización de código para ahorrarte gran tiempo de codificación. Por ejemplo si has usado python, en python las cadenas de texto son objetos y por lo tanto tienen métodos y propiedades, en VBA las cadenas son tipos primitivos, si quieres operar con ellas tienes que hacer uso de funciones. Pero podrías crear una clase para emular las cadenas en python y tener métodos personalizados para poder procesar esas cadenas de forma mas practica y amigable. Y la gran ventaja es que puedes importar esa clase en otros proyectos donde puedes utilizar el nuevo objeto cadena.
@alvarorodriguezlasso
@alvarorodriguezlasso 6 жыл бұрын
Otto no entiendo que PLUS dan los módulos de clase, pues con un módulo ordinario hubiera logrado el mismo resultado.
@excelymasoficial
@excelymasoficial 6 жыл бұрын
+Alvaro Rodríguez Lasso Sí, absolutamente tienes toda la razón. El ejemplo es simple para comprender el contexto de cómo manejar las clases. Haré un ejemplo más avanzado para que noten el plus :)
@excelymasoficial
@excelymasoficial 6 жыл бұрын
Pero también debes considerar que aunque es un ejemplo simple, el PLUS que podemos ver, es que es una tarea repetitiva en este caso, que es el registro de inventarios en un X número de tiendas, por lo que tienes una codificación más limpia con un módulo de clase, que cuando vayas a realizar una modificación, obviamente te remites al módulo de clase en donde está el motor de la automatización, volviendo el resto de las modificaciones más flexible, sin confundirte, ya que en la clase culmina todo. Pueden haber procedimientos más complejos, como por ejemplo, copiar rangos y exportarlos a otro libro y viceversa, eso lo podríamos convertir en un objeto que al momento de referirnos a ese objetos será tarea sencilla sin ponernos a pensar como realizar dicha programación cada vez que necesitemos implementarlo en nuestro proyectos. Recuerda que es una programación orientada a objetos los cuales lo podemos agregar como referencia en VBA y tenerlos disponibles en cualquier proyecto para hacer uso de ellos. Un abrazo y gracias por estar siempre atento :)
@lacs83
@lacs83 Ай бұрын
Es lo triste de la gran mayoría de los programadores de VBA... A pesar de que hacen uso de objetos, no alcanzan a ver las ventajas de crear objetos propios, personalizados o extender aquellos por medio del uso de modulos de clase.
ЛУЧШИЙ ФОКУС + секрет! #shorts
00:12
Роман Magic
Рет қаралды 31 МЛН
amazing#devil #lilith #funny #shorts
00:15
Devil Lilith
Рет қаралды 18 МЛН
#13 Módulos de clase en VBA
28:55
{{muCokeTo}}
Рет қаралды 1,4 М.
17. Guía Rápida VBA para Excel | Programando un Formulario
27:34
Excel y Más
Рет қаралды 15 М.
10. Guía Rápida VBA para Excel | UDF con argumento opcional
13:08
How to use ADO and VBA to Read from Worksheets
12:15
Excel Macro Mastery
Рет қаралды 76 М.
LA: Por qué usar módulos de clase en VBA
1:45:49
AccessUserGroups.org
Рет қаралды 4,1 М.
08. Guía Rápida VBA para Excel | Diferencia entre ByRef y ByVal
8:16