Ingresar datos en un cuadro de texto de Excel

Buenas, necesito ingresar datos en un cuadro de texto ( letras y números ) y que al apretar "enter" me guarde este valor en una casilla ( por ejemplo A1) y al ingresar nuevamente datos me los guarde en la siguiente fila ( A2) y así ... Muchas gracias

1 Respuesta

Respuesta
1
Bueno pues si entiendo bien la pregunta el siguiente código hace lo que quieres:
Private Sub TextBox1_KeyDown(ByVal cod As Msforms.ReturnInteger, ByVal shift As Integer)
Dim maxi As Integer
If Range("A1").Value = "" Then 'si la columna está vacia o tiene solo un elemento para que no de error
   maxi = 1
ElseIf Range("A2").Value = "" Then
   maxi = 2
Else
   maxi = Range("A1", Range("A1").End(xlDown)).Rows.Count + 1
End If
If cod = 13 Then 'se pulsó enter
  Me.Cells(maxi, 1).Value = Me.TextBox1.Value
End If
End Sub 
Para que funcione tienes que tener un cuadro de texto llamado TextBox1 y en la columna A escribe los resultados al pulsar enter.
Hola Experto, muy buena la programación!, pero tengo un inconveniente, cuando pulso enter paso a la siguiente casilla pero también me copia el valor anterior.
Así me queda
A1:Hola
A2:Hola experto
A3:Hola experto como
A4:Hola experto como estas
Este sería el resultado ideal
A1:Hola (enter)

A2:experto (enter)

A3:como (enter)

A4:estas (enter )

Muchas gracias
Es extraño lo que me dices, porque el código simplemente copia en la celda el valor que ya tienes en el cuadro. Supongo que borras después del enter para seguir escribiendo. Si no lo haces y el cuadro es pequeño puede que no veas todo lo que contiene.
De todos modos si quieres que te borre al pulsar Enter y después de copiar el contenido cambia el IF como sigue:
If cod = 13 Then
Me.Cells(maxi, 1).Value = Me.TextBox1.Value
Me.TextBox1.Value = ""  'borra el contenido despues de copiar
End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas