Datos en userform

Hola, disculpa pero lo anterior con respecto a la fecha no lo pude o mejor no lo supe utilizar, bueno ahora tengo una duda:
Tengo que definir un número en el textBox19 por cada letra que aparezca en el TextBox12 y escribí este código, ¿dime es correcto o existe alguna forma de hacerlo más corto? Teniendo en cuenta que son 05 Cuadros de texto y 24 letras por cada cuadro.
Dim ape1 As String
If Left(TextBox1, 1) = "Ñ" Then
ape1 = "N"
Else
ape1 = Left(TextBox1, 1)
End If
TextBox12.Text = ape1
Dim anume As String
If ape1 = "A" Then
anume = 1
Else
If ape1 = "B" Then
anume = 2
Else
If ape1 = "C" Then
anume = 3
Else
If ape1 = "D" Then
anume = 4
Else
If ape1 = "E" Then
anume = 5
Else
If ape1 = "F" Then
anume = 6
Else
If ape1 = "G" Then
anume = 7
Else
If ape1 = "H" Then
anume = 8
Else
If ape1 = "I" Then
anume = 9
End If
End If
End If
End If
End If
End If
End If
End If
End If
TextBox19 = anume

1 Respuesta

Respuesta
1
Ok; si todos los TextBox los revisarías de la misma forma, entonces puedes poner a estos texbox en la propiedad Tag (es una propiedad auxiliar que la puedes usar para lo que quieras) el valor 1
Y luego, pones
El código siguiente (supongo que en algún evento de algún botón de Aceptar o algo así)
Dim x As Control
For Each x In Me.Controls
If x.Tag = 1 Then
'Código anterior
End If
Next x
End Sub
Esto lo que hará es revisar en cada control y en los que tengan la propiedad Tag en 1 ejecutar el código de arriba.
Pero dime igual tengo que utilizar todo este código por cada letra :
If ape1 = "A" Then
anume = 1 ó anume = Asc(Ucase(ape1))-64
End If
Porque como te digo son cinco cuadros de texto pero en cada uno se va puede dar cualquiera de las 24 condiciones.
En el caso de las mayúsculas no hay problemas porque estoy usando en el ingreso:
TextBox1.Text = UCase(TextBox1.Text)
Gracias
La parte que reemplazas la Ñ por N, creo que no tienes otra; sin embargo para el resto puedes usar la función ASC que te da el código Ascii del carácter (la A es 65, la B 66, etc)
Podrías reemplazar lo anterior por
anume = Asc(Ucase(ape1))-64
Le agregué el Ucase por las dudas que ingrese minúsculas para que siempre compare con mayúsculas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas