Ordenar texto dentro de una caja (TextBox)

Intento hacer algo similar a un diccionario y en la columna "A" de la hoja1 (Datos) tengo unas palabras, y en la columna "B" el significado. En la hoja2 (Buscar) tengo dos cajas de texto (TextBox1 y TextBox2) y un botón. Cuando introduzco una palabra en el textbox1 y hago click en el botón, me busca el significado y me lo carga en el textbox2.

Lo que me gustaría es que me ordenara el resultado en el textbox2.

Por ejemplo:

1- Pena de verse ausente de la patria o de los deudos o amigos.

2- Tristeza melancólica originada por el recuerdo de una dicha perdida.

1 respuesta

Respuesta
2

Puedes poner la imagen de la hoja "Datos", solamente para ver cómo tienes tu ejemplo del significado de "nostalgia".

También puedes poner el código de tu botón "Buscar" (utiliza el icono para insertar código)

Private Sub CommandButton1_Click()
dato = TextBox1.Value
  If dato = "" Then
     MsgBox "Ingresa el dato a buscar"
     TextBox1.SetFocus
     Exit Sub
  End If
  Set h = Sheets("Datos")
  Set b = h.Columns("A").Find(dato, lookat:=xlWhole)
  If Not b Is Nothing Then
    TextBox2.Value = h.Cells(b.Row, "B")
    Else
    MsgBox "El dato no existe"
  End If
   TextBox1 = ""
End Sub

Hola Dante. Por supuesto, aquí te envío imágenes. También estoy abierta a sugerencias si crees que hay otra manera mejor. Gracias.

Podría verse de la siguiente manera:

Pero deberán aplicarse algunas reglas:

1. Cambia la propiedad Multiline en el textbox2 a True.

2. En los Significados en la hoja "Datos", deberás numerar los significados con el número seguido del guión sin espacio entre el número y el guión. Tal y como pusiste tu ejemplo: 1- significado. 2-Significado. 3- Significado. Y así sucesivamente.

Prueba con la siguiente macro:

Private Sub CommandButton1_Click()
  Dim dato1 As String, cad As String, cad2 As String
  Dim h As Worksheet, b As Range, i As Long
  '
  dato1 = TextBox1.Value
  TextBox2.Value = ""
  If dato1 = "" Then
     MsgBox "Ingresa el dato a buscar"
     TextBox1.SetFocus
     Exit Sub
  End If
  '
  Set h = Sheets("Datos")
  Set b = h.Columns("A").Find(dato1, , xlValues, xlWhole)
  If Not b Is Nothing Then
    cad2 = b.Offset(, 1)
    For i = 1 To Len(cad2) - Len(Replace(cad2, "-", "")) - 1
      cad = cad & Left(cad2, InStr(1, cad2, i + 1 & "-") - 1) & vbCr
      cad2 = Trim(Mid(cad2, InStr(1, cad2, i + 1 & "-") - 1))
    Next
    TextBox2.Value = cad & cad2
  Else
    MsgBox "El dato no existe"
  End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas