pasar datos a otro libro segun el mes

17/08/2008 - 14:27 por gongi | Informe spam
Hola Grupo!
Por favor, algún hilo que ya halla tratado este tema:
Se trata de que, de mi hoja o *plantilla* de liquidacion <<factura>>
tengo que pasar los datos a un libro *informe* cuyas hojas, son los
[meses del año] . Entonces en base a la *fecha* de liquidacion, tengo
que pasar ciertos datos de la plantilla, a la *hoja* del *mes* de la
fecha de la liquidacion (12/08/2008 a la hoja "AGOSTO" ) .

Aprovechando el código de "historico ()".

Sub Historico()
Dim Generales, n As Byte, Col As Byte
With Worksheets("liquidacion")
Generales = Array(.[b2], .[d53], .[d54], .[b7], .[b3], .[b4], .
[b5], .[b56], .[c56], .[d56])
End With

With Workbooks("informe").Worksheets("AGOSTO") -> ¿Existe
alguna manera de hacer este dato *variable*, que se le pida al usuario
por Inputbox el mes de que se trate o por lista despegable)

With .[a65536].End(xlUp)
.Offset(1).Resize(, 10) = Generales
End With
End With
End Sub

Muchas gracias por vuestra ayuda
Saludos !

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
18/08/2008 - 02:36 | Informe spam
hola, domingo !

__ 1 __
Se trata de que, de mi hoja o *plantilla* de liquidacion <<factura>>
tengo que pasar los datos a un libro *informe* cuyas hojas, son los meses del año].
Entonces en base a la *fecha* de liquidacion, tengo que pasar ciertos datos de la plantilla
a la *hoja* del *mes* de la fecha de la liquidacion (12/08/2008 a la hoja "AGOSTO" ).



1) de donde se toma la "fecha de la liquidacion" ?
tienes dos o mas "fechas de liquidacion" en un mismo concepto de plantilla/factura ? (y porque y donde ?)
a donde (arreglo de rangos) se debe pasar cada registro segun "la fecha de liquidacion" ?

__ 2 __
Aprovechando el código de "historico ()".
Sub Historico()
Dim Generales, n As Byte, Col As Byte
With Worksheets("liquidacion")
Generales = Array(.[b2], .[d53], .[d54], .[b7], .[b3], .[b4], .[b5], .[b56], .[c56], .[d56])
End With
With Workbooks("informe").Worksheets("AGOSTO") -> Existe alguna manera de hacer este dato *variable*
que se le pida al usuario por Inputbox el mes de que se trate o por lista despegable)



2) si quieres hacer "interacciones" con el usuario... deberas pensar en algunas formas de prevenir/evitar/corregir/...
cualquier posibilidad de errores del usuario (involuntarios o por usos y costumbres ademas de configuracion de equpos) p.e.
- que pasa si el usuario "digita" agosto con algun error de caracteres de mas/menos ? (antes, en el medio o despues)
- si solo le pides el numero del mes... que pasa si la aplicacion donde se ejecuta el codigo esta instalada en ingles ?

(creo que) habra algun detalle mas que se pudiera estar quedando "en el tintero", asi que...
si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 gongi
18/08/2008 - 17:29 | Informe spam
On 18 ago, 02:36, "Héctor Miguel"
wrote:
hola, domingo !

__ 1 __

> Se trata de que, de mi hoja o *plantilla* de liquidacion <<factura>>
> tengo que pasar los datos a un libro *informe* cuyas hojas, son los meses del año].
> Entonces en base a la *fecha* de liquidacion, tengo que pasar ciertos datos de la plantilla
> a la *hoja* del *mes* de la fecha de la liquidacion (12/08/2008 a la hoja "AGOSTO" ).

1) de donde se toma la "fecha de la liquidacion" ?
tienes dos o mas "fechas de liquidacion" en un mismo concepto de plantilla/factura ? (y porque y donde ?)
a donde (arreglo de rangos) se debe pasar cada registro segun "la fecha de liquidacion" ?

