Optimización de código vba Excel

Tengo un formulario el cual cuenta con 60 textbox, por que es la cantidad máxima de información que puedo emplear en ese proceso; la duda es como se puede optimizar el código para no tener que escribir todas las variantes en cada una de las líneas de captura, este es el fragmento de cada línea

If Me.TextBox1 <> Empty And Me.TextBox2 = "" Then 
MsgBox "Falta la fecha del folio 1 en la linea 1", vbExclamation, "Falta Fecha"
Me.TextBox2.SetFocus
ElseIf Me.TextBox1 <> Empty And Me.TextBox2 <> Empty And Me.TextBox3 = "" Then
Sheets("FORMATO").Range("F18") = texto1 & Me.TextBox1 & texto1a & Me.TextBox2
ElseIf Me.TextBox1 <> Empty And Me.TextBox2 <> Empty And Me.TextBox3 <> Empty And Me.TextBox4 = "" Then
MsgBox "Falta la fecha del folio 2 en la linea 1", vbExclamation, "Falta Fecha"
Me.TextBox4.SetFocus
ElseIf Me. TextBox1 <> Empty And Me. TextBox2 <> Empty And Me. TextBox3 <> Empty And Me. TextBox4 <> Empty Then
Sheets("FORMATO").Range("F18") = texto2 & Me.TextBox1 & ", " & Me.TextBox3 & texto2a & Me.TextBox2 & ", " & Me.TextBox4
Else
End If

El formulario cuenta con 15 líneas por lo cual quisiera saber si existe una manera de no tener que repetir esto 15 veces ósea una para cada una de las líneas del formulario.

1 respuesta

Respuesta
2

Rafa y bienvenido a TodoExpertos

Recomendaciones:

https://youtu.be/dy9w9zbkCaw 

No entiendo muy bien qué tienes en las variables texto1 y texto1a, pero si tienes datos para cada línea, entonces también puedes pasar esas variables como parámetros.

Sheets("FORMATO").Range("F18") = texto1 & Me.TextBox1 & texto1a & Me.TextBox2

Pon el procedimiento validar_datos dentro de userform y para cada línea ejecutas el procedimiento pasando como parámetros los textbox, la hoja, la celda, la línea y los 4 textos.

Prueba el siguiente código y me comentas cualquier duda:

No permite poner el código

El editor del foro no permite poner el código.

Lo compartí en mi blog:

https://tutorialesexcelymacros.blogspot.com/2023/10/optimizar-codigo.html 

Sal u dos

Dante Amor

¡Gracias!  por la información, en la cadenas Texto1 y Texto1a, así como en Texto2 y 2a, no son variantes son cadenas de texto algo largas que deben llevar en conjunto con los datos que se ingresan por eso para no escribirlas todas en cada ocasión los cree así y varían si se introduce uno o dos folios por eso el 1 y el 2

Si son las mismas cadenas para todas las líneas entonces puede ser así:

Private Sub CommandButton1_Click()
Call validar_datos(TextBox1, TextBox2, TextBox3, TextBox4, "FORMATO", "F18", "1", _
Texto1, texto1a, texto2, texto2a)
'
Call validar_datos(TextBox5, TextBox6, TextBox7, TextBox8, "FORMATO", "F19", "2", _
Texto1, texto1a, texto2, texto2a)
'
Call validar_datos(TextBox9, TextBox10, TextBox11, TextBox12, "FORMATO", "F20", "3", _
Texto1, texto1a, texto2, texto2a)
'
'
'repetir las 15 veces...
'
End Sub

¡Gracias! 

Muy amable dante ahora si ya no tengo un montón de líneas gracias nuevamente por compartir tus conocimientos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas