¿Cómo insertar hoja con macro y con nombre Interno y externo?

Crear hoja con nombre interno y externo

Nombre externo (de la pestaña) Casa

        Sheets.Add.Name = "Casa"
o
        Worksheets.Add.Name = "Casa"

¿Y nombre interno? La línea que incluya nombre interno y eterno, los dos

En el explorador de proyectos se ve así

Hoja7(Casa)

que se vea así

Casa(Casa)

2 respuestas

Respuesta
1

La propiedad que maneja el nombre de código de la hoja (es el término apropiado pues en inglés es conocida como CodeName) es una propiedad de SOLO LECTURA. Puede ser leída pero no modificada por VBA... Lo puedes tu si hacer desde la ventana pero una por una de manera manual.

Esto te permite armar códigos que hacen referencia a hojas de manera "absoluta", y no te interesa si el usuario le cambia de nombre a la hoja.

Hoja1.Select   funcionará SIEMPRE en la esa hoja, se llame como se llame en realidad

Si deseas ver el codeName de una hoja podría usar

Msgbox Sheets("Casa").CodeName

... Pero VBA te indicará que la asignación del valor a la propiedad no es posible en el caso de:

Sheets("Casa").CodeName = "Casa"

Lo siento, es una limitación de VBA, justamente para que el código armado de esa manera funcione siempre aun con una manipulación involuntaria del usuario.

Veo que te han sugerido otra opción... es válida... pero... si la vas a hacer te recomiendo tener en cuenta dos cosas (y son los motivos por los que no te sugerí esta opción)

1) Para poder "hackear" (como le llamo yo) tu código desde el mismo VBA tienes que haber activado la opción de confiar a VBA el acceso a los componentes propios del VBE (Visual Basic Editor). No hay problema si tu eres el único que lo manipulas... Pero asi también estas abriendo las puertas de Excel a recibir programas maliciosos... Si recibes un Excel con virus, podría arruinar tus archivos, pues tu ya has autorizado a confiar en macros que son capaces de modificar código. Técnicamente una instrucción en ese nivel esta manipulando código, que es exactamente lo que hacen los virus. Es más algunos antivirus podrían erroneamente pensar que tu propio archivo de Excel es un virus y borrar tu código.

2) Si a pesar de todo necesitas manipular el código perfecto, aplica lo necesario. No se si con o sin razón pero por tu tipo de pregunta me parecía que querías crear algún tipo de aplicación, que presumí irías a distribuir. Si este fuera el caso, pues todos los usuarios tendrían que hacer lo mismo que tu (confiar el acceso a...), sin que posiblemente entiendan porque lo están haciendo ni asumiendo los riesgos que esto conlleva.

Si quieres averiguar un poco sobre el modelo de objetos de VBE, te recomiendo una documentación DEMASIADO bien documentada en una página de una consultora americana. No he visto tanta documentación sobre este tema como en esta página.

http://www.cpearson.com/Excel/vbe.aspx 

Respuesta
1

Estas instrucciones hacen lo quieres cambian interna y externamente los nombres

Sheets("HOJA2").Name = "casa"
ThisWorkbook.VBProject.VBComponents("HOJA2").Name = "casa"

Hola James

Me dice que; Subíndice fuera de de intervalo error 9

El amigo jaime hizo el comentario que para el nombre interno, no puede ser con macro

¿Qué me dices de la pregunta anterior que te hice? La de la macro para cambiar de OptionButton a ComboBox

Pues yo te demuestro con la siguiente pantalla que la instrucción funciona, el error a mi me lo marca si trato de cambiar por segunda vez el nombre pero es un error diferente a error 9, intenta como prueba hacer el cambio en un archivo nuevo.

Error 9 quiere decir que la hoja no existe necesitas cambiar en las instrucciones hoja2 por el nombre de la hoja a la que quieres cambiarle el nombre, de lo otro checo mañana tu respuesta de lo otro he estado un poco ocupado.

Ok toma tu tiempo

Eso ya es una cuestion de seguridad del excel que impide que ña macro continue lee este articulo que copie del soporte de excel.

Automatización del Editor de Visual Basic

En Office, cuando se hace una llamada a las características de Microsoft Visual Basic para el modelo de objeto de extensibilidad de aplicaciones, es posible que reciba un mensaje de error de que el acceso mediante programación al proyecto de Visual Basic no es de confianza. Para evitar que aparezca este mensaje:

Haga clic en la pestaña Archivo,

Haga clic en Opciones,

Haga clic en la pestaña Centro de confianza y, a continuación, en Configuración del Centro de confianza.

Haga clic en la pestaña Configuración de macros

Active la casilla Confiar en el acceso al modelo de objetos de proyectos de VBA.

Si activa esta casilla, permite que las macros en documentos habilitados con macros que abra obtengan acceso a las propiedades, métodos y objetos principales de Microsoft Visual Basic. La activación de la opción implica un posible riesgo para la seguridad. La acción recomendada es la de activar la casilla Confiar en el acceso al modelo de objetos de proyectos de VBA solo mientras se esté ejecutando una macro que obtiene acceso al modelo de objeto de Visual Basic. Asegúrese de que desactiva la casilla Confiar en el acceso al modelo de objetos de proyectos de VBA una vez que la macro acabe de ejecutarse.

El que sabe no nació para ser ¿m?

jejejejejejej, Gracias James Bond

Las características del personaje son las de un hombre frío, inteligente, eficaz, extremadamente observador, audaz, implacable, decente, reservado y elegante,

Sus vinos favoritos son: Rothschild del 47 y Pesporter Goldtropfecench del 53. En cuanto al champán, sus preferencias se centran en el Taittinger, el Bollinger y el Dom Perignon del 53.

No te olvides de la otra pregunta, solo es quitar los Options y hacer en que desde el ComboBox se seleccione la hoja

Checa la respuesta en el otro post te la mande desde temprano.

La pregunta no admite más respuestas

Más respuestas relacionadas