Al exportar a Excel se copian solo los valores y no las formulas

This commit is contained in:
Miguel 2025-03-01 14:58:11 +01:00
parent 65f67ddd82
commit b13ac1b06d
1 changed files with 37 additions and 13 deletions

View File

@ -27,37 +27,58 @@ End Function
Public Function ExportToExcel(fechaDesde As String, fechaHasta As String) As Boolean
Dim rutaPDF As String
Dim nombreArchivo As String
Dim ws As Worksheet
Dim links As Variant
Dim i As Long
' Construct Excel filename based on dates
' Construir el nombre del archivo basado en las fechas
nombreArchivo = "fdl_" & fechaDesde & " al " & fechaHasta & ".xlsx"
' Show "Save As" dialog and get the selected path
' Mostrar el diálogo "Guardar Como" y obtener la ruta seleccionada
rutaPDF = Application.GetSaveAsFilename(InitialFileName:=nombreArchivo, _
FileFilter:="XLS Files (*.xlsx), *.xlsx", Title:="Guardar como XLS")
FileFilter:="XLS Files (*.xlsx), *.xlsx", Title:="Guardar como XLS")
' Check if user cancelled the dialog
' Verificar si el usuario canceló el diálogo
If (rutaPDF <> "False") And (rutaPDF <> "Falso") Then
Dim Hoja1 As Worksheet, Hoja2 As Worksheet, Hoja3 As Worksheet, Hoja4 As Worksheet, Hoja5 As Worksheet
Dim NuevoLibro As Workbook
' Set references to sheets
' Establecer referencias a las hojas originales
Set Hoja1 = ThisWorkbook.Sheets(SHEET_NOTA)
Set Hoja2 = ThisWorkbook.Sheets(SHEET_FDL_1)
Set Hoja3 = ThisWorkbook.Sheets(SHEET_FDL_2)
Set Hoja4 = ThisWorkbook.Sheets(SHEET_FDL_3)
Set Hoja5 = ThisWorkbook.Sheets(SHEET_FOGLIO_1)
' Copy sheets to new workbook
' Copiar la primera hoja al nuevo libro
Hoja1.Copy
Set NuevoLibro = ActiveWorkbook
' Copy remaining sheets
' Copiar el resto de las hojas al nuevo libro
Hoja2.Copy After:=NuevoLibro.Sheets(1)
Hoja3.Copy After:=NuevoLibro.Sheets(2)
Hoja4.Copy After:=NuevoLibro.Sheets(3)
Hoja5.Copy After:=NuevoLibro.Sheets(4)
' Save and close
' Aplicar .Value = .Value a todas las hojas para convertir fórmulas en valores
For Each ws In NuevoLibro.Worksheets
ws.UsedRange.value = ws.UsedRange.value
Next ws
' Obtener los links externos del nuevo libro
links = NuevoLibro.LinkSources(Type:=xlLinkTypeExcelLinks)
' Si existen links externos, recorrer todas las hojas y reemplazar el texto del link
' If Not IsEmpty(links) Then
' For Each ws In NuevoLibro.Worksheets
' For i = LBound(links) To UBound(links)
' ws.Cells.Replace What:=links(i), Replacement:="", LookAt:=xlPart, _
' SearchOrder:=xlByRows, MatchCase:=False
' Next i
' Next ws
' End If
' Guardar y cerrar el nuevo libro
NuevoLibro.SaveAs rutaPDF, FileFormat:=xlWorkbookDefault
NuevoLibro.Close SaveChanges:=False
@ -67,6 +88,8 @@ Public Function ExportToExcel(fechaDesde As String, fechaHasta As String) As Boo
End If
End Function
Public Function ExportComessaToExcel() As Boolean
Dim rutaPDF As String
Dim nombreArchivo As String
@ -117,4 +140,5 @@ Public Function ExportComessaToExcel() As Boolean
Else
ExportComessaToExcel = False
End If
End Function
End Function