Como puedo dejar sin acción un botón de comando si ya se ejecutó

Tengo un botón de comando que se encarga de eliminar una información de una hoja en específico, datos y foto, pero al ejecutarlo en la hoja que ya se encuentra en blanco me bota el error 1004. La idea es que el botón que tengo para limpiar la hoja ya no se ejecute más si ya no hay información para eliminar hasta la siguiente consulta.

Dante Amor me paso la siguiente info:

On error Resume Next
ActiveSheet.Shapes.Range(Array("foto")).Select
Selection.Delete
On error Goto 0

Pero cuando la ejecuto en la hoja limpia sigue eliminado celdas de la hoja que no debería eliminar, ya que cuenta con celdas con formatos. Lo que necesito es que el botón de comando elimine la información y foto de la hoja y quedar sin efecto hasta la próxima consulta a realizar.

2 Respuestas

Respuesta
1

Puedes bloquearlo o inhabilitarlo o hacerlo invisible

Me.CommandButton10.Enabled = False
Me.CommandButton10.Locked = True

Me.CommandButton10.visible= false

http://programarexcel.com descarga cientos de ejemplos de macros gratis

Respuesta
1

No entiendo cómo se ejecuta una y otra vez.

¿El botón se ejecuta cada vez que lo presionas o tienes un ciclo que ejecuta el botón una y otra vez?

¿El botón lo tienes en la hoja o está dentro de un useerform?

gracias por responder, la macro para limpiar hoja está dentro de una userform, y es esto lo que tengo

Private Sub CommandButton4_Click()
    ActiveSheet.Shapes.Range(Array("foto")).Select
    Selection.Delete
    Range("A3:H3").Select
    Selection.ClearContents
    Range("A4:H4").Select
    Selection.ClearContents
    Range("D9:D39").Select
    Selection.ClearContents
    Range("B42:H46").Select
    Selection.ClearContents
    Range("A1").Select
    MsgBox "Se eliminaron los datos de la hoja", , Titulo
End Sub

En la primera accion elimina todo los datos seleccionados incluido la foto, el problema está en que supongamos que el usuario por equivocación presione otra vez el CommandButton4, bota el error 1004, lo que necesito es que en esa segunda quede sin efecto hasta la siguiente consulta.

El error me da en el siguiente código:

ActiveSheet.Shapes.Range(Array("foto")).Select

                    

Pero ya te había enviado las sentencias para que no te enviar el error.

Tienes que poner On Error Resume Next

¿Y cómo saber cuándo es la primera vez?

Es decir, si lo ejecuta una vez, ya no se vuelve a ejecutar hasta que cierres el formulario y lo vuelvas a abrir, ¿o cómo?

¡Gracias! Por su ayuda y su tiempo empleado para orientarme a dar solución al problema, lo que hice fue bloquear el botón cuando realice la acción, tanto en el botón de "consultas" como en el de "Limpiar Hojas".

'Botón de Consultas.
Me.CommandButton1.Enabled = False
Me.CommandButton4.Enabled = True
'Botón de Limpiar Hojas.
Me.CommandButton1.Enabled = True
Me.CommandButton4.Enabled = False

A sugerencia de Programar Excel 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas