Cuadros de textos vacíos e inservibles como eliminarlos en excel

Tengo un archivo de excel con más de 10,000 cuadros de textos que se han creados solo no se si es virus o algún daño en el archivo, encontré una macro en internet pero no me funciona alguien la puede corregir o yo la estoy usando mal.

Sub Eliminar_formas()
    Dim forma As Shape
    Dim contador As Long
    Dim hoja As Worksheet
    contador = 0
    For Each hoja In Worksheets 
        For Each forma In hoja.Shapes
            If forma.Type = msoTextBox Then
                contador = contador + 1
                forma.Delete
            End If
        Next forma
    Next hoja
    MsgBox "Se han eliminado: " & contador & " cuadros de texto"
End Sub

2 respuestas

Respuesta
2

Tal vez sean textbox pero de Controles ActiveX.

Prueba con la siguiente macro

Sub Eliminar_formas2()
    contador = 0
    For Each hoja In Worksheets
        For Each obj In hoja.OLEObjects
            If TypeOf obj.Object Is MSForms.TextBox Then
                contador = contador + 1
                obj.Delete
            End If
        Next
    Next hoja
    MsgBox "Se han eliminado: " & contador & " cuadros de texto"
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

BUENAS NOCHES AMIGO ME TIRA ESTE MENSAJE NO SE QUE SERA

Pero la imagen que pusiste no es la macro que yo te envié

Es cierto perdón no me percate de la imagen, este si es la macro enviada pero me da ese error cuando le doy ejecutar que estará pasando.

¿Qué versión de excel tienes?

Entra a VBA en el menú Herramientas, Referencias, revisa que tengas activas las siguientes referencias:

Prueba nuevamente las 2 macros, si tienes problemas envíame tu archivo para ver qué textbox son y cómo poder eliminarlos

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Alexander Hdez

¡Gracias!  Dante ya me funciona la tenia apagada una referencia de las 5 que deberían estar activas. 

Caso resuelto debido a estos cuadros de textos las hojas de excel se me estaban volviendo lentas  y con esto me queda resuelto todo. Infinitas Gracias

Respuesta
1

A mí si me funciona ese código. Tienes que pegarlo en un módulo (Insertar->Módulo estando en el editor VBA) del libro donde estén los cuadros de texto. Si tuviese que ir en un módulo de otro libro, probablemente habría que cualificar más Worksheets (en la instrucción For Each...)

Saludos_

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas