CODIGO PARA INICIAR UN NUEVO CICLO
Publicado por Jesus Antonio (2 intervenciones) el 24/08/2020 22:06:47
Estimados buenas tardes,
voy directo al grano, soy muy novato en eso de la programación y siguiendo uno que otro video-tutorial logré programar unas macros en V Basic para excel que sirven para almacenar y exportar en pdf los datos de unos recibos de pago de mi empresa, la [img1] es el recibo y la [img2] seria el historial de pagos. Básicamente el funcionamiento es así:
-Se ingresa la factura y el monto en un lado y en el otro el medio de pago y el monto, la macro agarra los datos de la factura y los copia en el historial el número de veces igual a la cantidad de formas de pago (en la [img2] tres medios de pago para 1 factura ya almacenados). Todo funciona correctamente con 1 sola factura a pagar (en mi ejemplo la FC 010), el problema que tengo es que cuando quiero pagar mas de un comprobante mi macros no toma en cuenta la sig fila (en la imagen 1 pueden ver que quiero pagar 2 comprobantes la Fc 010 y la NC 001), y la verdad no se como hacer eso sin repetir el mismo código 15 veces 1 por linea (para nada eficiente). Me gustaría que mi macro agarre los datos del sig comprobante (en este caso la NC 001) y repita los mismos de antes para almacenarlos en el historial de pagos y siga así hasta que no haya datos que guardar , de esa manera se con que medio se pago que factura, cuando y cuanto. Alguna sugerencia de como hacer eso? en verdad estoy perdido.
Adjunto el código de la macro:


voy directo al grano, soy muy novato en eso de la programación y siguiendo uno que otro video-tutorial logré programar unas macros en V Basic para excel que sirven para almacenar y exportar en pdf los datos de unos recibos de pago de mi empresa, la [img1] es el recibo y la [img2] seria el historial de pagos. Básicamente el funcionamiento es así:
-Se ingresa la factura y el monto en un lado y en el otro el medio de pago y el monto, la macro agarra los datos de la factura y los copia en el historial el número de veces igual a la cantidad de formas de pago (en la [img2] tres medios de pago para 1 factura ya almacenados). Todo funciona correctamente con 1 sola factura a pagar (en mi ejemplo la FC 010), el problema que tengo es que cuando quiero pagar mas de un comprobante mi macros no toma en cuenta la sig fila (en la imagen 1 pueden ver que quiero pagar 2 comprobantes la Fc 010 y la NC 001), y la verdad no se como hacer eso sin repetir el mismo código 15 veces 1 por linea (para nada eficiente). Me gustaría que mi macro agarre los datos del sig comprobante (en este caso la NC 001) y repita los mismos de antes para almacenarlos en el historial de pagos y siga así hasta que no haya datos que guardar , de esa manera se con que medio se pago que factura, cuando y cuanto. Alguna sugerencia de como hacer eso? en verdad estoy perdido.
Adjunto el código de la macro:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Sub GuardarOP()
Dim NombreHoja As String
Dim HojaDestino As Range
Dim NuevaFila As Integer
Dim FilasOP As Integer
Dim i As Integer
Dim j As Integer
Dim NumOP As Integer
Dim NombrePDF, RutaArchivo As String
NombreHoja = "PAGOS"
FilasOP = Application.WorksheetFunction.CountA(Range("OP[NºCHEQUE]"))
NumOP = ThisWorkbook.Sheets("OPs").Range("C5").Value
With ThisWorkbook.Sheets(NombreHoja)
For i = 1 To FilasOP
Set HojaDestino = ThisWorkbook.Sheets(NombreHoja).Range("A1").CurrentRegion
NuevaFila = HojaDestino.Rows.Count + 1
.Cells(NuevaFila, 1).Value = NumOP
.Cells(NuevaFila, 2).Value = Date
.Cells(NuevaFila, 3).Value = Range("codproveedor").Value
.Cells(NuevaFila, 4).Value = Range("proveedor").Value
.Cells(NuevaFila, 5).Value = Range("Factura").Value
.Cells(NuevaFila, 6).Value = Range("ImpFactura").Value
For j = 4 To 6
.Cells(NuevaFila, j + 3).Value = ThisWorkbook.Sheets("OPs").Cells(11 + i, j + 1)
Next j
Next i
End With
NombrePDF = "OP " & Range("C5").Value
RutaArchivo = "C:\OPs Generadas" & "\" & NombrePDF & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=RutaArchivo, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
MsgBox "Exito al exportar y guardar", vbInformation, "FG CONSTRUCTORA CIVIL SA"
End Sub


Valora esta pregunta


0