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 Public Function ExportToExcel(fechaDesde As String, fechaHasta As String) As Boolean
Dim rutaPDF As String Dim rutaPDF As String
Dim nombreArchivo 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" 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, _ 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 If (rutaPDF <> "False") And (rutaPDF <> "Falso") Then
Dim Hoja1 As Worksheet, Hoja2 As Worksheet, Hoja3 As Worksheet, Hoja4 As Worksheet, Hoja5 As Worksheet Dim Hoja1 As Worksheet, Hoja2 As Worksheet, Hoja3 As Worksheet, Hoja4 As Worksheet, Hoja5 As Worksheet
Dim NuevoLibro As Workbook Dim NuevoLibro As Workbook
' Set references to sheets ' Establecer referencias a las hojas originales
Set Hoja1 = ThisWorkbook.Sheets(SHEET_NOTA) Set Hoja1 = ThisWorkbook.Sheets(SHEET_NOTA)
Set Hoja2 = ThisWorkbook.Sheets(SHEET_FDL_1) Set Hoja2 = ThisWorkbook.Sheets(SHEET_FDL_1)
Set Hoja3 = ThisWorkbook.Sheets(SHEET_FDL_2) Set Hoja3 = ThisWorkbook.Sheets(SHEET_FDL_2)
Set Hoja4 = ThisWorkbook.Sheets(SHEET_FDL_3) Set Hoja4 = ThisWorkbook.Sheets(SHEET_FDL_3)
Set Hoja5 = ThisWorkbook.Sheets(SHEET_FOGLIO_1) Set Hoja5 = ThisWorkbook.Sheets(SHEET_FOGLIO_1)
' Copy sheets to new workbook ' Copiar la primera hoja al nuevo libro
Hoja1.Copy Hoja1.Copy
Set NuevoLibro = ActiveWorkbook Set NuevoLibro = ActiveWorkbook
' Copy remaining sheets ' Copiar el resto de las hojas al nuevo libro
Hoja2.Copy After:=NuevoLibro.Sheets(1) Hoja2.Copy After:=NuevoLibro.Sheets(1)
Hoja3.Copy After:=NuevoLibro.Sheets(2) Hoja3.Copy After:=NuevoLibro.Sheets(2)
Hoja4.Copy After:=NuevoLibro.Sheets(3) Hoja4.Copy After:=NuevoLibro.Sheets(3)
Hoja5.Copy After:=NuevoLibro.Sheets(4) 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.SaveAs rutaPDF, FileFormat:=xlWorkbookDefault
NuevoLibro.Close SaveChanges:=False NuevoLibro.Close SaveChanges:=False
@ -67,6 +88,8 @@ Public Function ExportToExcel(fechaDesde As String, fechaHasta As String) As Boo
End If End If
End Function End Function
Public Function ExportComessaToExcel() As Boolean Public Function ExportComessaToExcel() As Boolean
Dim rutaPDF As String Dim rutaPDF As String
Dim nombreArchivo As String Dim nombreArchivo As String
@ -117,4 +140,5 @@ Public Function ExportComessaToExcel() As Boolean
Else Else
ExportComessaToExcel = False ExportComessaToExcel = False
End If End If
End Function End Function