excel - sheets - ¿Cómo nombro una hoja de cálculo automáticamente, haciendo referencia a dos celdas?
nombre de hoja en celda excel (1)
Acabo de terminar de escribir una macro spiffy para generar informes automáticamente. Funciona bien, pero lo necesito para nombrar automáticamente la hoja de cálculo de acuerdo con los datos en dos celdas.
Esencialmente, esta macro crea una nueva hoja de cálculo, copia la información y crea las tablas dinámicas relevantes que se requieren mensualmente.
Como parte de esto, he creado un panel para generar el informe con instrucciones y un rango de fechas con el que se relaciona el informe. Actualmente crea la hoja de cálculo " NUEVO INFORME ". ¿Hay alguna forma de crear la nueva hoja de cálculo y nombrarla de forma automática según las líneas de "Informe 01.01.15 a 01.02.15"?
Tengo el intervalo de fechas como dos celdas separadas, y sé que tendré que asegurarme de que el intervalo de fechas sea uno que use caracteres permitidos (es decir, 01.01.15 en lugar de 01/01/15). ¿Es correcto decir que hay una manera de decirle al usuario que ha puesto las fechas con los separadores incorrectos?
Option Explicit
Sub SaveAs()
Dim FileName As String
Dim FilePath As String
Dim FName As String
FilePath = "C:/Temp"
FileName = Sheets("Sheet1").Range("A1").Text
FName = Sheets("Sheet1").Range("B1").Text
ThisWorkbook.SaveAs FileName:=FilePath & "/" & FileName & FName
End Sub
Para guardarlo en la fecha de hoy
Dim sSave As String
sSave = "Reports " & Format(Date, "dd-mm-yyyy")
O mañana fecha
"Reports" & Format(Date + 1, "dd-mm-yyyy")
Para el formato de archivo Ver ejemplos
ThisWorkbook.SaveAs Filename:=FilePath, fileformat:=52
Estos son los principales formatos de archivo en Excel 2007-2013
51 = xlOpenXMLWorkbook (without macro''s in 2007-2013, xlsx)
52 = xlOpenXMLWorkbookMacroEnabled (with or without macro''s in 2007-2013, xlsm)
50 = xlExcel12 (Excel Binary Workbook in 2007-2013 with or without macro''s, xlsb)
56 = xlExcel8 (97-2003 format in Excel 2007-2013, xls)
*Or maybe you want to save the one worksheet workbook to csv, txt or prn.*
".csv": FileFormatNum = 6
".txt": FileFormatNum = -4158
".prn": FileFormatNum = 36
Para guardar solo una hoja como libro nuevo, debe copiar la hoja antes de guardarla
Option Explicit
Sub SaveAs()
Dim Sht As Worksheet
Dim FileName As String
Dim FilePath As String
FilePath = "C:/Temp"
FileName = Sheets("Sheet1").Range("A1").Text
Set Sht = ActiveWorkbook.Sheets("Sheet1")
Sht.Copy
ActiveWorkbook.SaveAs FileName:=FilePath & "/" & FileName
End Sub
Para guardar varias hojas como libro de trabajo nuevo, use
Sheets(Array("Sheet1", "Sheet2")).Copy
Option Explicit
Sub SaveAs()
Dim Sht As Worksheet
Dim Book As Workbook
Dim FileName As String
Dim FilePath As String
FilePath = "C:/Temp"
FileName = Sheets("Sheet1").Range("A1").Text
Set Book = ActiveWorkbook
With Book
.Sheets(Array("Sheet1", "Sheet2")).Copy
End With
ActiveWorkbook.SaveAs FileName:=FilePath & "/" & FileName
End Sub