Por que una macro funciona ocasionalmente

Estimados Expertos sucede que cree un pequeño programa en excel, en este momento se maneja en 22 oficinas distintas, sin embargo en una oficina en particular la herramienta no funciona y aparece el mensaje "Excel Dejo de funcionar", desprotegi el archivo y valide donde se presentaba el error sin embargo cuando lo corrí funciono correctamente, así que abrí y cerré el programa al ejecutar la macro salio error y validando la línea de código que aparece con error es range("a10000").end(xlup). Offset(1,0), sin embargo no veo una inconsistencia clara en dicha línea, al decirle que continué simplemente vuelve a enviar error y pantalla con el mensaje "Excel ha dejado de funcionar", estoy pensando que puede ser el excel o el windows sin embargo no tengo una idea clara.

Cualquier ayuda estarea inmensamente agradecidos.

2 Respuestas

Respuesta
1

Confirma que no allá llegado a ese limite que le pusiste

Osea la intrucion dice qie empiece en el 10000 hacia arriba y el primer espacio en blanco creo que copias el dato eso creo pero como lo están usando 22 oficina a lo mejor llego al limite cheque a ver

Buenos dias...

Antes que nada muchas gracias por tu ayuda, sucede que en efecto va a una celda valida que puede ser la fila 100, sin embargo si fuese así me saldría algo así como error en el intervalo, pero lo que sucede es que se cierra el excel; simplemente deja de funcionar.

Validando y haciendo un seguimiento exhaustivo me he dado cuenta que estos errores se presentan en excel 2013, tendrá algo que ver?

[email protected] tengo el 2013 para chequer por que seria

Respuesta
-1

.

Buenas, Leonardo

Ese tipo de instrucción busca cual es la celda siguiente a la última ocupada, moviéndose desde abajo hacia arriba. Puede ser que en ese archivo tengas ocupadas mas de 10000 líneas, en cuyo caso iría a la segunda fila. Prueba incrementando A10000 a A65000, por ejemplo.

Como no copiaste qué sigue después del Offset, no sé que debería hacer al llegar a esa celda.

Espero que resuelva tu problema.

Un abrazo
Fernando

.

Buenos dias...

Antes que nada muchas gracias por tu ayuda, sucede que en efecto va a una celda valida que puede ser la fila 100, sin embargo si fuese así me saldría algo así como error en el intervalo, pero lo que sucede es que se cierra el excel; simplemente deja de funcionar.

Validando y haciendo un seguimiento exhaustivo me he dado cuenta que estos errores se presentan en excel 2013, tendrá algo que ver?

.

En principio, no debería haber problema con la versión.

Se que se reportaron algunos inconvenientes menores en programación al cambiar de 32 a 64 bits, pero no creo que sea tu caso.

De todos modos, ayudaría ver qué hace tu rutina para entender mejor el origen de aquel problema.

Saludos

Fer

.

Buenas tardes...

Muchas gracias por tu ayuda; te comento el código que tengo es el siguiente

objeto = txt_Cedula
Set encontrar = Range([C_Cliente].Offset(0, 2), [C_Cliente].Offset(1000, 1).End(xlUp).Offset(1, 0)).Find(What:=(objeto), LookAt:=xlWhole)
If Not encontrar Is Nothing Then
If Left(txt_CodigoCP, 2) = "AR" Then
encontrar.Offset(0, 2) = txt_CodigoCP.Value
Else
encontrar.Offset(0, 2) = "No Registra"
End If
encontrar.Offset(0, -1) = Date
encontrar.Offset(0, 1) = txt_Nombres
encontrar.Offset(0, 2) = txt_Telefono
encontrar.Offset(0, 3) = txt_Direccion
encontrar.Offset(0, 4) = txt_Email
encontrar.Offset(0, 6) = cbx_TipoDocumento
Else
With [C_Cliente].Offset(10000, 0).End(xlUp).Offset(1, 0)
If txt_codigo_Cp = "" Then
.Value = "No Aplica"
Else
.Value = txt_CodigoCP
End If
.Offset(0, 1) = Date
.Offset(0, 2) = txt_Cedula
.Offset(0, 3) = txt_Nombres
.Offset(0, 4) = txt_Telefono
.Offset(0, 5) = txt_Direccion
.Offset(0, 6) = txt_Email
.Offset(0, 8) = cbx_TipoDocumento
End With
End If

Lo que hace realmente es sencillo, tengo en un formulario un campo que obtiene el No. del documento de un cliente, por medio de un buscar válido si el cliente se encuentra o no se encuentra, si lo encuentra edite los datos, si no lo encuentra creeelo desde 0. La línea que me genera error se supone es la que se encuentra en negrita... y digo se supone por que pensaría que es algo más, la rutina que tengo es un poco más larga pero allí es donde genera el error agradezco cualquier ayuda.

.

Hola,

He probado tu rutina en un archivo propio y nunca me dio ese error.

Lo que noto es que la búsqueda se hace en la segunda columna a partir del rango C_Cliente y la escritura en la misma columna de ese rango.

TAmbién es curiosa la estructura de doble uso de Offset:

With [C_Cliente].Offset(10000, 0).End(xlUp).Offset(1, 0)

.Offset(0, 1) = Date
.Offset(0, 2) = txt_Cedula
.Offset(0, 3) = txt_Nombres
.Offset(0, 4) = txt_Telefono

Tal vez revisaría esos dos puntos.

Pero insisto, depende de tu planilla, porque la rutina parece correcta y no arroja aquel error.

Saludos

Fer

.

¡Gracias! 

Muchas gracias enserio... podría casi que apostar que es el excel mal instalado ya que solo sucede en un equipo.

Muchas gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas