Nombre del archivo en una celda

Buenos días,
Mi nombre es David,
Tengo un problemilla con un trabajo que estoy haciendo.
Te hago una breve descripción para que te sitúes.
Estoy construyendo un banco de pruebas para probar filtros de aire para laboratorios, hospitales, etc...
A través de un software llamado Log&Show, recupero los datos de los aparatos con los que hago las pruebas. Además este software me permite exportar dichos datos a una hoja de excel mediante una plantilla (.xlt)
Todos los filtros que se deben probar tienen un nº de serie correlativo, y dicho nº es lo que debo utilizar como nombre del archivo de excel que crea el programa.
La finalidad de todo esto es emitir un certificado con los resultados de las pruebas realizadas. En dicho certificado debe constar en una celda lo siguiente "Filtro con nº de serie :", y el la celda contigua debe aparecer el nº de serie que coincide con el nombre del archivo.
En un primer momento solucioné el problema colocando el nombre del archivo en el encabezado, pero el fabricante de los filtros me obliga a que el nº de serie aparezca aproximadamente en la mitad del certificado y es ahí donde empiezan mis problemas.
Lo que necesito es introducir una fórmula en la plantilla de excel para que cuando le de un nombre a la hoja que creo a través de los datos, aparezca automáticamente el nº de serie del filtro (que coincide con el nombre del archivo)
¿Puedes echarme un cable?
Gracias de antemano por tu atención,
Saludos,
David
Respuesta
1
Debes crear una función definida por el usuario. Abre visual basic y copia el siguiente código:
Function NombreLibro(ref) As String
NombreLibro = ref.Parent.Parent.Name
End Function
Una vez listo, colocate en la celda donde quieres el nombre del archivo y escribe: Nombrelibro(A1). Y listo

5 respuestas más de otros expertos

Respuesta
1
La fórmula es:
=CELDA("Filename")
Como esto te trae todo el path deberás extraer solamente el nombre del archivo con esta fórmula completa:
=EXTRAE(CELDA("filename");ENCONTRAR("[";CELDA("filename")+1;ENCONTRAR(".";CELDA("filename")-ENCONTRAR("[";CELDA("filename")-1)
El Encontrar . (punto) es para que no te coloque la extensión del archivo.
Suerte y por favor NO olvides finalizar la consulta.
Respuesta
1
Estaba yo comiéndome el coco con que era lo que querías y la manera de hacerlo cuando me he acordado de un profesor que tuve que al final de un examen ponía que leyéramos(que mal suena)bien antes de contestar, y claro suspendimos porque estuvimos una hora leyendo y al llegar al final volvíamos a empezar
pues eso que me he acordado de el y me he dado cuenta de lo sencilla que era la solución,
copia la siguiente función en tu hoja de calculo (editor de vb)y en la celda donde quieras que salga escribe =libro()
Function libro()
libro = ActiveWorkbook.Name
End Function
Espero te haya gustado la anécdota tanto como la solución que te propongo, y ya sabes si tienes alguna duda no dudes en decírmelo
un saludo
Respuesta
1
Asumo que debes saber programar macros, por eso, en una macro nueva, asigna el siguiente código:
Application.ActiveCell.Value = Sheets.Application.ActiveSheet.Name
La primer parte indica la celda actualmente seleccionada, si quieres puedes indicar una celda especifica con el objeto Range(xx). Value.
La segunda parte introduce el nombre de la Hoja que se encuentra activa, o sea, la correspondiente a la celda en la cual estás ubicado.
Si no es suficiente.
Respuesta
1
No se si entendí bien tu pregunta, pero como sea ahí te van dos posibles soluciones:
Te ubicas en el archivo donde esta la plantilla y entras por Herramientas/Macro/Editor de Visual Basic; en el lado izquierdo de la ventana que te muestre encontraras una lista de nombres de cada hoja del archivo y otro que dice ThisWorkBook, parado en este da doble click, después en la ventana del lado que dice general selecciona workbook y en la de enseguida selecciona el evento que disparara la macro, puede ser SheetSelectionChange.
Ya definido el encabezado del procedimiento pega dentro esta instrucción:
Range("D8") = ActiveSheet.Name
(Como es logico puedes cambiar la celda);
o pega esta otra si es el nombre del archivo el que necesitas:
Range("D8") = ActiveWorkbook.Name
Respuesta
1
Que bueno que ya tienes la respuesta, mucha suerte !
Rowen.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas