Copiar hoja de excel a una carpeta con dos variables con VBA

Deseo copiar una hoja de un archivo excel a una ruta, dependiendo del año y el mes. Es decir la ruta depende de dos variables.

Por ahí encontré lo siguiente pero no me funciona:

Sub Copiar_Hoja()

'Definir objetos a utilizar
Dim wbO As String
Dim wsOrigen As Excel.Worksheet
Dim wbO1 As Workbook
Dim Nombrearchivo As String
Dim Path As String
Dim FN As String
Dim Journalnr As String
Dim Copy As String
Dim PDF As String
Dim Variable1 As String
Dim Variable2 As String

Set wbO1 = ThisWorkbook
Set wsOrigen = wbO1.Worksheets("Ompostering")
Variable1 = wsOrigen.Range("B46").Value
Variable2 = wsOrigen.Range("C46").Value
Journalnr = wsOrigen.Range("D11").Value
FN = "Omposteringsbilag"
Nombrearchivo = FN & "-" & Journalnr
Path = "F:\Økonomi og Indkøb\Faelles\Driftsbudget regnskab\Regnskab, budgetkasse og bogholderi\Regnskab\Anlæg\Omposteringsbilag\Anskaffelse\" & Variable1 \ " & Variable2"

Copy = Path & "\" & Nombrearchivo & ".xlsx"
PDF = Path & "\" & Nombrearchivo & ".pdf"

'Grabo copia
ActiveWorkSheet.SaveAs Filename:=Copy

'Exporto PDF
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=PDF, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False

End Sub

1 respuesta

Respuesta
1

[Ho la y bienvenida a TodoExpertos!

Hice algunos ajustes, prueba el siguiente:

Sub Copiar_Hoja()
  'Definir objetos a utilizar
  Dim wsOrigen As Worksheet
  Dim sPath As String, Nombrearchivo As String
  Dim NombreCopy As String, NombrePDF As String
  Dim Variable1 As String, Variable2 As String
  '
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  '
  Set wsOrigen = ThisWorkbook.Worksheets("Ompostering")
  Variable1 = wsOrigen.Range("B46").Value
  Variable2 = wsOrigen.Range("C46").Value
  Nombrearchivo = "Omposteringsbilag" & "-" & wsOrigen.Range("D11").Value
  sPath = "F:\Økonomi og Indkøb\Faelles\Driftsbudget regnskab\Regnskab, budgetkasse og bogholderi\Regnskab\Anlæg\Omposteringsbilag\Anskaffelse\" & Variable1 & "\" & Variable2
  '
  NombreCopy = sPath & "\" & Nombrearchivo & ".xlsx"
  NombrePDF = sPath & "\" & Nombrearchivo & ".pdf"
  wsOrigen.Copy
  With ActiveWorkbook
    'Grabo copia
    .SaveAs NombreCopy
    'Exporto PDF
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=NombrePDF, _
      Quality:=xlQualityStandard, IncludeDocProperties:=True, _
      IgnorePrintAreas:=False, OpenAfterPublish:=False
    .Close False
  End With
  MsgBox "Hoja creada en excel y en pdf"
End Sub

Mil gracias Dante.

Gracias a Dios aún haces parte del foro :)

Bendiciones.

[Al final de mi respuesta hay un botón para valorar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas