Macro para convertir todas las tablas de todas las hojas en rangos

Necesito una macro que todas las tablas de un libro, las convierta en rango.

Y si se puede si alguna de las Sheets tiene los paneles bloqueados en vista, que los desbloquee unfree

1 respuesta

Respuesta
1

Te anexo la macro

Sub Quitar_Rangos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    On Error Resume Next
    For Each hoja In Sheets
        hoja.Select
        For Each wtabla In ActiveSheet.ListObjects
            nombre = wtabla.Name
            wtabla.Unlist
        Next
        ActiveWindow.FreezePanes = False
    Next
    MsgBox "Fin"
End Sub

.

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

.

Avísame cualquier duda

.

Gracias Dante Amor

Excelente, como siempre, funciona a la perfección.

Lo que no entiendo, es como no da error al no definir

hoja como Worksheet

wtable como ListObjects 

y para que se utiliza name si este es "nombre = wtabla.Name"

si luego se utiliza
 

wtabla.Unlist

¡Gracias!  muchissimas gracias

En vba no es necesario declarar variables, más sobre variables:

Según su función ¿Cómo declarar variables?


Cuando utilizas un objeto en un "For Each" en automático lo establece como el objeto de su utilización, por ejemplo:

For Each hoja in Sheets, en automático hoja es considerado como objeto de Sheet

For Each rango in Range("A1:A10"), en automático rango es considerado como objeto de Range

Etc.


Efectivamente no utilizo la variable nombre, la puse para probar si me estaba trayendo el nombre de la tabla, generalmente borro las líneas que utilizo de prueba, pero esta vez se me pasó :)

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas