Saltar al contenido

Imprimir todas las ordenes de compra sin ingresar en formulario


Crist77

Recommended Posts

publicado

Hola estimados quiero pedirles si me puede ayudar con esta macro quiero que al momento de imprimir todos los locales

solo dar en imprimir y no estar ingresando factura por factura.

Les envió la planilla.

Estaré atento a su respuesta.

Saludos.

ROTULO JUMBO.xls

publicado

Si se dan cuenta al imprimir me pide factura y cuando termina se cambia a la hoja carga de datos existe forma de que solo con dar a imprimir me imprima todos los locales sin tener que ingresar factura por factura?

o que me de la opción de ingresar múltiples facturas a imprimir.

Saludos.

publicado

Excelente solucion señor Armando!

- - - - - Mensaje combinado - - - - -

Me tomé la libertad de modificar un poco el codigo, usandolo en otra hoja. Claro está que omití la original para mayor visuializacion del código.

Recibos por Impresion.zip

publicado

me puedes explicar el código te lo agradecería.

Saludos.

Option Explicit

Private Sub CommandButton1_Click()

If MsgBox("Está Segur@ de Realizar la Impresión?", vbQuestion + vbYesNo) = vbYes Then

Uf = Hoja1.Range("A" & Rows.Count).End(xlUp).Row

With Hoja1

.Range("G4") = "Recibo de Nómina por el periodo del " & Format(Date, "dd/mm/yyyy")

.PageSetup.PrintArea = "G3:l18"

For I = 2 To Uf

.Cells(6, 9) = .Cells(I, 1)

.Cells(8, 9) = .Cells(I, 2)

.Cells(10, 9) = .Cells(I, 3)

.Cells(12, 9) = .Cells(I, 4)

.PrintOut

Next

End With

Else

Exit Sub

End If

End Sub

publicado

Hola

No soy muy diestro a la hora de explicar y con el permiso del señor Armando, trataré de hacerlo lo más entendible posible y perdona si omito algo.

Private Sub CommandButton1_Click()

If MsgBox("Está Segur@ de Imprimir ? ", vbQuestion + vbYesNo, "Imprimir Documentos") = vbYes Then

Uf = Hoja1.Range("G" & Rows.Count).End(xlUp).Row

With Hoja1
.Range("D4") = CDate(Date)
.PageSetup.PrintArea = "A1:F59"
For I = 2 To Uf
.Cells(4, 6) = I - 1
.Cells(8, 2) = .Cells(I, 7)
.Cells(10, 2) = .Cells(I, 8) 'Filas y Columnas Respectivamente
.Cells(12, 2) = .Cells(I, 9)
.Cells(14, 2) = CDate(.Cells(I, 10))
.Cells(16, 2) = .Cells(I, 11)
.Cells(18, 2) = .Cells(I, 12)
.PrintOut
Next
End With
Else
Exit Sub
End If

End Sub
[/PHP]

Claro

1-La Variable [b]Uf = Hoja1.Range("G" & Rows.Count).End(xlUp).Row[/b] “Ultima Fila” lo que hace es encontrar la ultima celda con dato de abajo hacia arriba. Con ello, se emplearía como el final del recorrido para con el bucle For Next.

En pocas palabras; Cuando usas un bucle For Next, este hace un recorrido según los números que estableciste anteriormente.

Ejemplo de Bucle For:

[PHP]Dim I as Integer
For I=1 To 10 ‘Recorre a partir del numero 1 hasta el 10

Next
[/PHP]

Usando esa información, la adaptamos para que lo haga de acuerdo a la cantidad de filas con datos. Si en una hoja Excel tiene 20 filas con información, empleas el bucle para que recorra 20 veces. Pero para ello, utilizarías la variable String, Uf = Hoja1.Range("G" & Rows.Count).End(xlUp).Row que se encarga de usar como referencia la columna G con información para encontrar la ultima celda con dato.

2-Ahora bien, tenemos el código .Cells(8, 2). Como veras este está fijado a la celda donde se mostrará la información de acuerdo al recorrido.

.Cells(8, 2) = .Cells(I, 7)’En la Fila 8, Columna 2, coloca la información de acuerdo al recorrido del bucle For .Cells(I,7)’I porque son las Filas recorridas y 7 porque es la Columna 7 o Mejor conocida como Columna G.

3-.PageSetup.PrintArea = "A1:F59"’Establece el área de Impresión.

publicado

Estimados no soy un profesional en el tema y como este macro lo creo un amigo y como no tiene tiempo decidí buscar información.

me pueden explicar el código se los agradecería y desde ya por la ayuda que me proporcionan.

Saludos.

Sub Imprimir()
NumF = Application.InputBox("Capture el No. de Factura a Imprimir")
If IsNumeric(NumF) = False Then
MsgBox "Solo se permiten numeros", vbOKOnly, "Error Captura"
NumF = Empty
Call Imprimir
Exit Sub
Else
NumFF = CDbl(NumF)
End If
Sheet1.Activate
Application.Goto Reference:=Range("A1")
Do While ActiveCell <> NumFF
If ActiveCell = Empty Then
MsgBox "Numero de Factura Inexistente", vbOKOnly, "Error Captura"
Application.Goto Reference:=Range("A2")
NumF = Empty
Call Imprimir
Exit Sub
End If
ActiveCell.Offset(1, 0).Activate
Loop
Sheet3.Activate
ActiveSheet.Unprotect
Sheet3.Range("c2") = NumFF
Sheet3.Range("c18") = 1
Ncopias = Sheet3.Range("E18")
MsgBox "Se Imprimiran " & Ncopias & " Copias", vbOKOnly, "Cantidad de Copias"
Do While Sheet3.Range("E18") >= Sheet3.Range("c18")
ActiveSheet.PrintPreview
Sheet3.Range("c18") = Sheet3.Range("c18") + 1
Loop
Sheet3.Range("c18") = Sheet3.Range("c18") - 1
ActiveSheet.Protect
Sheet1.Activate
Application.Goto Reference:=Range("A2")

End Sub
Sub Nada()
Exit Sub

Final1 = CDbl(Final)
Inicial1 = CDbl(Inicial)
Aimprimir = Final1 - Inicial1 + 1
For Counter = 1 To Aimprimir
[BB2] = [BB2] + 1
ActiveSheet.PrintOut
Next Counter
UserForm1.Hide
[B2].Activate
ActiveWorkbook.Save
End Sub


[/CODE]

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.