Saludos grupo de este foro, tengo una consulta que la he revisado en varias paginas y no he visto algo similar.
Me gustaria saber como hago para que de un grupo de letras ordenadas--> abcd que deben ingresarse desde 10 textbox. En Cada textbox ingresan maximo los 4 caracteres mencionados.
Pero si coloco la abcd en el textbox, en la celda debera ingresar asi: abcd
Si coloco solo la a, enla celda debera ingresar a000
Si coloco la b en la celda debera ingresar 0b00
Si coloco la c en la celda debera ingresar 00cd
Si coloco la d en la celda debera ingresar 000d
y todas las posibles uniones como ab en la celda debe ir ab00
etc
es decir el sobre la base del abcd si una falta se completa con cero 0
Bueno al final debo enviar todo el contenido de los textbox a concatenarse en la celda 118 a partir de la fila 10
Como lograr esto?
Subo un archivo para que lo vean
Agradezco anticipadamente un archivo
Adjunto | Tamaño |
---|---|
autocompletartextbox_segun_el_caso.xlsm | 29.28 KB |
Imagino que se podrá hacer de muchas formas distintas mejor optimizadas que esta qur propongo, pero como idea general yo compararía lo que ha introducido el usuario con cada letra que me interesa e iría componiendo la cadena de resultado
Me explico con un ejemplo:
Function CadenaResultado(TextoDelUsuario As String) As String
CadenaResultado = ""
If TextoDelUsuario Like "*a*" Then
CadenaResultado = CadenaResultado & "a"
Else
CadenaResultado = CadenaResultado & "0"
End If
If TextoDelUsuario Like "*b*" Then
CadenaResultado = CadenaResultado & "b"
Else
CadenaResultado = CadenaResultado & "0"
End If
If TextoDelUsuario Like "*c*" Then
CadenaResultado = CadenaResultado & "c"
Else
CadenaResultado = CadenaResultado & "0"
End If
If TextoDelUsuario Like "*d*" Then
CadenaResultado = CadenaResultado & "d"
Else
CadenaResultado = CadenaResultado & "0"
End If
End Function
------
Ya sé Excel, pero necesito más.
Estimado pacomegia, agradezco mucho tu colaboracion a este problema, no obstante no se como utilizar esta funcion en el userform al ingresar cualquiera de las 4 letras del orden abcd por ejemplo a, b , c, o d o mezcladas ab, ac, bd etc, etc y los textboxes se autocompleten con los ceros segun donde se vayan escribiendo antes de enviar concatenados a la celda de la hoja
Para aprender hay que preguntar
Puedes usar la función por ejemplo tras escribir un valor en el cuadro de texto
por ejemplo para el textbox6 puedes ponerlo en el evento AfterUpdate, que se produce cuando el usuario teclea algo en ese textbox y cambia a otro control
Private Sub TextBox6_AfterUpdate()
TextBox6.Text = CadenaResultado(TextBox6.Text)
End Sub
------
Ya sé Excel, pero necesito más.
Gracias, gracias!! siii!! pacomegia funciona perfecto tal como queria,
Queria comentarte que intente hacer que luego de escribir en el textbox1 salte automáticamente al siguiente textbox hasta el final con esto:
Private Sub TextBox1_Change()
TextBox1.Text = CadenaResultado(TextBox1.Text)
TextBox2.SetFocus
End Sub
pero solo me permite escribir una letra y salta
Por su puesto que con AfterUpdate() no salta al siguiente textbox, bueno si no se automatiza seguire usando Tab para hacer cada salto
Te quedo muy agradecido
PD: no se si hay que valorar, como y donde se hace aquello..
Para aprender hay que preguntar