Macro que se cuelga
Hace un tiempo hice una pregunta y otro experto me dio algunas ideas, por lo que la macro pasó a ser más rápida y colgarse mucho menos. Sin embargo, se sigue colgando, lo que hace es quedarse "tildada" y no pasa nada, como si pensara algo eternamente.
La macro es la siguiente:
Sub CARGA_COMAFI()
On Error GoTo errores:
Application.ScreenUpdating = False
'comprobando blancos y valores
aprox1 = Range("e14") - 1
aprox2 = Range("e14") + 1
If Range("B9").Value = "" Or Range("B10").Value = "" Or Range("B11").Value = "" Or Range("B12").Value = "" Or Range("B14").Value = "" Or Range("B15").Value = "" Or Range("B16").Value = "" Or Range("B17").Value = "" Or Range("B18").Value = "" Or Range("B19").Value = "" Or Range("B20").Value = "" Or Range("B21").Value = "" Or Range("B22").Value = "" Then
MsgBox "Has dejado campos en blanco."
Else
If Range("b10").Value < aprox1 And Range("b19").Text = "CANCELACION" Then
MsgBox "El Importe a Rendir debe coincidir con el Total Pago Cancelatorio"
Else
If Range("b10").Value > aprox2 And Range("b19").Text = "CANCELACION" Then
MsgBox "El Importe a Rendir debe coincidir con el Total Pago Cancelatorio"
Else
'carga_diaria_comafi
Range("B4:b18").Select
Selection.Copy
Workbooks.Open Filename:="O:\COBROS CUARTO\Rendicion_Diaria.xlsm"
Range("A19").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Application.CutCopyMode = False
ActiveWorkbook.Close True
'carga_acumulado_comafi
Workbooks("Carga_Diaria.xlsm").Activate
Sheets("COMAFI").Select
Range("B5:B41").Select
Selection.Copy
Workbooks.Open Filename:="O:\COBROS CUARTO\Acumulado_Historico.xlsx"
Sheets("Comafi").Select
Range("A3").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Application.CutCopyMode = False
ActiveWorkbook.Close True
MsgBox "El pago se ha cargado exitosamente"
ActiveWorkbook.Close False
End If
End If
End If
Application.ScreenUpdating = True
'errores
errores: If err.Number > 0 Then errores
End Sub
Se encuentra en un disco de la red en un archivo "Carga_Diaria.xlsm" que es abierto y ejecutado por varios usuarios en distintos momentos.
La macro es la siguiente:
Sub CARGA_COMAFI()
On Error GoTo errores:
Application.ScreenUpdating = False
'comprobando blancos y valores
aprox1 = Range("e14") - 1
aprox2 = Range("e14") + 1
If Range("B9").Value = "" Or Range("B10").Value = "" Or Range("B11").Value = "" Or Range("B12").Value = "" Or Range("B14").Value = "" Or Range("B15").Value = "" Or Range("B16").Value = "" Or Range("B17").Value = "" Or Range("B18").Value = "" Or Range("B19").Value = "" Or Range("B20").Value = "" Or Range("B21").Value = "" Or Range("B22").Value = "" Then
MsgBox "Has dejado campos en blanco."
Else
If Range("b10").Value < aprox1 And Range("b19").Text = "CANCELACION" Then
MsgBox "El Importe a Rendir debe coincidir con el Total Pago Cancelatorio"
Else
If Range("b10").Value > aprox2 And Range("b19").Text = "CANCELACION" Then
MsgBox "El Importe a Rendir debe coincidir con el Total Pago Cancelatorio"
Else
'carga_diaria_comafi
Range("B4:b18").Select
Selection.Copy
Workbooks.Open Filename:="O:\COBROS CUARTO\Rendicion_Diaria.xlsm"
Range("A19").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Application.CutCopyMode = False
ActiveWorkbook.Close True
'carga_acumulado_comafi
Workbooks("Carga_Diaria.xlsm").Activate
Sheets("COMAFI").Select
Range("B5:B41").Select
Selection.Copy
Workbooks.Open Filename:="O:\COBROS CUARTO\Acumulado_Historico.xlsx"
Sheets("Comafi").Select
Range("A3").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Application.CutCopyMode = False
ActiveWorkbook.Close True
MsgBox "El pago se ha cargado exitosamente"
ActiveWorkbook.Close False
End If
End If
End If
Application.ScreenUpdating = True
'errores
errores: If err.Number > 0 Then errores
End Sub
Se encuentra en un disco de la red en un archivo "Carga_Diaria.xlsm" que es abierto y ejecutado por varios usuarios en distintos momentos.
1 Respuesta
Respuesta de macros_excel