# Vaciar TextBox



## gustavomeeuwes (Aug 28, 2010)

Hola! 
Aquí de nuevo con una nueva duda.

Tengo un textbox, TextBox1, copio el valor en A1:


```
Private Sub TextBox1_Change()
Range("A1") = TextBox1
End Sub
```
 
Como sigo para borrar el contenido del TextBox pero que lo mantenga en A1 hasta tanto escriba un nuevo valor en el TextBox?
O si esto es complicado con poder borrar el textbox me alcanza, ya que puedo copiar el valor de A1 en A2 y hacer Pegado Especial y hacerlo como Valor. No será la forma más elegante pero cumple la función

Para borrar el TextBox probé, entre otras que ví en los foros, con:


```
TextBox1 = Empty
```
 
Pero no hace nada.
Cual sería la instrucción correcta?

Desde ya muchas gracias. 
Saludos 
Gustavo


----------



## LEONEL (Aug 29, 2010)

En lugar de poner el código en
Private Sub TextBox1_Change()
     Range("A15") = TextBox1
End Sub

Ponlo en:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Range("A15") = TextBox1
TextBox1=Empty
End Sub


o tambien TextBox1=""  funciona

TextBox1_Change() tiene un enlace directo con el Rango
en cuanto cambia el TextBox1 Cambia Tambien el rango

Espero te sirva


----------



## gustavomeeuwes (Aug 29, 2010)

Hola Leonel:
Gracias por tu respuesta.
Pero el código que me enviaste no copia el valor a A1.
Desde ya muchas gracias
Gustavo


----------



## LEONEL (Aug 29, 2010)

Cambia Range("A15") por Range("A1")

Saludos


----------



## gustavomeeuwes (Aug 29, 2010)

Hola Leonel:
Quizás no me expresé bien.
No es un problema del número de celda.
No lo copia directamente.

Gracias
Saludos
Gustavo


----------



## gustavomeeuwes (Aug 29, 2010)

Hola:
El problema a mi entender sigue siendo que aunque ejecute la instrucción en forma independiente:

```
TextBox1 = Empty
ó
TextBox1 = ""
ó
TextBox1.Value =  Empty
u otras
```
No las ejecuta. Me da error.
De poder hacer esta instrucción ya puedo solucionar mi problema.
Gracias.
Saludos


----------



## Jaafar Tribak (Aug 29, 2010)

Hola Gustavo.

Prueba esto :


```
Private Sub TextBox1_LostFocus()
    Range("A1") = TextBox1
End Sub
```


----------



## gustavomeeuwes (Aug 29, 2010)

Hola de Nuevo:
Jaafar, el code


```
Private Sub TextBox1_LostFocus()
Range("A1") = TextBox1
End Sub
```
 
Hace lo msimo que el code


```
Private Sub TextBox1_Change()
Range("A15") = TextBox1
End Sub
```
 
Me copia el valor del TextBox en la celda. Cualquiera de los 2 funciona igual.
Hasta ahí todo bien, ya que el valor de A1 puedo copiarlo en A2 con Pegado Especial -> Valores, así que si A1 se borra mantengo ese valor en A2.
Lo que no pude hacer es borrar el valor del TextBox, con


```
TextBox1 = Empty
```
 
u otro similar. Probé todos los que están en los foros y nada.

Pero para borrarlo finalmente fui a Propiedades del TextBox1 y en LinkedCell le asigné el valor A1, con lo que al borrar A1 se borra también el TextBox1.
No creo que sea la forma más elegante pero funciona OK.
Si conoce alguna más "Elegante" se lo agradecería.

Saludos
Gustavo


----------



## gustavomeeuwes (Aug 29, 2010)

Me abuso de vuestra gentileza y hago por aquí otra pregunta:
Dentro de una macro tengo:


```
Application.DisplayAlerts = False
    Sheets("Hoja1").Delete
    Sheets("Hoja4").Delete
    Application.DisplayAlerts = True
```
 
para borrar 2 hojas de mi libro. Le pongo el Application.DisplayAlerts para evitar la ventana de confirmación de eliminación.

Todas las hojas del libro están protegidas de forma tal que se puedan ingresar datos sólo en algunas celdas.
El Code empezó trabajando bien, la macro se ejecutaba bien sin errores.
Algo cambió, o cambié, no se qué, pero al ejecutar la macro llega hasta el code de arriba, borra la Hoja1, y aparece ventana:

"No se puede entrar en tiempo de interrupción en este momento"

y me da la opción de continuar. Si hago click en continuar la macro sigue, borra Hoja4 y continúa.
Probé agregando al Code desproteger primero las hojas, pero lo mismo.
¿Hay alguna forma de evitar esta ventana? O porque aparece así puede ver en mi macro donde está el error. No encontré ninguna información útil.

Nuevamente gracias por la paciencia.
Saludos
Gustavo


----------



## gustavomeeuwes (Aug 29, 2010)

Aclaración:
Si borro las hojas manualmente, con todo el libro protegido, puedo hacerlo sin problemas, sólo me aparece la ventana de confirmación de eliminación que en la macro evito con Application.DisplayAlerts = False.
COmo dije antes lo raro es que antes funcionaba bien.

Saludos
Gustavo


----------



## gustavomeeuwes (Aug 28, 2010)

Hola! 
Aquí de nuevo con una nueva duda.

Tengo un textbox, TextBox1, copio el valor en A1:


```
Private Sub TextBox1_Change()
Range("A1") = TextBox1
End Sub
```
 
Como sigo para borrar el contenido del TextBox pero que lo mantenga en A1 hasta tanto escriba un nuevo valor en el TextBox?
O si esto es complicado con poder borrar el textbox me alcanza, ya que puedo copiar el valor de A1 en A2 y hacer Pegado Especial y hacerlo como Valor. No será la forma más elegante pero cumple la función

Para borrar el TextBox probé, entre otras que ví en los foros, con:


```
TextBox1 = Empty
```
 
Pero no hace nada.
Cual sería la instrucción correcta?

Desde ya muchas gracias. 
Saludos 
Gustavo


----------



## Jaafar Tribak (Aug 30, 2010)

gustavomeeuwes said:


> Aclaración:
> Si borro las hojas manualmente, con todo el libro protegido, puedo hacerlo sin problemas, sólo me aparece la ventana de confirmación de eliminación que en la macro evito con Application.DisplayAlerts = False.
> COmo dije antes lo raro es que antes funcionaba bien.
> 
> ...


 
Cual es le *numero del error* que aparece ?


----------



## gustavomeeuwes (Aug 30, 2010)

Hola Jaafar:
No aparece error.
Sólo ventana de Microsoft Visual Basic y el mensaje
"No se puede entrar en tiempo de interrupción en este momento"
Nada más.
Lo más raro es que este error aparece cuando ejecuto la macro Paso a Paso. Cuando la ejecuto toda de una, no aparece. Al menos no hasta ahora. De esto me dí centa recién al pulsar el botón de ejecutar macro por error.
No sé si esto puede pasar. Podemos dejar el tema abierto y si no aparece más en mis pruebas, damos el tema por solucionado.
Saludos
Gustavo


----------

