Macros en excel

Hola, es la primera vez que hago esto, y espero que me podáis ayudar; quiero llevar las facturas numeradas en excel a utilizar la plantilla; como seria el código de la macro que el mio no lo acepta. Gracias

1 respuesta

Respuesta
1
Hay varias maneras de tomar el último número facturado.
Si las facturas emitidas se guardan en forma correlativa en una hoja resumen, tendrás que buscar el último registro grabado y a ese valor sumarle 1.
Esta es 1 de las tantas formas de encontrar el valor de la última celda de la col A:
Dim ultFactura as integer
While Activecell <> ""
Activecell.offset(1,0).select
Wend
ultFactura = activecell.offset(-1,0).value
Otra forma es tener una celda perdida que guarde ese número, por ejemplo en el evento de Impresión:
Sheets("Hoja2").range("Z1").value = sheets("Hoja2").range("Z1").value + 1
Si esto no resuelve tu inquietud, podes pedirme aclaraciones agregando un poco más de información de cómo estás trabajando este tema.
Gracias, me servio el evento de impresión, pero también me interesa guardar esa factura; es decir, tener un libro de facturas, pues con esa celda perdida solo me vale para una misma hoja; comprendéis lo que quiero decir.
Haber si me lo podéis conseguir.
Gracias
Para llevar un libro resumen de facturas, necesitarás ejecutar una macro como la siguiente en algún evento: ya sea al momento de imprimir o bien utilizando un botón asociado a una rutina como la que te dejo de ejemplo.
Comprenderás que para una tarea así tendrás que ajustar varios aspectos como cada las referencias de los items de la factura, nombre del libro resumen y de las hojas correspondientes.
La siguiente rutina controla si el libre Resumen ya se encuentra abierto de lo contrario primero lo abrirá. También podrías utilizar el mismo libro con una hoja de Resumen o Base.
Sub facturando()
Dim filalibre As Integer
Dim libro1, libro2 As String
Dim wb As Workbook
libro1 = ActiveWorkbook.Name
'será conveniente que en lugar de Activeworkbook ingreses el
'nombre del libro que contiene la factura, tal como aparece para el libro2
'asignar el nombre del libro
libro2 = "ResumenFacturas.xls"
'se controla si el libro resumen ya se encuentra abierto
For Each wb In Workbooks
If UCase(wb.Name) = UCase(libro2) Then GoTo Abierto
Next
'instrucción para el caso de que no se encontró el libro resumen abierto
'se asume que el libro Resumen se encuentra en la misma carpeta
'que el libro activo. De lo contrario reemplazar ThisWork... por la ruta completa
Workbooks.Open ThisWorkbook.Path & "\" & libro2
Abierto:
'se activa el libro resumen
Workbooks(libro2).Activate
'se busca la primer fila libre para comenzar la copia
filalibre = ActiveWorkbook.Sheets("Hoja2").Range("A65500").End(xlUp).Row + 1
'se activa el libro que contiene la plantilla o factura
Workbooks(libro1).Activate
'ajustar nombre de hoja
Sheets("Hoja1").Select
'se copìan todas las celdas con datos al libro destino
ActiveSheet.Range("A5").Copy Destination:=Workbooks(libro2).Sheets("Hoja2").Cells(filalibre, 1)
ActiveSheet.Range("B4").Copy Destination:=Workbooks(libro2).Sheets("Hoja2").Cells(filalibre, 2)
ActiveSheet.Range("A2").Copy Destination:=Workbooks(libro2).Sheets("Hoja2").Cells(filalibre, 3)
ActiveSheet.Range("A12").Copy Destination:=Workbooks(libro2).Sheets("Hoja2").Cells(filalibre, 4)
End Sub
Está explicada cada instrucción como para que te guíes, pero si aún así te presenta alguna dificultad consúltame nuevamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas