Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Uso de With para el registro de datos en una orden de trabajo

| 2 comentarios

El presente ejemplo del Uso de With permitirá realizar el registro de los datos de una orden de trabajo. En primer lugar, se ha añadido un botón, mediante el cual se acceso al formulario. A continuación, se presenta una imagen del botón.

boton inicial

Luego de dar click al botón presentado, se puede acceder al siguiente formulario

interfaz

(Para mayor visualización de la imagen, hacer click en la misma)

Como se puede apreciar, el formulario solicita una serie de datos, los cuales pueden ser seleccionados mediante listas desplegables o siendo escritos directamente. El uso de With se empleo en la creación de las listas desplegables. Por ejemplo, en el caso del material del producto, se creó la siguiente lista:

With ComboBox8
.AddItem "SAE 40"
.AddItem "SAE 41"
.AddItem "SAE 430A"
.AddItem "SAE 430B"
.AddItem "SAE 43"
.AddItem "SAE 620"
.AddItem "SAE 62"
.AddItem "SAE 622"
.AddItem "SAE 63"
.AddItem "SAE 640"
.AddItem "SAE 64"
.AddItem "SAE 65"
.AddItem "SAE 660"
.AddItem "SAE 66"
.AddItem "SAE 67"
.AddItem "SAE 68A"
.AddItem "SAE 68B"
.AddItem "SAE 710C"
.AddItem "ACERO"
.AddItem "COBRE"
End With

Sin embargo, el uso de With puede ser utilizado no solamente para mostrar una lista de datos sino que podemos ingresar datos en las celdas que deseemos. El principal beneficio es reducir el tamaño de las sentencias que ingresamos y cumplir con la misma función. A continuación, se presenta el uso del With para la escritura de datos en el formato de la orden de trabajo.La programación mostrada permite registrar los datos de fecha de emisión y fecha de entrega ingresados en el formulario.

If dia = "" Or mes = "" Or año = "" Or diae = "" Or mese = "" Or añoe = "" Then
MsgBox ("Ingrese todos los datos")
Else
respuesta = MsgBox("¿Los datos ingresados son correctos?", vbYesNo, "Confirmación de datos")
Select Case respuesta
Case vbYes
With Worksheets("FORMATO-ORDEN DE TRABAJO")
.Range("F3").Value = dia
.Range("G3").Value = mes
.Range("H3").Value = año
.Range("F4").Value = diae
.Range("G4").Value = mese
.Range("H4").Value = añoe
End With
Case vbNo
MsgBox "Vuelva a ingresar los datos"
End Select
End If

Finalmente, es necesario mostrar cuál es el formulario que se desea rellenar. La imagen del mismo se muestra a continuación.

formato ot

(Para mayor visualización de la imagen, hacer click en la misma)

Dentro del formulario, se presenta el botón de Borrar contenido. El uso de With es tan flexible que permite ejecutar diversas acciones en diferentes celdas seleccionadas. En este caso, se ha utilizado para limpiar el registro ingresado en el formato de orden de trabajo

With Worksheets("FORMATO-ORDEN DE TRABAJO")
.Range("F3").Value = ""
.Range("G3").Value = ""
.Range("H3").Value = ""
.Range("F4").Value = ""
.Range("G4").Value = ""
.Range("H4").Value = ""
.Range("C3").Value = ""
.Range("C4").Value = ""
.Range("C5").Value = ""
.Range("B9:F16").ClearContents
End With

A continuación, puede dar click en el siguiente enlace para probar la macro descrita.

Uso de With

 

Elaborado por: Gustavo Sánchez Albinacorta

2 comentarios

  1. hola amigo ,pero al guardar la información no se va corriendo hacia abajo ??

  2. Hola, Felicitaciones, que buenos resultan estos formularios!! quisiera aprender algo de esto, aunque conozco excel me hace falta llegar hasta estos niveles. Tienes de todo, sin embargo el que yo más necesito que es el Cuadre de Caja por sucursales y cantidad de piezas y denominaciones no lo veo... :(...

Deja una respuesta

Los campos requeridos estan marcados con *.