Saltar al contenido

Crear Histórico con vba.


Recommended Posts

publicado

Hola colegas buenos días.

Tengo un problema y acudo a ustedes para ver que solución me dan.

Esto es parte del proyecto de Disponibilidad bancaria que ustedes han visto y ayudado en ocasiones.

Quiero crear un Histórico, que puede ser único o separado por banco, no importa.

Copiar cada Rango y pasarlo a cada una de las hojas Histórico no es problema, eso es algo que hago a menudo, el problema está en que al finalizar el año, las Hojas Diario y DiarioBFI quedarán en “Blanco” (Vacías) para comenzar un nuevo período fiscal y si hago referencias nuevamente a las Hojas Diario y DiarioBFI para copiar y pegar en las Hojas Histórico (comenzado otro año) se eliminarán las del año anterior y copiarán las nuevas.

No sé si me di a entender, lo que realmente necesito es ir teniendo un Histórico por día, meses y años de los registros bancarios.

Este  es el código que yo tengo, aunque sé que pude crear una variable para buscar la ultima fila y columna, pero no genero ideas en cuanto al resultado que quiero tener.

Sub ActualizarBancos()
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim Tiempo As Integer, Mensaje As Object
Set Mensaje = CreateObject("wscript.shell")
Tiempo = 5

Hoja3.Range("A1:I5000").Copy Destination:=Hoja19.Range("A1")
Hoja10.Range("A1:I5000").Copy Destination:=Hoja20.Range("A1")
´FrmHistorico.LstHBandec.Clear
´FrmHistorico.LstHBfi.Clear
Select Case Mensaje.popup("(El Proceso se está ejecutando. Por Favor Espere...).", Tiempo, "Sistemas COLOSSUS", 0)
Case 1, -1
´FrmHistorico.Mostrar
´FrmHistorico.MostrarBFI
MsgBox "Proceso Terminado", vbInformation, "Sistemas COLOSSUS"

Exit Sub
End Select

Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Más allá de lo anterior necesito que me den ideas de cómo hacerlo.

Gracias de antemano

Saludos

Pino.

Historico.xlsm

publicado

Buenas noches colegas. Espero se encuentren bien de salud.

Por favor, necesito que alguien me ayude con este tema.

Gracias de antemano.

Pino

publicado

Hola colegas, Buenos días.

Que tal profesor JSD, espero se encuentre bien de salud.

Necesito ir creando un histórico de todos los registros de cada banco, por días mes y año. Yo, mientras esté en el 2023 con el código que tengo no debo tener problema, pues lo toma de las hojas Diario y DiarioBfi, pero cuando termine este año (31/12/2023) los registros de esas hojas (Diario y Diario Bfi) se borran y comienzan nuevamente para el nuevo periodo fiscal, o sea, comienzo con nuevos registros a partir del 01/01/2024 con el ID 1 y todo lo demás, y si pretendo actualizar banco se borran todos los que existen y pasan a esas hojas (Histórico) solamente los que estén registrados, porque no sé cómo ir manteniendo en el histórico  esos registros ya existentes y copiar además los nuevos registros.

Resumiendo, quiero en cualquier fecha del 2024 tener la posibilidad de buscar en un histórico los registros del 2023 y así sucesivamente cada año.

Voy a explicarte algo "Padrino", yo estoy claro que necesito hacerles algunos arreglos y modificaciones al Proyecto, porque el Delegado del Turismo en el territorio que atiende la parte económica donde radico lo vio y le gustó y quiere estandarizado a todos los hoteles e instituciones extra hoteleras de Cayó Coco y Guillermo para buscar uniformidad en la información, pero además va a estar compartido para que trabajen al menos dos personas (red local), y ya estoy trabajando en cuanto a llevar un logeo, control de usuario y otros detalles como son controlar errores que puedan existir y demás.

Le hablo del Proyecto Disponibilidad en el que usted y otros colegas me han ayudado infinitamente a los cuales les estoy muy agradecido.

Ese archivo que le envié es solo una parte de Disponibilidad, pero como el original "pesa" mucho no pude subirlo.

Ahora más que nunca voy a necesitar la apreciable ayuda de ustedes para mejorar el Proyecto y hacer las modificaciones pertinentes que no son muchas.

Si no entendió algo por favor me comenta.

Gracias mil de antemano y mis respetos.

Pino.

publicado

Hola colegas, Buenos días.

Que tal profesor JSD, espero se encuentre bien de salud.

Necesito ir creando un histórico de todos los registros de cada banco, por días mes y año. Yo, mientras esté en el 2023 con el código que tengo no debo tener problema, pues lo toma de las hojas Diario y DiarioBfi, pero cuando termine este año (31/12/2023) los registros de esas hojas (Diario y Diario Bfi) se borran y comienzan nuevamente para el nuevo periodo fiscal, o sea, comienzo con nuevos registros a partir del 01/01/2024 con el ID 1 y todo lo demás, y si pretendo actualizar banco se borran todos los que existen y pasan a esas hojas (Histórico) solamente los que estén registrados, porque no sé cómo ir manteniendo en el histórico  esos registros ya existentes y copiar además los nuevos registros.

Resumiendo, quiero en cualquier fecha del 2024 tener la posibilidad de buscar en un histórico los registros del 2023 y así sucesivamente cada año.

Voy a explicarte algo "Padrino", yo estoy claro que necesito hacerles algunos arreglos y modificaciones al Proyecto, porque el Delegado del Turismo en el territorio que atiende la parte económica donde radico lo vio y le gustó y quiere estandarizado a todos los hoteles e instituciones extra hoteleras de Cayó Coco y Guillermo para buscar uniformidad en la información, pero además va a estar compartido para que trabajen al menos dos personas (red local), y ya estoy trabajando en cuanto a llevar un logeo, control de usuario y otros detalles como son controlar errores que puedan existir y demás.

Le hablo del Proyecto Disponibilidad en el que usted y otros colegas me han ayudado infinitamente a los cuales les estoy muy agradecido.

Ese archivo que le envié es solo una parte de Disponibilidad, pero como el original "pesa" mucho no pude subirlo.

Ahora más que nunca voy a necesitar la apreciable ayuda de ustedes para mejorar el Proyecto y hacer las modificaciones pertinentes que no son muchas.

Si no entendió algo por favor me comenta.

Gracias mil de antemano y mis respetos.

Pino.

Disponibilidad v11.5.2.xlsm

publicado

Acá está el archivo profesor JSD.  En otra consulta quisiera que me revisara el código de los Portadores Energéticos que usted me hizo, porque en el mes de abril no quiso darme el reporte pero si pongo pero mes si lo hace.

Saludos

Pino

publicado

El sistema seria el siguiente: Cuando pulses el botón para cerrar el año (que no he mirado si lo tienes o no, pero bueno en caso de no tenerlo intenta hacerlo) el código debe recorrer las hojas del libro y cuando encuentre la hoja DiarioBFI e HistoricoBandec debe añadirle el año que quieres cerrar, por ejemplo si suponemos que cerraste en año anterior 2022 pues debería renombrar las hojas como DiarioBFI2022 e HistoricoBandec2022 y acto seguido crear otras dos nuevas hojas con los nombre de DiarioBFI e HistoricoBandec para el año actual.

Para hacer la prueba las hojas HistoricoBandec2022 y DiarioBFI2022 las he creado manualmente, por eso te digo que si no tienes la macro para cerrar el año que la hagas.

Cuando arrancas el formulario en los combos de años de Bandec te cargará todas las hojas de históricos del mismo, igualmente en DiarioBFI.

En estos eliges el año con el que quieres trabajar y listo. Ojo¡¡ no lo he comprobado todo en tema de filtrados y validaciones haz las pruebas pertinentes y comenta.

publicado

Hola profesor.

Analizaré detenidamente su consejo y opinión con más calma. Estoy desde mi móvil y se me dificulta mucho.

Gracias por su tiempo y prontitud. Hasta el lunes no puedo revisar el archivo y después le comentaré, pero como siempre debe ser perfecto.

Un abrazo de mi parte.

Mis respetos.

Pino.

publicado

Buenas tardes colegas.

Buenas tardes profesor.

Su idea es funcional, pero no se si crear más hojas del del libro sea factible, de hecho es un libro que ya tiene veinti tantas hojas y se le irán creando dos más cada año y a mi parecer no creo que sea una buena práctica.

En cuanto a crear el código que usted me sugiere, no se si lo logre, pero si puedo itentarlo.

Un agradecimiento y mis respetos.

Pino

publicado

Lo de crear hojas no es ningún problema se crearían automáticamente cuando hagas el cierre del año y  las de años anteriores quedarían  ocultas .

Con respecto al código, inténtalo y si no lo consigues dilo

publicado

Ok profesor, nunca he sido "cobarde", al contrario siempre atrevido y es una buena manera de aprender.

Intentaré y lo manendré al tanto.

Un abrazo.

Pino

publicado

En caso de no conseguirlo no dudes en decirlo, como te comenté anteriormente tienes que hacer un botón con el código que al hacer el cierre de año las hojas en las que tienes el historial te las cambie de nombre añadiéndole el año de cierre y ocultándolas y acto seguido que te cree las nuevas con el mismo nombre que tenían antes del cierre. Yo no tengo inconveniente en hacértelo pero creo que si lo intentas antes mejor que mejor.

publicado

Buenos días colegas. Espero todos se encuentren bien de salud.

Buenos días profesor. En cuanto a su comentario anterior no se preopcupe, que yo estoy intentando hacerlo. Por acá en mi país existe un dicho que repetimos los "aventureros, los sin miedos" y dice; "cortando huevos se aprende a castrar" y es lo que siempre he venido haciendo en Excel VBA. Recuerde que no tengo formación en Programación, no lo he estudiado, no sé nada de Lógica ni las materias que se puedan impartir en esos cursos, la biliografía que tengo es muy poca, los audiovisuales casi nada, sin tutor a quién pueda acercarme y preguntar, sin ordenador y casi sin tiempo y para males de colmo, apagones de más de 6 horas diarias...

Por suerte, ayer me prestaron una laptop (Acer, Celeron R, 2 GB RAM), con 12 teclas que no funcionan (a base de carateres ASCII)... se puede imaginar amigo mío, no obstante nunca me rindo y como me gusta esto busco la manera de obtener recursos y tiempo.

La "Tarea" que usted me puso ya está casi hecha. Tengo unos pequeños problemas en los que si me gustaría que me ayudara y se lo comento;

Sub CerrarIniciarPeriodo()
Application.ScreenUpdating = False
Application.DisplayAlerts = False

'Para Crear Hojas Histórico
Dim NuevaHoja1 As Worksheet
Dim NuevaHoja2 As Worksheet
Dim SaldoIBandec As Long
Dim SaldoIBfi As Long

Set NuevaHoja1 = Application.Sheets.Add
NuevaHoja1.Name = InputBox("Escriba el Nombre de la Hoja", "Sistemas COLOSSUS -Históricos-")

Set NuevaHoja2 = Application.Sheets.Add
NuevaHoja2.Name = InputBox("Escriba el Nombre de la Hoja", "Sistemas COLOSSUS -Históricos-")

Hoja3.Range("A1:I5").Copy Destination:=NuevaHoja1.Range("A1")
Hoja10.Range("A1:I5").Copy Destination:=NuevaHoja2.Range("A1")
NuevaHoja1.Range("B2") = Year(Date) + 1 'En caso de hacer el cierre el 31 de diciembre, de lo contrario quitar el +1
NuevaHoja2.Range("B2") = Year(Date) + 1 'En caso de hacer el cierre el 31 de diciembre, de lo contrario quitar el +1
NuevaHoja1.Range("A1") = "HISTÓRICO BANDEC"
NuevaHoja2.Range("A1") = "HISTÓRICO BFI"
'Para ocultar las Hojas Historicas antiguas
Sheets("HistoricoBandec").Visible = xlHidden
Sheets("HistoricoBfi").Visible = xlHidden

'Para Vaciar Hoja Diario y DiarioBFI para el nuevo Período Fiscal.
'Acá se me presenta un problema. Mis Datos están en una Tabla y
'la última Columna tiene Fórmula, o sea, que no puedo usar
'Tabla1.DataBodyRange.Delete porque se borrarían esas fórmulas
'y con el código que estoy planteando acá no me sirve.

Dim ufdiario As Long
Dim ufdiariobfi As Long

ufdiario = Hoja3.Range("A" & Rows.Count).End(3).Row
ufdiariobfi = Hoja10.Range("A" & Rows.Count).End(3).Row

Hoja3.Range("A8:H" & ufdiario).ClearContents

Hoja10.Range("A8:H" & ufdiariobfi).ClearContents

'Para declarar los Saldos Iniciales al Nuevo Período Fiscal
SaldoIBandec = InputBox("Escriba el Saldo Inicial para BANDEC", "Sistemas COLOSSUS -Saldos Iniciales-")
SaldoIBfi = InputBox("Escriba el Saldo Inicial para BFI", "Sistemas COLOSSUS -Saldos Iniciales-")
Hoja3.Range("I6") = SaldoIBandec
Hoja10.Range("I6") = SaldoIBfi


MsgBox "Período Abierto" & Chr(13) & "¡Sistema Listo para Trabajar!" & Chr(13) & " Bienvenid@", vbInformation, ""

Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Yo sé que este código (Módulo 14) se puede mejorar mucho, incluso simplificarlo, pero me tomaría un poco más de tiempo y no estoy seguro de lograrlo. (FrmPrincipal/Inicializar Sistema)

Se lo dejo a su consideración, sobre todo en cuanto a "Limpiar" las Hojas Diario y DiarioBfi, porque en la Columna I tiene fórmula que traducida sería( Saldo Inicial+DEBE-HABER=Saldo Final)

Aún me falta también limpiar la Hoja Consolidado que está en el mismo caso de las Hojas anteriores, pero sabiendo como hacerlo en Diario y DiarioBfi ya sería aplicarlo a esta.

También tendría que controlar el error si los InputBox = ""

Habría que analizar algunos otros detalles, pero de momento esto para a partir de ahí trazar las pautas.

Un abrazo "Padrino".

Mis respetos.

Pino.

Disponibilidad v11.5.2.xlsm

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.