🚀 UNA MACRO para VALIDAR campos vacíos de cualquier FORMULARIO en Excel VBA

Поделиться
HTML-код
  • Опубликовано: 2 дек 2024

Комментарии • 89

  • @leonardo210367
    @leonardo210367 11 месяцев назад +2

    Te felicito Sergio Campos, has realizado un trabajo descomunal. 👍👍👍👍👍

  • @guejarardis9294
    @guejarardis9294 3 года назад +1

    Muchas gracias Sergio, tu explicación fue muy clara, es la primera vez que te veo y ya me suscribí, una vez gracias por compartir

    • @SergioAlejandroCampos
      @SergioAlejandroCampos  3 года назад +1

      Gracias!!

    • @juliovalladares6446
      @juliovalladares6446 3 года назад

      @@SergioAlejandroCampos Hola Sergiol, aprovecho la respuesta al comentario de Ardis, como puedo aplicar este macro si tendo una multipage y solo quiero que me indique cuantos campos tengo vacios en una sola pagina?

  • @edwinsantosrodriguezsoliz3341
    @edwinsantosrodriguezsoliz3341 3 года назад +1

    Felicidades Sergio, muchas gracias.
    En el caso que algún txtbox no fuera de campo obligado...

  • @jorgeruben4405
    @jorgeruben4405 2 года назад +1

    Como siempre en tus cursos que he tomado o en los videos un GENIO!!!

  • @eduardoubierna7915
    @eduardoubierna7915 Месяц назад

    Excelente la optimización. La incluiré. Muchas gracias por compartir

  • @Edison_mm
    @Edison_mm 2 года назад

    Gracias Sergio.....la instrucción OPTION PRIVATE MODULE me encantó,,, busqué por mucho tiempo la forma de no hacer visibles las macros desde la cinta de opciones... Gracias!!

  • @petit2789
    @petit2789 2 года назад

    Hola Sergio, no te imaginas lo que me han ayudado tus ejemplos de macros para mi trabajo diario. Excelente y son muy claras tus explicaciones. Muchas Gracias por compartir tus conocimientos.

  • @Andresrios70
    @Andresrios70 3 года назад

    EXCELENTE LA MANERA COMO EXPLICAS. SIGUE ADELANTE CON TUS TUTORIALES

  • @luperobles4474
    @luperobles4474 4 года назад +1

    Bien amiguito, EXCELente . un video limpio sin nada q nos distraiga, un video muy bien explicado a la medida......Felicitaciones y plis sigue asi.....Muchisimas grxs, un besho

    • @SergioAlejandroCampos
      @SergioAlejandroCampos  4 года назад

      Me intrigas? A qué te refieres sin que nada los distraiga?

    • @luperobles4474
      @luperobles4474 4 года назад

      @@SergioAlejandroCampos si asi es , RECUEROD QUE ANTERIORES VIDEOS MUY BUENOS X CIETO, MOSTRABAS TU CARA, OTROS VIDEOS PONIAS MUSICA DE FONDO PS Y ESO DISTRAE A LOS USUARIOS , NO CREES??? EN CAMBIO ESTE VIDEO NO TIENE NADA DE ESO...GRACIAS SIGUE ASI,,,NO T ENOJES,,,

  • @lalibertad2028
    @lalibertad2028 2 года назад

    Espectacular Sergio. Felicitaciones y Dios te bendiga

  • @manuelmartin1952
    @manuelmartin1952 4 года назад +1

    Qué gran aportación, igual de eficaz que la del formato a cualquier formulario. Un 10

  • @johaqc
    @johaqc 2 года назад +1

    El código quedó muy limpio. Muchas gracias, Sergio

  • @RARESCONSTANTINMARIN
    @RARESCONSTANTINMARIN 4 года назад +8

    Hola Sergio, tus tutoriales son excelentes, de echo me han resultado muy útiles. Me gustaría qué en un futuro podrías hacer unos tutoriales sobre programación orientada a objectos en VBA Excel. Muchas gracias y un saludo.

    • @SergioAlejandroCampos
      @SergioAlejandroCampos  4 года назад

      Ya sigues mi curso de macros?

    • @RARESCONSTANTINMARIN
      @RARESCONSTANTINMARIN 4 года назад +5

      @@SergioAlejandroCampos Si, pero me gustaría si podrías profundizar más el tema de los módulos de clase y la paradigma de programación orientada a objetos en VBA. Un saludo.

  • @AronaWeb
    @AronaWeb 4 года назад +1

    Genial, increible, sensacional cada día aprendo más contigo, gracias

  • @joseantoniosanchezlopez7215
    @joseantoniosanchezlopez7215 4 года назад +1

    Buen trabajo Sergio muy interesante tu macro, la utilizaré en mis próximos proyectos.
    Gracias por tu tiempo y tus aportes.
    Saludos desde España 🇪🇸

  • @Antonio8688
    @Antonio8688 4 года назад +1

    Excelente, Sergio.

  • @j.andresguerrero1490
    @j.andresguerrero1490 4 года назад +1

    Que belleza, gracias Sergio.

  • @agustincastagnola
    @agustincastagnola Год назад

    Muy bueno , gracias por las explicaciones , puedo hacer una sugerencia , si se pasa el formulario donde vas a utilizarlo como argumento del procedimiento call validarvacios( F as userform) y en el procedimiento cambias set formactivo = f funciona inclusive si es un formulario emergente porque se valida en el mismo formulario que se usa . tambien se podría usar la propiedad tabindex de cada control para validar solo algunos controles . Un abrazo

  • @jmaciasanino
    @jmaciasanino 4 года назад

    Hola Sergio, gracias por la información que nos brindas, este formato aplica la misma lógica que se uso en el vídeo (Macro VBA para asignarle el mismo diseño a todos tus formularios en Excel @EXCELeINFO), pero ahora aplicada, ha no dejar espacios vacíos al llenar el formulario.
    Saludos desde Panamá

  • @JinjinatoSMP
    @JinjinatoSMP 4 года назад

    Impresionante Sergio. Muchísimas gracias por este gran trabajo.

  • @walterjesusgonzalesbardale391
    @walterjesusgonzalesbardale391 4 года назад

    Tu videos son muy útiles. Muchas gracias

  • @guidosevilla4674
    @guidosevilla4674 4 года назад

    Muy interesante. Ahora a romperme la cabeza para ver si lo añado parcialmente a mi proyecto. Gracias.

  • @RobertoCarlos-fc5jw
    @RobertoCarlos-fc5jw 4 года назад

    Hola Sergio Felicitaciones por los tutoriales, al ver el tutorial me puse a pensar como se podría hacer una macro tal cual el video para que se ingresen todos los campos de los controles en mayúsculas

  • @jorgeleonaceituno9601
    @jorgeleonaceituno9601 4 года назад

    Excelente macro Sergio!!! Muchísimas gracias, es de gran ayuda

  • @gustavoechenique7441
    @gustavoechenique7441 4 года назад

    Gracias, gracias, gracias, eres un genio

  • @HectorMendozas
    @HectorMendozas 4 года назад

    Super eficiente.... Muchas gracias

  • @Fredick.7
    @Fredick.7 4 года назад

    Gracias por compartir contenido de valor.

  • @fredyalvarenga
    @fredyalvarenga 2 года назад

    Gracias, una gran ayuda.

  • @michellcisternascabrera1743
    @michellcisternascabrera1743 4 года назад

    Excelente página Felicitaciones muy buen aporte

  • @luiscruceszelaya2542
    @luiscruceszelaya2542 4 года назад

    Muy útil Profesor Sergio!!
    Muchas gracias y bendiciones!!

  • @damianaraque6233
    @damianaraque6233 2 года назад

    Sergio buenas noches, muy bien sus videos realmente me han servido bastante, aplique este algoritmo y efectivamente hace lo que usted dice, sin embargo, me esta creando una fila nueva sin datos, como hago para impedir que esto suceda?

  •  4 года назад +1

    Fenomenal, para optimizar código

  • @pedrogutierrez7561
    @pedrogutierrez7561 8 месяцев назад

    gracias por compartir su saber

  • @jrmoises1950
    @jrmoises1950 4 года назад

    Buenas noches amigo Sergio, de verdad te felicito por saber explicar de manera tan clara y facil de entender, amigo tengo una inquietud y espero puedas ayudarme, como hacer un formulario que agregue datos uno a uno y posteriormente agregar mas datos, te explico: un transporte asegura 20 vehiculos y se guarda el numero de placa de cada uno y posteriormente puede asegurar 10 mas que seran agregados a la misma fila del cliente en la base de datos, saludos amigo y espero tu respuesta agradeciendote de antemano.

  • @franciscocatalanperez125
    @franciscocatalanperez125 3 года назад

    Hola Sergio Campos. Muy bueno el video. Lo único me surge el siguiente problema, dicha macro la tengo en un Form2 en boton Guardar cuando la pruebo todo OK. Pero al momento de ingresar al Form2 desde Form1 y dar guardar en el Form2 no activa el control. Si asocio el Form2 directo a un boton activeX en la Hoja, funciona pero deja de funcionar cuando paso por Form1

  • @kprrut
    @kprrut 4 года назад

    Gracias por tus vídeos...

  • @MAJAMA
    @MAJAMA 4 года назад

    Excelente optimización!

  • @luisleonardocastillo6502
    @luisleonardocastillo6502 4 года назад +1

    Saludos profesor Sergio, esta macro funciona a la perfección, solo una pequeña duda, como hacer cuando hay controles que no son obligatorios o sea pueden ser opcionales. Agradezco de antemano las atenciones.

    • @tor3996
      @tor3996 4 года назад +1

      Puede poner de color diferente a los controles obligatorios y al momento de validar cada control, agregar a la validación vacíos si los controles tienen ese color, así como también tendría que adecuar la macro al momento de colorear con color predeterminado cuando detecta que esta vacío.
      Ej: If miControl.Value = "" And miControl.BackColor = &H80000018 Then
      Perdón Amigo Sergio por atreverme a contestar, era precisamente una pregunta que me hice y al adecuar la macro de esa forma y otras mas me funciona como la necesito. Saludos.

    • @AronaWeb
      @AronaWeb 4 года назад

      @@tor3996 Podrias ser mas concreto, porque como le digo que ese control en mi caso son tres TEXTBOX no son necesarios cumplimentar, a no ser que cumpla una condición

    • @tor3996
      @tor3996 4 года назад +1

      @@AronaWeb En mi caso puse de color amarillo los textbox obligatorios validando si están vacíos y son de color amarillo quedando el código así:
      If miControl.Value = "" And miControl.BackColor = &H80000018 Then
      ControlesVacios = ControlesVacios + 1
      Else
      End If

  • @Aretradeser
    @Aretradeser 3 года назад

    Excelente tutorial, Sergio. Me gustaría saber qué modificación habría que realizar a ese código VBA si quisiera que alguno de estos TextBox y/o ComboBox pudieran quedar en blanco y, aún así, pudiera continuar con la ejecución como, por ejemplo, registrar los datos de estos controles.
    Imagina que tengo, no sé, 5 ComboBox y 10 TextBox y quiero que el ComboBox3 y el 7; y los TextBox4, 8 y el 10, queden en blanco.Cómo se haría esto?
    Muchísimas gracias, Sergio.

  • @elvisperezr.6352
    @elvisperezr.6352 3 года назад

    Hola, excelente tutorial me ha servido de mucho. Pero temgo una pregunta, cómo puedo hacer para validar también optionbuttoms??

  • @orlando5073
    @orlando5073 3 года назад

    Me gusto mucho la macro, me ayudó con el proyecto que estoy desarrollando y está muy bien explicado; pero en caso haya textbox que no deseo que sean obligatorios, cómo se podría hacer para excluirlos?

  • @superdupperfix
    @superdupperfix Год назад

    Muy interesante el tutorial. Pero que pasa cuando tenemos en el UserForm tres OptionButton y queremos que el usuario seleccione uno de ellos. Que como sabemos los OtionButton trabajan en sintonia

  • @leonardocontento4208
    @leonardocontento4208 4 года назад

    Excelente maestro mil gracias por compartir sus conocimientos una pregunta como hacer en un formularo cambie de color el comand button cuando se seleccione uno y los demas que
    Queden con otro color

  • @israelnegrillo2415
    @israelnegrillo2415 4 года назад +2

    Me gusto la macro, muy bien explicado; pero en caso haya textbox que no deseo sean obligatorios, cómo haría para excluirlos?

    • @Edison_mm
      @Edison_mm 2 года назад

      Con la propiedad TAG se le puede indicar NA (que no aplica)

  • @MauricioDeAbreu
    @MauricioDeAbreu 4 года назад

    Excelente video Sergio, y excelente codigo, te queria consultar algo si
    no es molestia, estoy trabajando con este codigo desde un boton en una
    hoja, y funciona de maravilla valida los vacios y no deja que se
    registren valores vacios, pero, cuando meto este boton dentro de un
    formulario donde tengo otros botones, esta funcion que presentas para
    validar vacios no funciona, pareciera que se salta eñ cpdogp de la validacion y
    siguiera con el reesto del proceso, Tendras alguna idea del porque pasa y como solucionarlo ¿?

  • @AnnnSysCorram
    @AnnnSysCorram 4 года назад +1

    Hola, Muchas gracias por tu gran conocimiento y ayuda que nos brindas!! tengo una duda para seguir con una macro que no va mucho con la actual, pero agradecería mucho su me pudieras ayudar con una duda que tengo, necesito saber si puedo rescatar un dato de la pantalla inmediato, te comento necesito saber un rango de una tabla de datos que es variable dependiendo del equipo a cotizar y tengo unas funciones que me selecciona el rango pero no puedo tenerlo por escrito, solo puedo verlo por la pantalla inmediato y necesito tener ese dato para copiarlo en word, sabes si puedo sacar un dato de la pantalla inmediato de forma automática o por otra macro? o alguna forma en la que me salga escrito el rango de celdas con datos ???
    Si me pudieras ayudar en serio te lo agradecería mucho! ya que gracias a tu ayuda he aprendido y he podido avanzar en los conocimientos!

    • @SergioAlejandroCampos
      @SergioAlejandroCampos  4 года назад

      No estoy seguro que se puedan obtener datos de la ventana Inmediato, pero de me ocurre que puedes enviar tus datos al portapapeles para luego pegarlos en Word. Prueba esto www.exceleinfo.com/enviar-informacin-al-portapapeles-usando-macros-en-excel-3/

  • @SuperCarlossc
    @SuperCarlossc 4 года назад +1

    Buenas Tardes....Sergio estoy en un proyecto de una Base de Datos en Excel donde Registro, Edito, Elimino, Modifico y Agrego... esa parte funciona bien, ahora a esa parte necesito agregarle otro formulario (ESTADISTICAS) donde se harán una serie de cálculos y se guardara información en una Tabla... pero ese formulario nuevo tiene información que se registra del primero (DATOS)... me puedes ayudar a programar ese formulario, me puedes dar un correo donde enviarte el archivo... gracias

  • @SDF1YG
    @SDF1YG 4 года назад

    Hola amigo, gracias por compartir, hice una macro similar pero dentro del formulario está es mucho más práctica, pero tengo una duda, cómo podrías agregar una excepción a la validación de controles vacíos? Por ejemplo los que están en el frame1 para que se guarde por partes, saludos.

  • @MrPacho04
    @MrPacho04 2 года назад

    Hola Sergio, gracias por tus enseñanzas, la aplique pero cuando un campo o textbox queda deshabilitado por alguna condición de otro textbox me sigue mostrando que un mensaje de un control vacio

  • @lacs83
    @lacs83 4 года назад +1

    Muy buena aportación Sergio, pero utilizar una variable global para utilizarla de contador? Ese pequeño detalle ensucia el código ademas de que si quiero reutilizar tu código en varios proyectos debo utilizar una variable global llamada ContolesVacios para que funcione. Me parece que hubiese sido mas optimo empaquetar todo dentro de un modulo y a ContolesVacios enviarle como argumento el formulario activo y asi ya tengo empaquetada la utilidad y puedo distribuirla. Saludos!

  • @julianquaino8747
    @julianquaino8747 4 года назад

    Hola Sergio! cuando uso VLookUp en VBA.. el valor que encuentro se encuentra dentro de una celda... como hago para ACTIVAR esa celda que encontre con VLookUp para poder hacerle operaciones?? Gracias!

  • @AronaWeb
    @AronaWeb 4 года назад

    Hola Sergio, espero puedas ayudarme, estoy usando tu validación de Controles Vacíos, pero tengo tres TEXTBOX, los cuales si no se cumplen una condición no son necesarios poner nada, como seria entonces

  • @julianquaino8747
    @julianquaino8747 4 года назад +1

    Hola Sergio.. muy buenas explicaciones, felicitaciones! Tengo una duda que no encuentro por ningún lado como resolverla.. Como hago para contar los ESPACIOS que hay antes de una palabra de una celda en excel?? ya sea con macros o sin macros. Espero tu respuesta, DESDE YA MUCHAS GRACIAS!!

    • @SergioAlejandroCampos
      @SergioAlejandroCampos  4 года назад

      Se me ocurre que uses macros para que te recorra los caracteres de una celda, usando For Next y Chr. Nunca lo he hecho, pero puede tomar ideas de este tutorial www.exceleinfo.com/restringir-ingreso-de-texto-o-nmeros-en-textbox-en-excel/

    • @julianquaino8747
      @julianquaino8747 4 года назад +1

      @@SergioAlejandroCampos Muchas gracias!! lo pongo en practica y vere si puedo resolverlo, saludos!

  • @HectorMendozas
    @HectorMendozas 4 года назад +1

    Ya le encontre.. tambien funciona para deshabilitar la captura una vez guardado
    Sub FijarCamposForm()
    Dim FormActivo As UserForm
    Dim miControl As control
    Set FormActivo = VBA.UserForms(0)
    For Each miControl In FormActivo.Controls
    If TypeOf miControl Is MSForms.TextBox Then
    miControl.Enabled = False
    miControl.BackColor = VBA.vbWhite
    Else
    If TypeOf miControl Is MSForms.ComboBox Then
    miControl.Enabled = False
    miControl.BackColor = VBA.vbWhite
    Else
    'Nada
    End If
    End If
    Next miControl
    End Sub

  • @aeormusic
    @aeormusic 4 года назад

    Hola espero se encuentre bien, deseo realizar una macro de este tipo en Access, cómo podría programar el código si me sale un error que dice "No se ha definido el tipo definido por el usuario" y me resalta las tabulaciones Sub ValidarVacios()
    y Dim FormActivo As UserForm?

  • @paulhuamanayala774
    @paulhuamanayala774 3 года назад

    Hola Sergio, Como puedo hacer para que La Macro tome el Valor "cero" como un valor, y no como si la celda estaria vacia?

  • @jorgeareas218
    @jorgeareas218 4 года назад

    Hola Sergio, mi pregunta es la siguiente, tengo una hoja con 745 registros, en la columna a desde la fila A2:A340, deseo cambiar la nomenclatura de la estructura de por ejemplo: 1201001 a 1201, la cuenta 1201001, va cambiando de valores en los ultimos tres digitos (1201035).
    He utilizado esta rutina para cambiar los valores:
    Columns("A").Replace _
    What:="1308???", Replacement:="1302", _
    SearchOrder:=xlByColumns, MatchCase:=False
    He repetido esta rutina por cada valor que deseo cambiar, he intentado hacer un bucle donde detallo que si encuentra 1201XXX, lo cambie a 1201, si encuentra 1308XXX cambie a 1302, como en el ejemplo de arriba, no he logrado mejorar la rutina arriba detallada, podrias brindarme algun consejo para mejorar, no se si logre explicarme?

  • @Mar10Bravo
    @Mar10Bravo 4 года назад

    Hola. Espero alguien me ayude.
    Me instale el add in de ExceleInfo y me dio curiosidad que seleccionando celdas se puede aplicar la macro a dicha selección.
    Es decir, yo utilizo mucho GoalSeek.
    Ya logre hacer que me funcione posicionandome en la celda deseada y llegar al valor deseado.
    Ahora, ¿es posible hacerlo de forma multiple por selección?
    Ejemplo.
    Si en columna
    A1 esta la celda a cambiar, C1 el valor deseado y D1 es el valor al que quiero llegar.
    Si yo selecciono de C1 a C4 ejecutando la macro me cambie a los valores deseados.
    Muchas gracias.

  • @Macelitro
    @Macelitro 4 года назад

    Estimado... muy claro su ejemplo. Pero tengo un problema. descargue su archivo y funciona sin problemas, pero al hacerlo en un archivo desde cero nunca llama la macros y e ingresa sin pasar por la función. alguna idea de que puede ser. Gracias de todos modos.

    • @Macelitro
      @Macelitro 4 года назад

      Entendí como se da el error, pero no se como solucionarlo.
      Si el form lo llamo desde el editor VB la llamada funciona, pero en excel tengo un botón que trae un formulario con Varios otros formularios, cuando uso ese método es que no correo la macros.

  • @andresfloresvera2125
    @andresfloresvera2125 4 года назад

    Hola, cuando ejecuto un formulario como puedo hacer para que me permita navegar por las celdas de excel sin cerrar el formulario ejecutado? Me ayudas porfa, hace muchos años lo hice y no puedo recordarlo...

  • @HectorMendozas
    @HectorMendozas 4 года назад +2

    aqui pongo esa misma macro pero que sirva solo para limpiar todos los campos de un formulario
    Sub LimpiarCamposForm()
    Dim FormActivo As UserForm
    Dim miControl As control
    Set FormActivo = VBA.UserForms(0)
    For Each miControl In FormActivo.Controls
    If TypeOf miControl Is MSForms.TextBox Then
    miControl.Value = ""
    miControl.BackColor = VBA.vbWhite
    Else
    If TypeOf miControl Is MSForms.ComboBox Then
    miControl.Value = ""
    miControl.BackColor = VBA.vbWhite
    Else
    'Nada
    End If
    End If
    Next miControl
    End Sub

  • @2011EMIS
    @2011EMIS 2 года назад

    Buen día. Me hace el control, me pinta de naranja los vacios, pero igualmente me carga los datos en la tabla... qué puedo estar realizando mal??

  • @eduardomunoz2764
    @eduardomunoz2764 4 года назад

    Saludos a todos.

  • @alvarorodriguezlasso
    @alvarorodriguezlasso 4 года назад

    Excel-ente

  • @HectorMendozas
    @HectorMendozas 4 года назад +1

    quise aprovechar la idea para bloquear los campos y de igual limpiar el formulario, limpiar si funciona bien, pero inhablitar los campos no de deja o me bloquea todo o no me permite la funcion enable por control
    Sub FijarCamposForm()
    Dim FormActivo As UserForm
    Dim miControl As control
    Set FormActivo = VBA.UserForms(0)
    For Each miControl In FormActivo.Controls
    If TypeOf miControl Is MSForms.TextBox Then
    FormActivo.Enabled = False
    miControl.BackColor = VBA.RGB(191, 191, 191)
    Else
    If TypeOf miControl Is MSForms.ComboBox Then

    miControl.BackColor = VBA.RGB(191, 191, 191)
    Else
    'Nada
    End If
    End If
    Next miControl
    End Sub