ametrine - lerp makes sense when used over time - in your case it's used once when the touch happens.
You need to sort-of chain events - make the tap set in motion a series of events that will make your textbox appear.
So, the best way is to split anything that needs to happen into steps in your head - then it's easy to split into actions. So instead of thinking "A box fades in" you think "A box appears, for example, above the play area, with opacity of 0, then it moves over to the desired position while fading in - this takes 2 seconds to complete". Now there's a plan!
You already have the coordinates as variables, now you could add a boolean variable that checks if the dialog box should be moving.
Then, for example, on tap you spawn a dialog box somewhere offscreen, set it's targetx and targety to where it should appear (you would set the boolean to active by default and opacity to 0 when you edit the object in the editor (to save on actions).
Now you make a condition like - Is Boolean instance variable set - for your textbox. Move your set position code here - that one from above is good, just replace the 400 with dp - and see how fast it moves - if it's too slow make ti bigger by using dp*2 - or more. If it's too fast make it slower by using, for example dp/2 - or less. Add something similar to your opacity.
This should work. Then you can add something like - if txtbox opacity >= 100 set the boolean to false.
Another thing - if it's always the same (like your dialog panel always comes up from below) - there's no need for the instance variables, you can do something simple, like lerp(Sprite.Y,200,dt) <== If 200 is the target coordinate.
Hopefully this gets you on the right track.