__ 2 __

> Aprovechando el código de "historico ()".
> Sub Historico()
> Dim Generales, n As Byte, Col As Byte
> With Worksheets("liquidacion")
> Generales = Array(.[b2], .[d53], .[d54], .[b7], .[b3], .[b4], .[b5], .[b56], .[c56], .[d56])
> End With
> With Workbooks("informe").Worksheets("AGOSTO") -> Existe alguna manera de hacer este dato *variable*
> que se le pida al usuario por Inputbox el mes de que se trate o por lista despegable)

2) si quieres hacer "interacciones" con el usuario... deberas pensar en algunas formas de prevenir/evitar/corregir/...
cualquier posibilidad de errores del usuario (involuntarios o por usos y costumbres ademas de configuracion de equpos) p.e.
- que pasa si el usuario "digita" agosto con algun error de caracteres de mas/menos ? (antes, en el medio o despues)
- si solo le pides el numero del mes... que pasa si la aplicacion donde se ejecuta el codigo esta instalada en ingles ?

(creo que) habra algun detalle mas que se pudiera estar quedando "en el tintero", asi que...
si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.



Hola Hector !

1) de donde se toma la "fecha de la liquidacion" ?
tienes dos o mas "fechas de liquidacion" en un mismo concepto de plantilla/factura ? (y porque y donde ?)
a donde (arreglo de rangos) se debe pasar cada registro segun "la fecha de liquidacion" ?




La fecha de liquidación es "b3" del Array " Generales" y es la única
fecha que hay en la plantilla, es la fecha de * operación * .

Se pasa a al [libro "facturas"][hoja ("mes")] según dicha fecha (en
el código expuesto: "agosto").


Sub Facturas()
Dim Datos


With Worksheets("liquidacion")
Datos = Array(.[b3], .[b2], .[b7], .[b8], .[d53], .[d54], .
[d55], .[b4])

End With

'volcar los datos en el resumen de facturas '

With Workbooks("facturas").Worksheets("agosto")
With .Range("a" & .Range("h" & Rows.Count).End(xlUp).Row)
.Offset(1).Resize(, 8) = Datos
End With
End With
End Sub

************************
Y el rango destino tiene esta (estructura): 8 columnas
[b3], .[b2], .[b7], .[b8], .[d53], .[d54], .[d55], .[b4]

FECHA REFERENCIA NroFACTURA Nropaxs MPORTETOTAL BENEF. %BENEF
DEST

******************************************************


2) si quieres hacer "interacciones" con el usuario... deberas pensar
en algunas formas de prevenir/evitar/corregir/...
cualquier posibilidad de errores del usuario (involuntarios o por usos y costumbres ademas de configuracion de equpos) p.e.
- que pasa si el usuario "digita" agosto con algun error de caracteres de mas/menos ? (antes, en el medio o despues)
- si solo le pides el numero del mes... que pasa si la aplicacion donde se ejecuta el codigo esta instalada en ingl



Lo que hago es cambiar el mes a *pelo* en la linea del código
correspondiente:

-> With Workbooks("facturas").Worksheets("agosto")

A lo mejor puedo leer el dato de la fecha "b3" (120808) , extraer el
mes(08) , y según el mes crearme un Case ?????
Case = 08

With Workbooks("facturas").Worksheets("agosto")

Case = 09

With Workbooks("facturas").Worksheets("septiembre")

O un combo en el que los nombres("meses") coincidan con los de las
hojas ???

Gracias por tu ayuda y orientación en esta "batalla" :-))

Saludos !
Respuesta Responder a este mensaje
#3 Héctor Miguel
18/08/2008 - 22:01 | Informe spam
hola, domingo !

si este codigo se va a ejecutar SIEMPRE en un excel en espanol, prueba con la siguiente adaptacion:

Sub Facturas()
Dim Datos, Mes As String
With Worksheets("liquidacion")
Datos = Array(.[b3], .[b2], .[b7], .[b8], .[d53], .[d54], .[d55], .[b4])
Mes = Format(.[b3], "mmmm")
End With
' volcar los datos en el resumen de facturas '
With Workbooks("facturas").Worksheets(Mes)
With .Range("a" & .Range("h" & Rows.Count).End(xlUp).Row)
.Offset(1).Resize(, 8) = Datos
End With
End With
End Sub

si existe la posibilidad de que el excel sea en otro idioma, cambia la forma de asignar la variable Mes = ...
de:
Mes = Format(.[b3], "mmmm")
a:
Mes = Evaluate("index({""enero"",""febrero"",""marzo"",""abril"",""mayo""," & _
"""junio"",""julio"",""agosto"",""septiembre"",""octubre""," & _
"""noviembre"",""diciembre""},month(" & .[b3].Address(, , , 1) & "))")

saludos,
hector.

1) de donde se toma la "fecha de la liquidacion" ?
tienes dos o mas "fechas de liquidacion" en un mismo concepto de plantilla/factura ? (y porque y donde ?)
a donde (arreglo de rangos) se debe pasar cada registro segun "la fecha de liquidacion" ?



La fecha... es "b3" del Array " Generales" y es la unica fecha que hay en la plantilla, es la fecha de *operacion*.
Se pasa a al [libro "facturas"][hoja ("mes")] segun dicha fecha (en el codigo expuesto: "agosto")...

Lo que hago es cambiar el mes a *pelo* en la linea del codigo correspondiente:
-> With Workbooks("facturas").Worksheets("agosto")

A lo mejor puedo leer el dato de la fecha "b3" (120808), extraer el mes(08), y segun el mes crearme un Case ????? ...



__ OP __
__ 1 __
Se trata de que, de mi hoja o *plantilla* de liquidacion <<factura>>
tengo que pasar los datos a un libro *informe* cuyas hojas, son los meses del año].
Entonces en base a la *fecha* de liquidacion, tengo que pasar ciertos datos de la plantilla
a la *hoja* del *mes* de la fecha de la liquidacion (12/08/2008 a la hoja "AGOSTO" ).



1) de donde se toma la "fecha de la liquidacion" ?
tienes dos o mas "fechas de liquidacion" en un mismo concepto de plantilla/factura ? (y porque y donde ?)
a donde (arreglo de rangos) se debe pasar cada registro segun "la fecha de liquidacion" ?

__ 2 __
Aprovechando el código de "historico ()".
Sub Historico()
Dim Generales, n As Byte, Col As Byte
With Worksheets("liquidacion")
Generales = Array(.[b2], .[d53], .[d54], .[b7], .[b3], .[b4], .[b5], .[b56], .[c56], .[d56])
End With
With Workbooks("informe").Worksheets("AGOSTO") -> Existe alguna manera de hacer este dato *variable*
que se le pida al usuario por Inputbox el mes de que se trate o por lista despegable)



2) si quieres hacer "interacciones" con el usuario... deberas pensar en algunas formas de prevenir/evitar/corregir/...
cualquier posibilidad de errores del usuario (involuntarios o por usos y costumbres ademas de configuracion de equpos) p.e.
- que pasa si el usuario "digita" agosto con algun error de caracteres de mas/menos ? (antes, en el medio o despues)
- si solo le pides el numero del mes... que pasa si la aplicacion donde se ejecuta el codigo esta instalada en ingles ?

(creo que) habra algun detalle mas que se pudiera estar quedando "en el tintero", asi que...
Respuesta Responder a este mensaje
#4 gongi
19/08/2008 - 18:02 | Informe spam
On 18 ago, 22:01, "Héctor Miguel"
wrote:
hola, domingo !

si este codigo se va a ejecutar SIEMPRE en un excel en espanol, prueba con la siguiente adaptacion:

Sub Facturas()
Dim Datos, Mes As String
With Worksheets("liquidacion")
Datos = Array(.[b3], .[b2], .[b7], .[b8], .[d53], .[d54], .[d55], .[b4])
Mes = Format(.[b3], "mmmm")
End With
' volcar los datos en el resumen de facturas '
With Workbooks("facturas").Worksheets(Mes)
With .Range("a" & .Range("h" & Rows.Count).End(xlUp).Row)
.Offset(1).Resize(, 8) = Datos
End With
End With
End Sub

si existe la posibilidad de que el excel sea en otro idioma, cambia la forma de asignar la variable Mes = ...
de:
Mes = Format(.[b3], "mmmm")
a:
Mes = Evaluate("index({""enero"",""febrero"",""marzo"",""abril"",""mayo""," & _
"""junio"",""julio"",""agosto"",""septiembre"",""octubre""," & _
"""noviembre"",""diciembre""},month(" & .[b3].Address(, , , 1) & "))")

saludos,
hector.

>> 1) de donde se toma la "fecha de la liquidacion" ?
>> tienes dos o mas "fechas de liquidacion" en un mismo concepto de plantilla/factura ? (y porque y donde ?)
>> a donde (arreglo de rangos) se debe pasar cada registro segun "la fecha de liquidacion" ?

> La fecha... es "b3" del Array " Generales" y es la unica fecha que hay en la plantilla, es la fecha de *operacion*.
> Se pasa a al [libro "facturas"][hoja ("mes")] segun dicha fecha (en el codigo expuesto: "agosto")...

> Lo que hago es cambiar el mes a *pelo* en la linea del codigo correspondiente:
> -> With Workbooks("facturas").Worksheets("agosto")

> A lo mejor puedo leer el dato de la fecha "b3" (120808), extraer el mes(08), y segun el mes crearme un Case ????? ...

__ OP __

> __ 1 __
>> Se trata de que, de mi hoja o *plantilla* de liquidacion <<factura>>
>> tengo que pasar los datos a un libro *informe* cuyas hojas, son los meses del año].
>> Entonces en base a la *fecha* de liquidacion, tengo que pasar ciertos datos de la plantilla
>> a la *hoja* del *mes* de la fecha de la liquidacion (12/08/2008 a la hoja "AGOSTO" ).

> 1) de donde se toma la "fecha de la liquidacion" ?
> tienes dos o mas "fechas de liquidacion" en un mismo concepto de plantilla/factura ? (y porque y donde ?)
> a donde (arreglo de rangos) se debe pasar cada registro segun "la fecha de liquidacion" ?

> __ 2 __
>> Aprovechando el código de "historico ()".
>> Sub Historico()
>> Dim Generales, n As Byte, Col As Byte
>> With Worksheets("liquidacion")
>> Generales = Array(.[b2], .[d53], .[d54], .[b7], .[b3], .[b4], .[b5], .[b56], .[c56], .[d56])
>> End With
>> With Workbooks("informe").Worksheets("AGOSTO") -> Existe alguna manera de hacer este dato *variable*
>> que se le pida al usuario por Inputbox el mes de que se trate o por lista despegable)

> 2) si quieres hacer "interacciones" con el usuario... deberas pensar en algunas formas de prevenir/evitar/corregir/...
> cualquier posibilidad de errores del usuario (involuntarios o por usos y costumbres ademas de configuracion de equpos) p.e.
> - que pasa si el usuario "digita" agosto con algun error de caracteres de mas/menos ? (antes, en el medio o despues)
> - si solo le pides el numero del mes... que pasa si la aplicacion donde se ejecuta el codigo esta instalada en ingles ?

> (creo que) habra algun detalle mas que se pudiera estar quedando "en el tintero", asi que...




Ya lo pruebo y te comento , Hector .
Muchas Gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida