Macro para copiar información en otro libro

Tengo esta macro para pasar info a otro libro pero me genera error

Dim arch As String
Dim s1 As Worksheet, s2 As Worksheet, l2 As Worksheet
Dim lr As Long
'
Application.ScreenUpdating = False
'
Set s1 = Sheets("Ficha") 'origen
'Ruta y nombre del libro Destino
arch = "C:\Users\Laura\Dropbox\DOCUMENTOS PERSONALES\CONSULTORIO\RIPS PARTICULAR\Rips.xlsm"
'
If Dir(arch) <> "" Then
'establece en un objeto el libro Destino y la hoja Destino
Set l2 = Workbooks.Open(arch)
Set s2 = l2.Sheets("PLANILLA GENERAL") 'destino (AQUI ME GENERA ERROR)

'La hoja2 recibe el valor de la hoja1
lr = s2.Range("A" & Rows.Count).End(3).Row + 1
s2.Range("B" & lr).Value = s1.Range("C10").Value
s2.Range("D" & lr).Value = s1.Range("F2").Value
s2.Range("E" & lr).Value = s1.Range("I2").Value
s2.Range("H" & lr).Value = s1.Range("C4").Value
s2.Range("I" & lr).Value = s1.Range("D4").Value
 End Sub

1 respuesta

Respuesta
1

Utiliza el icono para poner código.


Tu macro está incompleta.

Tienes un IF pero no cierras con un End IF.

Sub macro1()
  Dim arch As String
  Dim s1 As Worksheet, s2 As Worksheet, l2 As Worksheet
  Dim lr As Long
  '
  Application.ScreenUpdating = False
  '
  Set s1 = Sheets("Ficha") 'origen
  'Ruta y nombre del libro Destino
  arch = "C:\Users\Laura\Dropbox\DOCUMENTOS PERSONALES\CONSULTORIO\RIPS PARTICULAR\Rips.xlsm"
  '
  If Dir(arch) <> "" Then
    'establece en un objeto el libro Destino y la hoja Destino
    Set l2 = Workbooks.Open(arch)
    Set s2 = l2.Sheets("PLANILLA GENERAL") 'destino (AQUI ME GENERA ERROR)
    'La hoja2 recibe el valor de la hoja1
    lr = s2.Range("A" & Rows.Count).End(3).Row + 1
    s2.Range("B" & lr).Value = s1.Range("C10").Value
    s2.Range("D" & lr).Value = s1.Range("F2").Value
    s2.Range("E" & lr).Value = s1.Range("I2").Value
    s2.Range("H" & lr).Value = s1.Range("C4").Value
    s2.Range("I" & lr).Value = s1.Range("D4").Value
  End If
End Sub

Qué error te aparece en la macro. Y en cuál línea se detiene?

Entiendo, igual si tiene el end if .... solo que no lo pegué aqui. se detiene en set s2 =l2. sheets me selecciona sheets 

¿Pero qué dice el mensaje de error?

Ayudaría mucho si pones toda la macro completa, si pones el mensaje de error, en qué línea se detiene en la macro.

Toda información nos ayuda a ayudarte. No conocemos cómo tienes tu información.

Set s2 = l2.Sheets("PLANILLA GENERAL") 

Esa línea es para establecer en el objeto s2 la hoja del libro que estás abriendo. En el libro que estás abriendo deberá existir una hoja con el nombre "PLANILLA GENERAL". Revisa que no el nombre de la hoja exista y que NO tenga espacios al inicio o al final del nombre:

Sub PASAR()
'Pasar a documento RIPS
Dim arch As String
  Dim s1 As Worksheet, s2 As Worksheet, l2 As Worksheet
  Dim lr As Long
  '
    Application.ScreenUpdating = False
  '
  Set s1 = Sheets("Ficha") 'origen
   'Ruta y nombre del libro Destino
  arch = "C:\Users\Laura\Dropbox\DOCUMENTOS PERSONALES\RIPS\RIPS PARTICULAR\Rips2020.xlsm"
  '
   If Dir(arch) <> "" Then
    'establece en un objeto el libro Destino y la hoja Destino
    Set l2 = Workbooks.Open(arch)
    Set s2 = l2.Sheets("PLANILLA GENERAL") 'destino (el error aparece aqui)
  'La hoja2 recibe el valor de la hoja1
  lr = s2.Range("A" & Rows.Count).End(3).Row + 1
  s2.Range("B" & lr).Value = s1.Range("C10").Value
 'Cierra y guarda el libro Destino
    l2.Close True
    MsgBox "Archivo actualizado"
  Else
    MsgBox "No Existe El Libro : " & arch
  End If
End sub

Me sale error de compilación: no se encontró el método o el dato miembro

Declaraste l2 como hoja y es libro

Cambia esta línea:

Dim s1 As Worksheet, s2 As Worksheet, l2 As Worksheet

Por estas:

  Dim s1 As Worksheet, s2 As Worksheet
  Dim l2 As Workbook

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas