Borrar tablas y nombres de rango

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

Borrar tablas y nombres de rango

Notapor cubaezb » 14 Ago 2006 21:24

Macros sencillas para quitar algunas cosas que posiblemente no necesitemos en el libro. Recomiendo hacer una copia del libro en el que se desea probar porque recuerden que LAS MACROS NO SE PUEDEN DESHACER.

1. Quitar tablas
Código: Seleccionar todo
Sub borrartablas()
'Macro que borra todas las tablas (deshabilita actualizar datos) mas no los datos importados
'Por César Báez
Dim i, a As Integer
Dim mihoja as string
mihoja = InputBox("Escribe el nombre de la hoja", "importante...", Sheets(1).Name)
On Error GoTo fin:
Sheets(mihoja).Activate
ini:
i = 1
a = ThisWorkbook.Sheets(mihoja).QueryTables.Count
If a > 0 Then
    For i = 1 To a
        On Error Resume Next
        ThisWorkbook.Sheets(mihoja).QueryTables(i).Delete
        a = a - 1
    Next i
GoTo ini
End If
fin:
If Err.Number = 9 Then
   MsgBox "Error -> no existe la hoja"
End If

End Sub


2. Quitar nombres de rango
Código: Seleccionar todo
Sub borrarnombresderango()
'Macro que borra los nombres de rango (ver arriba a la izquierda del libro de Excel)
'Por César Báez
Dim i, a As Integer
ini:
i = 1
a = ThisWorkbook.Names.Count
If a > 0 Then
    For i = 1 To a
    On Error Resume Next
'Los rangos que se llaman datosexternos_## son los que contienen los datos importados de una consulta
'Hay que colocar datosexter entre asteriscos para que borre las referencias en cualquier hoja
        If LCase(ThisWorkbook.Names(i).Name) Like "*datosexter*" Then
            ThisWorkbook.Names(i).Delete
            a = a - 1
        End If
    Next i
GoTo ini
End If
End Sub


3. Eliminar objetos (autoformas, archivos, gráficos)
Código: Seleccionar todo
Sub borrarobjetos()
Dim mihoja as string
mihoja = InputBox("Escribe el nombre de la hoja", "importante...", Sheets(1).Name)
On Error GoTo fin:
Sheets(mihoja).Activate
'Macro que borra cualquier objeto de la hoja
Dim i, a As Integer
ini:
i = 1
a = ThisWorkbook.Sheets(mihoja).Shapes.Count
If a > 0 Then
    For i = 1 To a
        On Error Resume Next
        ThisWorkbook.Sheets(mihoja).Shapes(i).Delete
        a = a - 1
    Next i
GoTo ini
End If
fin:
fin:
If Err.Number = 9 Then
   MsgBox "Error -> no existe la hoja"
End If
End Sub


Hasta Luego
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
cubaezb
Miembro Frecuente
Miembro Frecuente
 
Registrado: 30 Nov 2005 19:46
Ubicación: Bogota, Colombia

Re: Borrar tablas y nombres de rango

Notapor Adrian » 15 Ago 2006 09:43

Hola cubaezb!
Todo lo que sea un aporte es bueno, y este es EXCELente.
1000 Gracias.
SALU2.xls
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Adrian
Moderator
Moderator
 
Registrado: 13 Jun 2004 17:24
Ubicación: Chamical La Rioja ARG


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: rogman y 13 invitados