Saltar al contenido

APPCRASH StackHash_54f8 EXCEL VBA


Gantrax

Recommended Posts

VBuenas tardes, 

 Le comento mi inquietud a la comunidad haber si alguno sabria como ayudarme. (Subo adjunto el archivo para poder observar mejor)

(primero pego el appcrash:

APPCRASH
  Application Name:    EXCEL.EXE
  Application Version:    14.0.4756.1000
  Application Timestamp:    4b9c08e8
  Fault Module Name:    StackHash_54f8
  Fault Module Version:    6.1.7600.16385
  Fault Module Timestamp:    4a5bdadb
  Exception Code:    c0000374
  Exception Offset:    000c283b
  OS Version:    6.1.7600.2.0.0.256.48
  Locale ID:    11274
  Additional Information 1:    54f8
  Additional Information 2:    54f8d18223689b3a6e7f554de6059584
  Additional Information 3:    931a
  Additional Information 4:    931a01880ea098b34b0a35555eaa7a8a

)

 

En mi trabajo tengo archivos de caja, uno por cada dia laboral, estos estan en carpetas tipo "arbol"  (una carpeta cada año, dentro de estas una carpeta cada mes, y dentro de estos un archivo identico cada día).

 Quero saber cada dia que dinero entro y que dinero salio, entonces me hice una hoja que recorrerá todos los archivos de todos los dias, guardando la información buscada.

Todo andaba bien hasta que me encontré con que una caja estaba abierta, la estaban usando, entonces me salio un error.

Para evitarlo indique abrir el archivo en solo lectura (y que siquiera me pregunte si lo quiero en solo lectura al estar en uso):

 

Yo tenia el codigo para abrir así: 

1) Workbooks.Open ("\\Pcmadre\EMPRESA\Documentos\Internos\Caja\" & AÑO & "\" & MES & "\MOVIMIENTOS DE CAJA " & DIA & "-" & MES & "-" & Mid(AÑO, 3, 2) & ".xlsx")

y queria agregarle la 4ta condicion "ReadOnly" como true:

2) Workbooks.Open ("\\Pcmadre\EMPRESA\Documentos\Internos\Caja\" & AÑO & "\" & MES & "\MOVIMIENTOS DE CAJA " & DIA & "-" & MES & "-" & Mid(AÑO, 3, 2) & ".xlsx", , True)

 

Pero al poner le codigo 2) me salta el msgbox "Error de compilación,  se esperaba: = "

aca yo supongo que me estaba pidiendo el uso de una variable del tipo "Excel.workbook", por lo que creo una variable ("XLSLibro") definida de este tipo, y paso a manejar la apertura y su cierre así:

3) Set XLSLibro = Workbooks.Open("\\Pcmadre\EMPRESA\Documentos\Internos\Caja\" & AÑO & "\" & MES & "\MOVIMIENTOS DE CAJA " & DIA & "-" & MES & "-" & Mid(AÑO, 3, 2) & ".xlsx", , True)

4) XLSLibro.Close (False)

(al cerrar workbook no guarda)

 

El problema es que el codigo corre bien hasta esa instrucción, pero cuando sigue y quiere ir al libro propio a pegar los resultados :

ThisWorkbook.Worksheets("Hoja1").Activate

ActiveSheet.Range("C7").Select
ActiveCell.Offset(i - FECHAINIC, 0).Value = Str(Day(i) & "/" & Month(i))   'ACA SALTA EL APPCRASH
ActiveCell.Offset(i - FECHAINIC, 1).Value = SALDOANT(Day(i), Month(i))
ActiveCell.Offset(i - FECHAINIC, 2).Value = ENTRADAS(Day(i), Month(i))
ActiveCell.Offset(i - FECHAINIC, 3).Value = SALDO(Day(i), Month(i))
ActiveCell.Offset(i - FECHAINIC, 4).Value = SALIDAS(Day(i), Month(i))
ActiveCell.Offset(i - FECHAINIC, 5).Value = CHQ(Day(i), Month(i))

 

Lo que intuyo es que estoy usando mal la variable "excel.workbook" y que al cerrarla no lo hago bien, o nose porque al querer usar otra workbook me sale este error. 

Nada de esto pasaba al usar los libros sin ninguna variable, pero lo q si pasaba es que me preguntaba por el solo lectura. 

Si alguien no sabe porq el appcrash, pero sabe como evitar los cuadros de "solo lectura" cuando estan en uso los archivos,  o directamente como usar libros como solo lectura y sin guardar, bienvenido sea.

Saludos!

 

Gracias.

 

Gantrax.

2019 EXTRACTO CAJA.xlsm

Enlace a comentario
Compartir con otras webs

Hago una aclaración que no me deja editar aun:

AL OBTENER EL APPCRASH  agregué un msgbox, antes de la linea que explota, que me mostrara los valores de las variables (STR(DIA/MES), SALDOANT, ENTRADAS, SALDO, SALIDAS, CHQ) antes de pegarlos en las celdas indicadas, pero me sale nuevamente el appcrash, por lo que quizas es un problema de memoria, saturada al agregar la variable workbook, quisiera saber como liberar la memoria de esa variable antes de continuar. 

Enlace a comentario
Compartir con otras webs

Hola

No he descargado tu archivo, pero la línea que aquí numeras como 2, cámbiala y déjala así:

Workbooks.Open Filename:="\\Pcmadre\EMPRESA\Documentos\Internos\Caja\" & AÑO & "\" & MES & "\MOVIMIENTOS DE CAJA " & DIA & "-" & MES & "-" & Mid(AÑO, 3, 2) & ".xlsx", ReadOnly:=True

Workbooks.Open Filename:="\\Pcmadre\EMPRESA\Documentos\Internos\Caja\" & AÑO & "\" & MES & "\MOVIMIENTOS DE CAJA " & DIA & "-" & MES & "-" & Mid(AÑO, 3, 2) & ".xlsx", ReadOnly:=True

Comentas

Abraham Valencia

Enlace a comentario
Compartir con otras webs

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.