Não falo português. Mas eu falo espanhol. Espero que você será capaz de entender o meu espanhol.
La cosa es que no se puede hacer lo que usted está pidiendo. Una vez de que uno empieza a teclar datos dentro de una celda, Excel ya no reponde a eventos hasta que uno registra la fórmula con ENTER o CTRL+ENTER o CTRL+SHIFT+ENTER. Mientras Excel está en modo de editar (edit mode) nada de VBA corre.
La solución que nos ofrece Sixth Sense aproveche del hecho de que un control ActiveX sí corre VBA mientras uno está editando dentro de la caja y así podemos hacer algo bastante parecido a lo que usted desea.
Favor note que el código se coloca en el módulo de la hoja que tiene la caja de texto y no en un módulo normal.
<font face=Calibri><SPAN style="color:#00007F">Private</SPAN> m_celTarget <SPAN style="color:#00007F">As</SPAN> Excel.Range<br><br><SPAN style="color:#00007F">Private</SPAN> <SPAN style="color:#00007F">Sub</SPAN> TextBox1_KeyPress(<SPAN style="color:#00007F">ByVal</SPAN> KeyAscii As MSForms.ReturnInteger)<br><br> <br> <SPAN style="color:#00007F">If</SPAN> m_celTarget <SPAN style="color:#00007F">Is</SPAN> <SPAN style="color:#00007F">Nothing</SPAN> <SPAN style="color:#00007F">Then</SPAN><br> <br> <SPAN style="color:#00007F">If</SPAN> ActiveCell.Column > 7 <SPAN style="color:#00007F">Then</SPAN> <SPAN style="color:#00007F">Exit</SPAN> <SPAN style="color:#00007F">Sub</SPAN><br> <br> <SPAN style="color:#00007F">Set</SPAN> m_celTarget = ActiveCell<br> <br> <SPAN style="color:#00007F">Set</SPAN> m_celTarget = Range("A" & Rows.Count).End(xlUp)<br> <SPAN style="color:#00007F">Set</SPAN> m_celTarget = Cells(m_celTarget.Row, Columns.Count).End(xlToLeft)<br> <br> <SPAN style="color:#00007F">If</SPAN> Len(m_celTarget.Value) <> 0 <SPAN style="color:#00007F">Then</SPAN> <SPAN style="color:#00007F">Set</SPAN> m_celTarget = m_celTarget.Offset(, 1)<br> <br> <SPAN style="color:#00007F">If</SPAN> m_celTarget.Column = 7 <SPAN style="color:#00007F">Then</SPAN><br> <SPAN style="color:#00007F">Set</SPAN> m_celTarget = m_celTarget.Offset(1, -6)<br> <SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN><br> <br> <SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN><br> <br> m_celTarget.Value = Chr(KeyAscii)<br> <br> TextBox1.Text = ""<br> <br> <SPAN style="color:#00007F">If</SPAN> m_celTarget.Column = 7 <SPAN style="color:#00007F">Then</SPAN><br> <SPAN style="color:#00007F">Set</SPAN> m_celTarget = m_celTarget.Offset(1, -6)<br> <SPAN style="color:#00007F">Else</SPAN><br> <SPAN style="color:#00007F">Set</SPAN> m_celTarget = m_celTarget.Offset(, 1)<br> <SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN><br> <br><SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN><br><br><SPAN style="color:#00007F">Private</SPAN> <SPAN style="color:#00007F">Sub</SPAN> TextBox1_LostFocus()<br><br> TextBox1.Text = ""<br> <SPAN style="color:#00007F">Set</SPAN> m_celTarget = <SPAN style="color:#00007F">Nothing</SPAN><br><br><SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN><br></FONT>