Asignar nombre a libro

Tengo una macro que me genera un archivo de texto. Quiero usar el nombre del libro de excel como base, pero al utilizar "hja = ThisWorkbook.Name", me trae el nombre con la terminación ".xls", ¿Cómo hacer para que me traiga el puro nombre sin extensión y así poder ponerle la ".txt"?

1 respuesta

Respuesta
Se me ocurre que pongas el nombre en una celda o en el nombre de la hoja, y le indiques a la macro que coja el nombre de la celda B20 o de la hoja Sheets Libro1.txt
Mira a ver si te vale la solución, y me cuentas
Gracias por tu respuesta y tiempo, pero no lo puedo hacer así, ya que no es predecible el nombre del libro, o mejor dicho, este puede cambiar libremente dependiendo del usuario, por lo que no lo puedo fijar en una celda.
El nombre de la hoja si lo puedo jalar, el problema es que con workbook.name, me lo trae con todo y extensión, y cuando le agrego la extensión .txt, queda: "ejemplo.xls.txt, lo cual no se ve muy bien.
¿Alguna otra sugerencia?
Pues bien si le cambias el nombre a la hoja puedes tomarlo de ahí que tome el documento el nombre de la hoja, le das a la hoja por ejemplo Archivo, y la macro guardará el documento como "Archivo.txt".
Si no te vale me lo dices y pienso en como hacerlo.
A ver mi querido Julio, solo cuando abres un libro nuevo (libro1 o Workbook1), al momento de manipularlos no tienen extensión (.xls), pero una vez que lo grabas, incluso en blanco, al momento de manipularlos en vb, ya aparecen con la extensión .xls, por lo que el nombre ya es "prueba.xls", y lo que quiero es únicamente "prueba"
Creo que no me has entendido, yo no llamo hoja al libro sino a la propia hoja, si abajo en la pestaña de Hoja1 le cambias el nombre por "Prueba" (por ejemplo) en la macro indicas que guarde el .txt con el nombre de la hoja, no del libro el código sería Sheets("Prueba"). Name
Mira a ver si ahora me has entendido y te sirve.
Lo que tu dices lo he entendido, pero entonces el que no se ha sabido explicar soy yo, va de nuevo:
Tengo un LIBRO de excel del cual a una HOJA que voy a guardar en formato texto (MS-DOS), quiero que tenga el nombre del LIBRO.
Si el libro se llama "ejemplo.xls", yo quiero guardar una HOJA como un nuevo LIBRO, con el nombre "ejemplo.txt".
Lo de menos sería dejar fijo, incluso escribir el nombre "ejemplo", el problema es que si alguien le cambia el nombre al libro por "otro", el libro sería entonces "otro.xls", y el nombre de mi hoja nueva en formato texto sería "ejemplo.txt", en vez de "otro.txt".
Si para armar la macro utilizo "variable=ThisWorkbook.Name", el nombre que me trae es "ejemplo.xls", y al grabarlo con una macro, me está creando "ejemplo.xls.txt", lo cual se ve fatal.
¿Cómo me puedo traer el nombre del LIBRO sin la extensión ".xls"?
Para guardar el libro con un nombre definido en la macro tan solo utiliza este código y tu cambias el directorio donde guardarlo y el nombre del archivo, es este:
'
ChDir "Aquí pones tu directorio por ejemplo C:\"
ActiveWorkbook.SaveAs Filename:= _
"Aquí vuelves a poner el directorio con el nombre que quieres darle por ejemplo C:\Libro.txt", FileFormat:=xlText, _
CreateBackup:=False
Y ya lo tienes hecho, ya me contarás si te ha servido
"Aquí vuelves a poner el directorio con el nombre que quieres darle por ejemplo C:\Libro.txt", FileFormat:=xlText, _
CreateBackup:=False
Este es exactamente el punto mi querido Julio, no le quiero dar el nombre, quiero que lo tome directamente del NOMBRE DEL LIBRO PERO SIN EL ".XLS"
Vamos a ver si tu generas la macro para que guarde el libro debes de ponerle que nombre quieres utilizar para que lo guarde si utilizas el nombre del libro y lo guardas como TXT Excel detecta que el nombre del libro es Libro1.xls y a ese nombre le añade la extensión del formato con el que tu quieres guardarlo que en este caso es texto. Con la opción que te he dado tu eliges el nombre y solo aparece la extensión TXT. También se puede hacer un una ventana de un ImputBox para teclees el nombre pero al final siempre tendrás que darle el nombre tú, si lo toma en automático siempre verá la totalidad del nombre.
"... Si lo toma en automático siempre verá la totalidad del nombre..."
¿Alguna persona que difiera de esta opinión? Yo yo creo que debe existir la posibilidad de traer "en automático", el nombre del libro, sin la extensión".xls", o que debe haber forma de que trayendósela se le pueda omitir
Gracias.
Yo con mis conocimientos sin que tú escribas nada, en un
imputbox o en la misma macro y que al coger el nombre en automático del
propio nombre del libro omita la parte .xls no sé hacerlo, además
pensando en ello podríamos crear la variable de que si el Name es
Libro1.xls lo cambie por Libro.txt tan solo serviría para esa opción
pero en el momento que el nombre cambiase por otro, la macro no haría
nada. Por otro lado si indicamos a la macro que siendo cual sea el Name
del libro lo guarde con el nombre "XXXX" tan solo valdría para una vez
porque en la misma ruta sobreescribiría el anterior, avisándote de este
inconveniente. Yo quedo a que si encuentras la posibilidad de que sin
escribir nada en una macro cambie el nombre del libro quitándole la
extensión de .xls y que cada vez lo guarde en un directorio distinto
seas tan amable de decírmelo. Puedes preguntar a la experta mayor en
Excel "ELSAMATILDE".
Gracias por tu tiempo y respuesta Julio, justamente como lo planteas es como tengo necesidad de hacerlo (no es capricho, los usuarios asignarán nombres a sus libros que yo desconozco).
Hasta donde tengo entendido, no puedo hacer una pregunta a alguien de manera directa, Elsa me ha ayudado en muchas otras ocasiones con muy buenos resultados, espero ella pueda ver esta inquietud, o tu sepas decirme tanto como le hago para consultar con ella, y como le hago para informarte en caso de que esto sea posible.
Gracias nuevamente y saludos
Efectivamente Elsa no esta disponible pero puedes hacerle la pregunta a otro experto en Excel mirate Ranking de expertos y donde veas uno en Excel, le seleccionas y eliges preguntar. Un saludo y suerte.
Feliz Navidad
Julio
¿Alguien qué me pueda orientar sobre este tema?
Me has enviado la pregunta a mí nuevamente, de todas formas te planteo como solución que existe la forma de que puedas comprobar todo un directorio en una hoja de excel y que te muestre todos los archivos que se han creado, independiente de la extensión que tengan. A lo mejor esto si solucionaría tu problema.
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas