Error en macro para copiar datos de una hoja a otra

En una plantilla donde tengo los datos folio (Hoja_1  F4), dia((Hoja_1  J5), mes(Hoja_1  K5), año(Hoja_1  L5), desarrollo(Hoja_1  E9:E33), departamento(Hoja_1  F9:F33), concepto(Hoja_1  G9:G33), responsable(Hoja_1  H9:H33), recibe(Hoja_1  I9:I33) e importe(Hoja_1  K9:K33), se deben de copiar, pegar (en otra hoja) y posteriormente limpiar de la plantilla.

Asi fue como lo hice:

Sub Orden2()
'
' Orden2 Macro
' Guardar historial de vales
Set h1 = Sheets("Plantilla")
Set h2 = Sheets("Acumulado")

If h1.Range("F4") = "" Or h1.Range("E9") = "" Then
   MsgBox "No hay datos en Gastos por desarrollo", vbCritical, "GASTOS POR DESARROLLO"
   Exit Sub
End If

'imprimir la PUB
    ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,TRUE,,FALSE)"
'Guardar la PUB
u2 = h2.Range("E" & Rows.Count).End(x1Up).Row + 1             "AQUI ME MARCA EL ERROR"
For i = 9 To h1.Range("E" & Rows.Count).End(x1Up).Row
    If Cells(i, "E") = "" Then Exit For
    h2.Cells(u2, "D") = h1.Range("F4")   'fol
    h2.Cells(u2, "E") = h1.Range("J5")   'dia
    h2.Cells(u2, "F") = h1.Range("k5")   'mes
    h2.Cells(u2, "G") = h1.Range("l5")   'año
    h2.Cells(u2, "H") = h1.Cells(i, "E") 'des
    h2.Cells(u2, "I") = h1.Cells(i, "F") 'dep
    h2.Cells(u2, "J") = h1.Cells(i, "G") 'con
    h2.Cells(u2, "K") = h1.Cells(i, "H") 'res
    h2.Cells(u2, "L") = h1.Cells(i, "I") 'rec
    h2.Cells(u2, "M") = h1.Cells(i, "K") 'imp
    u2 = u2 + 1
Next

'limpia datos
h1.Range("E9:K33").ClearContents
 'Aumenta el consecutivo de la PUB
Range("F4") = Range("F4") + 1

MsgBox "Vales de Publicidad Guadada Exitosamente", vbInformation, "GASTOS POR DESARROLLO"
End Sub

Que error cometi, favor de ayudarme

1 respuesta

Respuesta
1

En tu macro dice

X1Up

Y debe decir

XlUp

Tienes el número 1 (uno) y debes poner una l (ele)

En la siguiente fila también tienes x1up

For i = 9 To h1.Range("E" & Rows.Count).End(x1Up).Row

Tienes que cambiarlo a 

For i = 9 To h1.Range("E" & Rows.Count).End(xlUp).Row

quedo resuelto el error sin embargo al mandar la impresión la hoja sale en blanco, sera la configuración de la impresora o la macro tiene errores

No sé cuál hoja quieres imprimir, si es la h2

Podría ser así:

Sub Orden2()
'
' Orden2 Macro
' Guardar historial de vales
Set h1 = Sheets("Plantilla")
Set h2 = Sheets("Acumulado")
If h1.Range("F4") = "" Or h1.Range("E9") = "" Then
   MsgBox "No hay datos en Gastos por desarrollo", vbCritical, "GASTOS POR DESARROLLO"
   Exit Sub
End If
'Guardar la PUB
u2 = h2.Range("E" & Rows.Count).End(xlUp).Row + 1
For i = 9 To h1.Range("E" & Rows.Count).End(xlUp).Row
    If Cells(i, "E") = "" Then Exit For
    h2.Cells(u2, "D") = h1.Range("F4")   'fol
    h2.Cells(u2, "E") = h1.Range("J5")   'dia
    h2.Cells(u2, "F") = h1.Range("k5")   'mes
    h2.Cells(u2, "G") = h1.Range("l5")   'año
    h2.Cells(u2, "H") = h1.Cells(i, "E") 'des
    h2.Cells(u2, "I") = h1.Cells(i, "F") 'dep
    h2.Cells(u2, "J") = h1.Cells(i, "G") 'con
    h2.Cells(u2, "K") = h1.Cells(i, "H") 'res
    h2.Cells(u2, "L") = h1.Cells(i, "I") 'rec
    h2.Cells(u2, "M") = h1.Cells(i, "K") 'imp
    u2 = u2 + 1
Next
h2.Select
'imprimir la PUB
    ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,TRUE,,FALSE)"
'limpia datos
h1.Range("E9:K33").ClearContents
 'Aumenta el consecutivo de la PUB
Range("F4") = Range("F4") + 1
MsgBox "Vales de Publicidad Guadada Exitosamente", vbInformation, "GASTOS POR DESARROLLO"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas