código de rescate o lectura de un registro de una base de datos o histórico

09/12/2009 - 17:33 por gongi | Informe spam
sub Historico()

'Declaracion de variables'

Dim Generales, Datos_Clientes, Cobros, n As Byte, Col As Byte
Dim Datos_Factura, Mes As String


'capturar los datos de la plantilla de liquidacion'

With Worksheets("liquidacion")
'el orden el array es el orden en el que se vuelcan el histórico'
Generales = Array(.[b2], .[d53], .[d54], .[b7], .[b3], .[b4], .
[b5], .[b56], .[c56], .[d56], .[b57], .[c57], .[d57], .[b10], .[b11], .
[b12], _
.[b8], .[b13], .[a42], .[a43], .[a44], .[a45], .[a46], .[a34], .
[a35], .[a36], .[a37], .[a38], .[a39], .[a40], .[d52], .[f34], .
[d31], .[f27], .[a27])
Datos_Factura = Array(.[b3], .[b2], .[b7], .[b8], .[d53], .
[d54], .[d55], .[b4], [b13])
Datos_Clientes = Array(.[b2], .[b4], .[b5])
n = Application.Count(.[f54:f69]) 'cuenta el nº de cobros'
Cobros = Array(.[f54].Resize(n).Value, .[g54].Resize(n).Value, .
[h54].Resize(n).Value) 'Array dinamico cambia de tamaño segun n'

'para salvar la notación de "mes" '
Mes = Evaluate("index
({""enero"",""febrero"",""marzo"",""abril"",""mayo""," & _

"""junio"",""julio"",""agosto"",""septiembre"",""octubre""," & _
"""noviembre"",""diciembre""},month(" & .
[b3].Address(, , , 1) & "))")
'coger el año de la fecha para volcar en resumen'

Ejercicio = Year(.[b3])

End With

'volcar los datos en el historico '

With Workbooks("historico.xlsm").Worksheets("historico")

' ver si ya existe el registro comprobando b7 = numero factura'
' If Workbooks("historico").Worksheets("historico").Range
("d65536").End(xlUp) = _
Worksheets("liquidacion").Range("b7") Then MsgBox "factura ya
registrada": Exit Sub

If Workbooks("historico.xlsm").Worksheets("historico").Range
("a65536").End(xlUp) = _
Worksheets("liquidacion").Range("b2") Then MsgBox "factura ya
registrada": Exit Sub



With .[a65536].End(xlUp)
.Offset(1).Resize(, 35) = Generales 'nº de columnas del
historico, debe coincidir con el tamaño del array '
' For Col = 0 To n - 1
' .Offset(1, 10 + Col * 3).Resize(, 3).Value = _
' Worksheets("liquidacion").[f54].Offset(Col).Resize(,
3).Value
' Next
End With

End With

Por favor, grupo, se puede , por código, volver o "rescatar" de los
elementos del array Generales, que he volcado en un histórico , que
saco de la hoja aquí llamada liquidación, a esa hoja de nuevo ? .Pero
esa hoja tiene formulas ,por lo que quizás sería mejor rescatarlos a
otra hoja , con el objeto de imprimir , revisar etc ?
Muchas gracias por la ayuda

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
09/12/2009 - 23:04 | Informe spam
hola, domingo !

Por favor, grupo, se puede, por código, volver o "rescatar" de los elementos del array Generales
que he volcado en un historico, que saco de la hoja aquí llamada liquidacion, a esa hoja de nuevo ?
Pero esa hoja tiene formulas, por lo que quizás sería mejor rescatarlos a otra hoja, con el objeto de imprimir, revisar etc ?



1) si los datos de la hoja "liquidacion" son formulas, la matriz lleva solo los valores
2) la matriz termina su trabajo al finalizar el codigo (por lo mismo, la matriz queda vacia)
3) para "rescatar" los datos (valores) que deposito la matriz, necesitas encontrar "donde" los puso (factura, ???)
4) para no echar a perder las formulas en la hoja "liquidacion" (probablemente) podrias tener un rango "auxiliar" (?)
en este rango auxiliar depositarias los "rescates" de infomacion (del historico) pero tendrias que adaptar/crecer/... "las formulas"

saludos,
hector.

