macro tipo polizas ch

titino

New Member
Joined
Apr 4, 2010
Messages
21
Un gran saludo y reconocimiento para esta pagina excel- ente, dedicada al excel.

es para mi un honor poder postear el siguiente requerimiento.

tengo un libro que hace un vaciado de una hoja a otra rellenando una poliza de cheque, y cuando quiero hacer otra poliza tengo que borrar todo y volver a cargar datos, ahora bien he diseñado otra extructura que me va a servir conservar la bd, y que no se borre, solo que necesito que de la hoja dos, que es mi reporteador descrimine por tipo de cuenta y nombre haga una suma por tipo de gasto y asi mismo lo resuma en su respectiva hoja de poliza de cheque, claro yo identifico los cargos en la hoja dos por "D" los cargos y por "H" los abonos, espero puedan ayudarme con este codigo, saludos.

pongo el archivo que me hace lo que necesito, pero no me conservan los datos de factura

http://www.megaupload.com/?d=OGE389XH

y pongo este otro que es donde quiero que me ayuden, el vaciado lo tendria que hacer parecido al primero que posteo

http://www.megaupload.com/?d=QC6GUD5A

Saludos!!!
 

Excel Facts

Which lookup functions find a value equal or greater than the lookup value?
MATCH uses -1 to find larger value (lookup table must be sorted ZA). XLOOKUP uses 1 to find values greater and does not need to be sorted.
¿Habrá problema si sorteamos las filas en la hoja2?

creo que no habria problema ordenar en la hoja2, yo hacia la ordenacion en la hoja poliza cheque, en otro libro que tengo de pruebas, y se me borra el formato, hice esta prueba con un libro nuevo , solo que con datos acomodados de forma distita, para ver si lograba el resultado de la ordenacion y el subtotal, se logro, pero no me respeta el formato. ademas el libro gastos contables1, estan acomodados de forma distinta,y por eso no logro hacerlo trabajar, publico este codigo, para que vea lo que he logrado

Code:
Sub RESUMIR()
Range([A2], "D" & [A1].End(xlDown).Row).Copy
    Sheets("poliza cheque").Select
    Sheets("poliza cheque").Range("A13").Activate
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.Sort Key1:=Range("A13"), Order1:=xlAscending, Key2:=Range("C13"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:=xlSortNormal
While ActiveCell.Value <> ""
While ActiveCell.Value = ActiveCell.Offset(1, 0).Value And ActiveCell.Offset(0, 2).Value = ActiveCell.Offset(1, 2).Value
ACUM = ACUM + ActiveCell.Offset(0, 3).Value
ActiveCell.EntireRow.Delete
Wend
If ACUM > 0 Then
ACUM = ACUM + ActiveCell.Offset(0, 3).Value
ActiveCell.Offset(0, 3).Value = ACUM
ACUM = 0
End If
ActiveCell.Offset(1, 0).Select
Wend
End Sub
 
Upvote 0
Code:
Sub RESUMIR()
Range([A2], "D" & [A1].End(xlDown).Row).Copy
    Sheets("poliza cheque").Select
    Sheets("poliza cheque").Range("A13").Activate
    ActiveSheet.Paste
...

¿Quiere usar la Hoja1 como la fuente? ¿O la hoja2? Había entendido la 2 pero si va a empezar con celda A2, me parece que está empezando con la 1 - al menos que la estructura de la 2 haya cambiado.
 
Upvote 0
Bueno, <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>
<o:p></o:p>

Antes de proceder le voy a proveer una planilla general para muchos problemas. Es una programación muy débil suponer qué es la hoja activa y seleccionar celdas para trabajar con ellas. La presente es más robusto en cuanto a estar seguro que uno tiene las cosas bien definidos. La manera demostrada no es la más robusta. La mejor es usar los CodeNames, pero no vamos a preocuparnos sobre estos en este momento.<o:p></o:p>
<o:p></o:p>

También es mejor nombrar rangos. O si no va a hacer eso, por lo menos poner nombres de los objetos claves como constantes en el inicio de la rutina y si hay que cambiar un nombre o una dirección de celda es muy fácil.

Code:
Sub XferData()
    Const c_strSourceSheetName As String = "Hoja1"
    Const c_strTargetSheetName As String = "Poliza Cheque"
    Const c_strSourceRangeAddr As String = "A2"
    Const c_strTargetRangeAddr As String = "A13"
 
    Dim wsSource As Excel.Worksheet, _
        wsTarget As Excel.Worksheet, _
        rngSource As Excel.Range, _
        rngTarget As Excel.Range
 
    Set wsSource = Worksheets(c_strSourceSheetName)
    Set rngSource = wsSource.Range(c_strSourceRangeAddr)
    Set wsTarget = Worksheets(c_strTargetSheetName)
    Set rngTarget = wsTarget.Range(c_strTargetRangeAddr)
 
    '// resto del código
End Sub
<o:p></o:p>
 
Upvote 0
En efecto, creo que tiene razon en mejor usar constantes, y eso seria algo mucho mas interesante, pasando a mi situacion, creo que usted no entendio mal al contrario, yo si deseo que se haga el trabajo de la hoja2 a lo hoja poliza de cheque, lo que puse es solo para demostrar que lo que he intentado no me ha funcionado como yo quiero, yese fue algo distinto a mi hoja de gastos contables, es por eso que si ud me puede ayudar aencaminar esa parte, prometo estudiar el codigo que me de a fondo.

digamos que ese juguetito vba me puede ayudar mucho, y tendria material de estudio.

Mucchisimas gracias por todo don greg truby
 
Upvote 0
titino - otra vez voy a andar sin conexión al internet por unos días. Por el momento trate de usar lo que le di para copiar las celdas deseadas de hoja2 a la celda correcta en la hoja poliza de cheque.
 
Upvote 0
titino - otra vez voy a andar sin conexión al internet por unos días. Por el momento trate de usar lo que le di para copiar las celdas deseadas de hoja2 a la celda correcta en la hoja poliza de cheque.

ok, creo que sera un poco dificil, vere que puedo hacer!!!!

Saludos , feliz campamento!!
 
Upvote 0

Forum statistics

Threads
1,223,532
Messages
6,172,878
Members
452,486
Latest member
standw01

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top