Autocompletar con ceros desde textbox según caso de letra ingresada

5 envíos / 0 nuevos
Último envío
FixFox
Imagen de FixFox
Offline
última acción: Hace 5 años 11 meses
alta: 24/01/2018 - 21:34
Puntos: 160
Autocompletar con ceros desde textbox según caso de letra ingresada

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

 

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 3 horas 41 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Imagino que se podrá hacer de

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.

FixFox
Imagen de FixFox
Offline
última acción: Hace 5 años 11 meses
alta: 24/01/2018 - 21:34
Puntos: 160
Estimado pacomegia, agradezco

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

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 3 horas 41 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Puedes usar la función por

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.

FixFox
Imagen de FixFox
Offline
última acción: Hace 5 años 11 meses
alta: 24/01/2018 - 21:34
Puntos: 160
Gracias, gracias!! siii!!

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