__ el codigo expuesto _
sub Historico()
'Declaracion de variables'
Dim Generales, Datos_Clientes, Cobros, n As Byte, Col As Byte
Dim Datos_Factura, Mes As String
'capturar los datos de la plantilla de liquidacion'
With Worksheets("liquidacion")
'el orden el array es el orden en el que se vuelcan el histórico'
Generales = Array(.[b2], .[d53], .[d54], .[b7], .[b3], .[b4], .[b5], .[b56], .[c56], .[d56], .[b57], .[c57], .[d57], .[b10], .[b11], .[b12], _
.[b8], .[b13], .[a42], .[a43], .[a44], .[a45], .[a46], .[a34], .[a35], .[a36], .[a37], .[a38], .[a39], .[a40], .[d52], .[f34], .[d31], .[f27], .[a27])
Datos_Factura = Array(.[b3], .[b2], .[b7], .[b8], .[d53], .[d54], .[d55], .[b4], [b13])
Datos_Clientes = Array(.[b2], .[b4], .[b5])
n = Application.Count(.[f54:f69]) 'cuenta el nº de cobros'
Cobros = Array(.[f54].Resize(n).Value, .[g54].Resize(n).Value, .[h54].Resize(n).Value) 'Array dinamico cambia de tamaño segun n'
'para salvar la notación de "mes" '
Mes = Evaluate("index({""enero"",""febrero"",""marzo"",""abril"",""mayo""," & _
"""junio"",""julio"",""agosto"",""septiembre"",""octubre""," & _
"""noviembre"",""diciembre""},month(" & .[b3].Address(, , , 1) & "))")
'coger el año de la fecha para volcar en resumen'
Ejercicio = Year(.[b3])
End With
'volcar los datos en el historico '
With Workbooks("historico.xlsm").Worksheets("historico")
' ver si ya existe el registro comprobando b7 = numero factura'
' If Workbooks("historico").Worksheets("historico").Range("d65536").End(xlUp) = _
Worksheets("liquidacion").Range("b7") Then MsgBox "factura yaregistrada": Exit Sub
If Workbooks("historico.xlsm").Worksheets("historico").Range("a65536").End(xlUp) = _
Worksheets("liquidacion").Range("b2") Then MsgBox "factura yaregistrada": Exit Sub
With .[a65536].End(xlUp)
.Offset(1).Resize(, 35) = Generales 'nº de columnas delhistorico, debe coincidir con el tamaño del array '
' For Col = 0 To n - 1
' .Offset(1, 10 + Col * 3).Resize(, 3).Value = _
' Worksheets("liquidacion").[f54].Offset(Col).Resize(, 3).Value
' Next
End With
End With
Respuesta Responder a este mensaje
#2 gongi
10/12/2009 - 10:47 | Informe spam
On 9 dic, 23:04, "Héctor Miguel"
wrote:
hola, domingo !

> Por favor, grupo, se puede, por código, volver o "rescatar" de los elementos del array Generales
> que he volcado en un historico, que saco de la hoja aquí llamada liquidacion, a esa hoja de nuevo ?
> Pero esa hoja tiene formulas, por lo que quizás sería mejor rescatarlos a otra hoja, con el objeto de imprimir, revisar etc ?

1) si los datos de la hoja "liquidacion" son formulas, la matriz lleva solo los valores
2) la matriz termina su trabajo al finalizar el codigo (por lo mismo, la matriz queda vacia)
3) para "rescatar" los datos (valores) que deposito la matriz, necesitas encontrar "donde" los puso (factura, ???)
4) para no echar a perder las formulas en la hoja "liquidacion" (probablemente) podrias tener un rango "auxiliar" (?)
    en este rango auxiliar depositarias los "rescates" de infomacion (del historico) pero tendrias que adaptar/crecer/... "las formulas"

saludos,
hector.

__ el codigo expuesto _
sub Historico()
'Declaracion de variables'
Dim Generales, Datos_Clientes, Cobros, n As Byte, Col As Byte
Dim Datos_Factura, Mes As String
'capturar los datos de la plantilla de liquidacion'
 With Worksheets("liquidacion")
     'el orden el array es el orden en el que se vuelcan el histórico'
     Generales = Array(.[b2], .[d53], .[d54], .[b7], .[b3], .[b4], .[b5], .[b56], .[c56], .[d56], .[b57], .[c57], .[d57], .[b10], .[b11], .[b12], _
      .[b8], .[b13], .[a42], .[a43], .[a44], .[a45], .[a46], .[a34], .[a35], .[a36], .[a37], .[a38], .[a39], .[a40], .[d52], .[f34], .[d31], .[f27], .[a27])
     Datos_Factura = Array(.[b3], .[b2], .[b7], .[b8], .[d53], .[d54], .[d55], .[b4], [b13])
     Datos_Clientes = Array(.[b2], .[b4], .[b5])
     n = Application.Count(.[f54:f69]) 'cuenta el nº de cobros'
     Cobros = Array(.[f54].Resize(n).Value, .[g54].Resize(n).Value, .[h54].Resize(n).Value) 'Array dinamico cambia de tamaño segun n'
     'para salvar la notación de "mes" '
          Mes = Evaluate("index({""enero"",""febrero"",""marzo"",""abril"",""mayo""," & _
"""junio"",""julio"",""agosto"",""septiembre"",""octubre""," & _
                           """noviembre"",""diciembre""},month(" & .[b3].Address(, , , 1) & "))")
     'coger el año de la fecha para volcar en resumen'
         Ejercicio = Year(.[b3])
End With
'volcar los datos en el historico '
With Workbooks("historico.xlsm").Worksheets("historico")
 ' ver si ya existe el registro comprobando b7 = numero factura'
 '  If Workbooks("historico").Worksheets("historico").Range("d65536").End(xlUp) = _
  Worksheets("liquidacion").Range("b7") Then MsgBox "factura yaregistrada": Exit Sub
    If Workbooks("historico.xlsm").Worksheets("historico").Range("a65536").End(xlUp) = _
  Worksheets("liquidacion").Range("b2") Then MsgBox "factura yaregistrada": Exit Sub
    With .[a65536].End(xlUp)
      .Offset(1).Resize(, 35) = Generales    'nº de columnas delhistorico, debe coincidir con el tamaño del array '
       ' For Col = 0 To n - 1
         '  .Offset(1, 10 + Col * 3).Resize(, 3).Value = _
         '  Worksheets("liquidacion").[f54].Offset(Col).Resize(, 3).Value
        ' Next
    End With
End With



Hola Héctor , que alegría que me respondas !

No me explique bien , si , la matriz deposita los valores en el
fichero llamado "historico", **( Workbooks("historico").Worksheets
("historico"))**, de ahí es de donde tengo que sacar los datos para
"devolverlos" a la hoja "liquidacion".

4) para no echar a perder las formulas en la hoja
"liquidacion" (probablemente) podrias tener un rango "auxiliar" (?)
en este rango auxiliar depositarias los "rescates" de infomacion (del historico) pero tendrias que adaptar/crecer/... "las formulas"



Si, entiendo , para que se puedan volver a *recalcular* los datos
(sumas de totales , etc ) , ? A lo mejor , para no "enfarragar" más
la hoja , podría crear una copia exacta en un rango alejado o en otra
hoja adjunta en la que se calculen solo los totales ("liquidación2) y
tenerla hay siempre para estos menesteres?
Muchas gracias !!!
Respuesta Responder a este mensaje
#3 Héctor Miguel
10/12/2009 - 21:37 | Informe spam
hola, domingo !

No me explique bien, si, la matriz deposita los valores en el fichero llamado "historico"
**( Workbooks("historico").Worksheets("historico"))**
de ahi es de donde tengo que sacar los datos para "devolverlos" a la hoja "liquidacion".



entonces... que me dices de como conseguir (exactamente) donde se habian depositado esos datos anteriormente ?
3) para "rescatar" los datos (valores) que deposito la matriz, necesitas encontrar "donde" los puso (factura, ???)

4) para no echar a perder las formulas en la hoja "liquidacion" (probablemente) podrias tener un rango "auxiliar" (?)
en este rango auxiliar depositarias los "rescates" de infomacion (del historico) pero tendrias que adaptar/crecer/... "las formulas"



Si, entiendo, para que se puedan volver a *recalcular* los datos (sumas de totales, etc ) ?
A lo mejor, para no "enfarragar" mas la hoja, podria crear una copia exacta en un rango alejado
o en otra hoja adjunta en la que se calculen solo los totales ("liquidación2) y tenerla hay siempre para estos menesteres?



(probablemente) solo seria necesario agregar alguna condicion a "las formulas" (que de momento solo conoces tu) ?
para que si existen datos "rescatados" (en ese rango auxiliar) muestren "esos" datos, de lo contrario, las formulas "hagan lo suyo"

saludos,
hector.
Respuesta Responder a este mensaje
#4 gongi
15/12/2009 - 17:28 | Informe spam
On 10 dic, 21:37, "Héctor Miguel"
wrote:
hola, domingo !

> No me explique bien, si, la matriz deposita los valores en el fichero llamado "historico"
> **( Workbooks("historico").Worksheets("historico"))**
> de ahi es de donde tengo que sacar los datos para "devolverlos" a la hoja "liquidacion".

entonces... que me dices de como conseguir (exactamente) donde se habian depositado esos datos anteriormente ?

> 3) para "rescatar" los datos (valores) que deposito la matriz, necesitas encontrar "donde" los puso (factura, ???)
>> 4) para no echar a perder las formulas en la hoja "liquidacion" (probablemente) podrias tener un rango "auxiliar" (?)
>>     en este rango auxiliar depositarias los "rescates" de infomacion (del historico) pero tendrias que adaptar/crecer/... "las formulas"

> Si, entiendo, para que se puedan volver a *recalcular* los datos (sumas de totales, etc ) ?
> A lo mejor, para no "enfarragar" mas la hoja, podria crear una copia exacta en un rango alejado
> o en otra hoja adjunta en la que se calculen solo los totales ("liquidación2) y tenerla hay siempre para estos menesteres?

(probablemente) solo seria necesario agregar alguna condicion a "las formulas" (que de momento solo conoces tu) ?
para que si existen datos "rescatados" (en ese rango auxiliar) muestren "esos" datos, de lo contrario, las formulas "hagan lo suyo"

saludos,
hector.



Hola Hector , no puedo seguir por el momento con este tema. Gracias y
disculpa por no haber realizado el feedback
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida