Jump to content

Gantrax

Members
  • Content Count

    7
  • Joined

  • Last visited

  1. 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.
  2. 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
  3. HAY PERDON YA LO SOLUCIONE, ERA QUE PUSE ActiveCell.Value = UltimoNumero (u5 = ultimonumero = 0) Y ERA : UltimoNumero = ActiveCell.Value (ultmonumero = U5 = 5415)
  4. Creo que deberia hacer otro tema ya que solucione este problema, tenia muchas citas a txtbox que eran combox finalmente gracias igual!
  5. Agrego, Estuve resolviendo los "select" que hacia de celdas activando antes las hojas, ahora me sale error del tipo "no coinciden los tipos" o "Se requiere un objeto" en la parte que dice : Workbooks("REGISTRO DE COSTOS O SERVICIOS 1ER SEMESTRE 2018.XLSM").Worksheets("TICKET").Activate (esto es nuevo para q ande bien) Worksheets("TICKET").Range("U5").Activate ActiveCell.Value = UltimoNumero * txtboxTNuevoFrm2.Value = Str(UltimoNumero + 1) lblUltimoNumero = UltimoNumero *(aca me sale error la celda "U5" la da como vacia me borra el contenido que puse y x tanto el valor del txt box queda en 1, no seria problema pero nosiquiera me vuelca el 1 a la txtbox)
  6. Mando el codigo del Formulario que contiene los controles. Lo cree en un Libro Excel, lo ejecuta un macro con el codigo: Sub CREATICKET() Load Frm2IngresaTicket Frm2IngresaTicket.Show End Sub _____________________________ RESUMO EL CODIGO: El form se va llenando pero inicialmente debe cargar unos datos que estan en hojas del libro (Un numero que es el último Usado (UltimoUsado) , con ese numero poner su numero siguiente en un txtbox, Cargar dos Combobox Luego al poner fechas hice un codigo (que me anda bien en otro form quizas haya olvidado poner algo pero a priori la idea es que con poner cualquier formato de fecha (d/m; dd/m; d/mm; dd/mm; dd/mm/aa; etc) te arma la fecha correcta y la muestra en un label para saber que esta todo bien Luego al Escribir un nombre de "responsable" en su txtbox (txtboxResponsableFrm2_Change) debe buscar el resto de los datos segun una tabla en Worksheets("Responsables") para ponerlos en sus txtbox (email, tel1 tel2 INterno) y finalmente al poner "Continuar" debe copiar todos los datos ponerlos en una Hoja("Costo por servicio") algunos y en otra Hoja("Ticket") otros. Y luego abrir otro Form (Frm3IngresoPersonal) para seguir cargando otros datos con funciones similares pero que estaba andando. NOTA: Nose porque no anda algunas cosas como que me dan error 1004 error en el metodo select de la clase Range. WORKSHEETS("TICKET").Range("T2").Select Activecell.value / ACtivecell.Offset(1, 0).Value CODIGO: Dim NTicket As String Dim Fecha As String Dim FechaP As String Dim Cliente As String Dim Sector As String Dim Responsable As String Dim Email As String Dim Tel1 As String Dim Tel2 As String Dim Interno As String Dim NUnidad As String Dim Tipo As String Dim Tarifa As String Dim Operarios As String Dim NORDEN As String Dim Carga1 As String Dim Carga2 As String Dim Carga3 As String Dim Origen1 As String Dim Origen2 As String Dim Origen3 As String Dim Destino1 As String Dim Destino2 As String Dim Destino3 As String Dim UltimoNumero As String Dim maxODT As String Dim minODT As String Dim ODT As String Dim DiaFecha As String Dim MesFecha As String Dim AñoFecha As String Dim PrimeraBarra As Long Dim SegundaBarra As Long Dim FechalblP As String Dim Fechalbl As String Dim DiaFechaP As String Dim MesFechaP As String Dim AñoFechaP As String Dim PrimeraBarraP As Long Dim SegundaBarraP As Long Dim CRESP As Long Dim VERAD1 As String Dim VERAD2 As String Dim VERAD3 As String Dim VERAO1 As String Dim VERAO2 As String Dim VERAO3 As String Dim NCLI As Long Dim NSECTOR As Long Private Sub UserForm_Initialize() Worksheets("RESPONSABLES").Range("C1").Select CRESP = ActiveCell.Value Worksheets("RESPONSABLES").Range("C3").Select For i = 1 To CRESP comboxResponsableFrm2.AddItem (ActiveCell.Offset(i - 1, 0)) Next Worksheets("TICKET").Range("T2").Select ActiveCell.Value = UltimoNumero txtboxTNuevoFrm2.Value = UltimoNumero + 1 lblUltimoNumero = UltimoNumero Worksheets("COSTO POR SERVICIO").Range("Y6").Select NSECTOR = ActiveCell.Value Worksheets("COSTO POR SERVICIO").Range("Y8").Select For i = 1 To NSECTOR comboxSectorFrm2.AddItem (ActiveCell.Offset(i - 1, 0)) Next Worksheets("COSTO POR SERVICIO").Range("V6").Select NCLI = ActiveCell.Value Worksheets("COSTO POR SERVICIO").Range("V8").Select For i = 1 To NCLI comboxClientesFrm2.AddItem (ActiveCell.Offset(i - 1, 0)) Next Frm2IngresoTicket.txtboxNTicketFrm2.SetFocus End Sub Private Sub comboxResponsableFrm2_Change() Application.Goto Workbooks("REGISTRO DE COSTOS O SERVICIOS 1ER SEMESTRE 2018.xlsm").Sheets("RESPONSABLES").Cells(3, 1) For i = 1 To CRESP If ActiveCell.Offset(i - 1, 0) = comboxResponsableFrm2.Value Then txtboxEmailFrm2.Value = ActiveCell.Offset(i - 1, 1) txtboxTel1Frm2.Value = ActiveCell.Offset(i - 1, 2) txtboxTel2Frm2.Value = ActiveCell.Offset(i - 1, 3) txtboxInternoFrm2.Value = ActiveCell.Offset(i - 1, 4) txtboxNUnidadFrm2.SetFocus Exit For End If Next End Sub Private Sub txtboxFechaFrm2_Change() For i = 1 To 3 If Mid(txtboxFechaFrm2.Value, i, 1) = "/" Then DiaFecha = Mid("0", 1, 3 - i) & Mid(txtboxFechaFrm2.Value, 1, i - 1) PrimeraBarra = i End If Next For u = PrimeraBarra + 1 To PrimeraBarra + 3 If Mid(txtboxFechaFrm2.Value, u, 1) = "/" Then MesFecha = Mid("0", 1, PrimeraBarra + 3 - u) & Mid(txtboxFechaFrm2.Value, 1, u - PrimeraBarra + 1) SegundaBarraBarra = u End If Next If Len(Mid(txtboxFechaFrm2.Value, SegundaBarra + 1, 4)) = 2 Then AñoFecha = "20" & Mid(txtboxFechaFrm2.Value, SegundaBarra + 1, 2) Else If Len(Mid(txtboxFechaFrm2.Value, SegundaBarra + 1, 4)) = 0 Then AñoFecha = Year(DateTime.Now) Else AñoFecha = Mid(txtboxFechaFrm2.Value, SegundaBarra + 1, 4) End If End If Fecha = MesFecha & "/" & DiaFecha & "/" & AñoFecha Fechalbl = DiaFecha & "/" & MesFecha & "/" & AñoFecha Label20.Caption = Fechalbl End Sub Private Sub cbtContinuarTkNuevo_Click() If txtboxNUnidadFrm2.Value = "" Then NUnidad = "XXX" Else NUnidad = txtboxNUnidadFrm2.Value End If If txtboxTipoFrm2.Value = "" Then Tipo = "0" Else Tipo = txtboxTipoFrm2.Value End If If txtboxTarifaFrm2.Value = "" Then Tarifa = "0" Else Tarifa = txtboxTarifaFrm2.Value End If If Len(txtboxOperariosFrm2.Value) = 2 Then Operarios = txtboxOperariosFrm2.Value Else If Len(txtboxOperariosFrm2.Value) = 1 Then Operarios = "0" & txtboxOperariosFrm2.Value Else If txtboxOperariosFrm2.Value = "" Then Operarios = "00" End If End If End If For i = 1 To 3 If Mid(txtboxFechaFrm2.Value, i, 1) = "/" Then DiaFecha = Mid("0", 1, 3 - i) & Mid(txtboxFechaFrm2.Value, 1, i - 1) PrimeraBarra = i End If Next For u = PrimeraBarra + 1 To PrimeraBarra + 3 If Mid(txtboxFechaFrm2.Value, u, 1) = "/" Then MesFecha = Mid("0", 1, PrimeraBarra + 3 - u) & Mid(txtboxFechaFrm2.Value, 1, u - PrimeraBarra + 1) SegundaBarraBarra = u End If Next If Len(Mid(txtboxFechaFrm2.Value, SegundaBarra + 1, 4)) = 2 Then AñoFecha = "20" & Mid(txtboxFechaFrm2.Value, SegundaBarra + 1, 2) Else If Len(Mid(txtboxFechaFrm2.Value, SegundaBarra + 1, 4)) = 0 Then AñoFecha = Year(DateTime.Now) Else AñoFecha = Mid(txtboxFechaFrm2.Value, SegundaBarra + 1, 4) End If End If Fecha = MesFecha & "/" & DiaFecha & "/" & AñoFecha Fechalbl = DiaFecha & "/" & MesFecha & "/" & AñoFecha Label20.Caption = Fechalbl For v = 1 To 3 If Mid(txtboxFechaPFrm2.Value, v, 1) = "/" Then DiaFechaP = Mid("0", 1, 3 - v) & Mid(txtboxFechaPFrm2.Value, 1, v - 1) PrimeraBarraP = v End If Next For n = PrimeraBarraP + 1 To PrimeraBarraP + 3 If Mid(txtboxFechaPFrm2.Value, n, 1) = "/" Then MesFechaP = Mid("0", 1, PrimeraBarraP + 3 - n) & Mid(txtboxFechaPFrm2.Value, 1, n - PrimeraBarraP + 1) SegundaBarraBarraP = n End If Next If Len(Mid(txtboxFechaPFrm2.Value, SegundaBarraP + 1, 4)) = 2 Then AñoFechaP = "20" & Mid(txtboxFechaPFrm2.Value, SegundaBarraP + 1, 2) Else If Len(Mid(txtboxFechaPFrm2.Value, SegundaBarraP + 1, 4)) = 0 Then AñoFechaP = Year(DateTime.Now) Else AñoFechaP = Mid(txtboxFechaPFrm2.Value, SegundaBarraP + 1, 4) End If End If FechaP = MesFechaP & "/" & DiaFechaP & "/" & AñoFechaP FechalblP = DiaFechaP & "/" & MesFechaP & "/" & AñoFechaP Labe21.Caption = FechalblP NORDEN = NUnidad & "-" & Tipo & "x" & Tarifa & "-" & Operarios NTicket = Frm2IngresoTicket.txtboxNTicketFrm2.Value Cliente = Frm2IngresoTicket.ComboxClienteFrm2.Value Responsable = Frm2IngresoTicket.comboxResponsableFrm2.Value Email = Frm2IngresoTicket.txtboxEmailFrm2.Value Tel1 = Frm2IngresoTicket.txtboxTel1Frm2.Value Tel2 = Frm2IngresoTicket.txtboxTel2Frm2.Value Interno = Frm2IngresoTicket.txtboxInternoFrm2.Value Carga1 = Frm2IngresoTicket.txtboxCarga1Frm2.Value Carga2 = Frm2IngresoTicket.txtboxCarga2Frm2.Value Carga3 = Frm2IngresoTicket.txtboxCarga3Frm2.Value Origen1 = Frm2IngresoTicket.txtboxOrigen1Frm2.Value Origen2 = Frm2IngresoTicket.txtboxOrigen2Frm2.Value Origen3 = Frm2IngresoTicket.txtboxOrigen3Frm2.Value Destino1 = Frm2IngresoTicket.txtboxDestino1Frm2.Value Destino2 = Frm2IngresoTicket.txtboxDestino2Frm2.Value Destino3 = Frm2IngresoTicket.txtboxDestino3Frm2.Value OBS1 = Frm2IngresoTicket.txtboxRemitos1Frm2.Value OBS2 = Frm2IngresoTicket.txtboxRemitos2Frm2.Value OBS3 = Frm2IngresoTicket.txtboxRemitos3Frm2.Value VERAD1 = Frm2IngresoTicket.txtboxVERAD1Frm2.Value VERAD2 = Frm2IngresoTicket.txtboxVERAD2Frm2.Value VERAD3 = Frm2IngresoTicket.txtboxVERAD3Frm2.Value VERAO1 = Frm2IngresoTicket.txtboxVERAO1Frm2.Value VERAO2 = Frm2IngresoTicket.txtboxVERAO2Frm2.Value VERAO3 = Frm2IngresoTicket.txtboxVERAO3Frm2.Value Worksheets("COSTO POR SERVICIO").Range("L3").Value = maxODT Worksheets("COSTO POR SERVICIO").Range("F9").Value = minODT ODT = maxODT - minODT Worksheets("COSTO POR SERVICIO").Range("F9").Select For i = 1 To ODT If NTicket = ActiveCell.Offset(1 - i, 0).Value Then ActiveCell.Offset(1 - i, -1).Value = Fecha ActiveCell.Offset(1 - i, -3).Value = Sector ActiveCell.Offset(1 - i, -4).Value = Cliente ActiveCell.Offset(1 - i, 1).Value = NORDEN Worksheets("TICKET").Range("Q6") = NTicket Worksheets("TICKET").Range("U9") = Fecha Worksheets("TICKET").Range("E6") = FechaP If Cliente = "VEOLIA" Then Worksheets("TICKET").Range("D7") = Cliente & " - Sitio " & Sector Else Worksheets("TICKET").Range("D7") = Cliente & " - " & Sector End If Worksheets("TICKET").Range("D8") = Responsable Worksheets("TICKET").Range("D9") = Email Worksheets("TICKET").Range("D10") = Tel1 Worksheets("TICKET").Range("H10") = Tel2 Worksheets("TICKET").Range("L10") = Interno Worksheets("TICKET").Range("B15") = NUnidad Worksheets("TICKET").Range("G15") = Tipo Worksheets("TICKET").Range("l15") = Tarifa Worksheets("TICKET").Range("P15") = Operarios Worksheets("TICKET").Range("E27") = OBS1 Worksheets("TICKET").Range("E28") = OBS2 Worksheets("TICKET").Range("E29") = OBS3 Worksheets("TICKET").Range("C37") = Carga1 Worksheets("TICKET").Range("C40") = Carga2 Worksheets("TICKET").Range("C43") = Carga3 Worksheets("TICKET").Range("I37") = Origen1 Worksheets("TICKET").Range("I40") = Origen2 Worksheets("TICKET").Range("I43") = Origen3 Worksheets("TICKET").Range("P37") = Destino1 Worksheets("TICKET").Range("P40") = Destino2 Worksheets("TICKET").Range("P43") = Destino3 Worksheets("TICKET").Range("P39") = VERAD1 Worksheets("TICKET").Range("P42") = VERAD2 Worksheets("TICKET").Range("P45") = VERAD3 Worksheets("TICKET").Range("I39") = VERAO1 Worksheets("TICKET").Range("I42") = VERAO2 Worksheets("TICKET").Range("I45") = VERAO3 End If Next Load Frm3IngresoPersonal Frm3IngresoPersonal.Show 'Unload Frm2IngresoTicket End Sub Private Sub cbtSalirTkNuevo_Click() Unload Frm2IngresoTicket End Sub
  7. Hola, Alguien que pudiera orientarme, estoy haciendo un formulario hace un tiempo que por complicaciones retomé el día de hoy, la cuestión es que al terminar el codigo quiero correr el form, y al querer abrirlo con un boton previo con el código : Load UserForm1 UserForm1.Show Ahi me salta el error al clickear en el boton. Me sorprende q nunca me habia pasado que no pudiera abrir un form, o que tuviera que declararlo? O será que hay un error adentro del form y eso me avisa? Ya he copiado todos los controles y el codigo a otro formulario nuevo pero tampoco sirve (de hecho no se llamaba UserForm1 pero es mas general y el nuevo nombre que le puse, pero no cambió nada) Gracias! podria adjuntar el archivo si es necesario.
×
×
  • Create New...

Important Information

Privacy Policy