............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

problema con macro para actualizar datos

Ver el tema anterior Ver el tema siguiente Ir abajo

problema con macro para actualizar datos

Mensaje por Emiliano Galasso el Dom Ene 29, 2012 10:30 pm

Estimados, he estado lidiando con una macro para actualizar datos por medio de un formulario. De hecho, no entiendo cual puede ser el problema ya que en otro formulario utilizo un código similar y funciona bien, en otros archivos anda bárbaro el mismo tipo de código pero no logro que funcione en este archivo. También me pasa que en otro formulario funciona pero hay datos que los pone donde no corresponde.
Agradecería si alguien lo puede revisar y decirme donde está el error porque no he logrado encontrarlo. También si hay otra forma de optimizar el código les estaré agradecido. Hace tiempo que vengo lidiando con el problema y no le encuentro solución.
Desde ya, muchas gracias.
Emiliano
Archivos
Registro.xls No tienes los permisos para descargar los archivos.(348 KB) Descargado 18 veces
avatar
Emiliano Galasso

Masculino Cantidad de envíos : 40
Edad : 46
Ciudad - Pais : Montevideo-Uruguay
Version de Excel : 2003-2007
Fecha de inscripción : 15/10/2010

Volver arriba Ir abajo

Re: problema con macro para actualizar datos

Mensaje por GalileoGali el Lun Ene 30, 2012 8:56 am

Sabes que en general no revisamos codigo. Una manera de lograr que alguien ponga atencion en tu cóidog, es esperable si indicas con precision en que líneas se producen las alteraciones

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: problema con macro para actualizar datos

Mensaje por Emiliano Galasso el Lun Ene 30, 2012 5:06 pm

El tema es el siguiente, el código no marca ningún error, es decir, no me salta ningún error al momento de clickear en el botón actualizar. El problema es que no actualiza el dato; cuando en un textbox borro el dato que contiene y escribo otro, cuando clickeo en actualizar, borra el nuevo dato y deja el anterior en el textbox y, obviamente, el dato de la celda a la que hace referencia el textbox no cambia. Básicamente uso el mismo código (adaptado obviamente según la tabla) en varios archivos y formularios y funciona, pero en este caso no logro ver el problema por el cual no funciona. Las hojas no están protegidas y las celdas no están bloqueadas. Dejo aquí los códigos, el que no funciona y otro que sí me funciona.
No funciona:
u = Sheets(2).Range("A" & Rows.Count).End(xlUp).Row
With Sheets(2).Range("A2:A" & u)
Set d = .Find(cbo_fibroquistico, LookIn:=xlValues, LookAt:=xlWhole)
If Not d Is Nothing Then
d.Offset(0, 1) = txt_apellidos
d.Offset(0, 2) = txt_nombres
d.Offset(0, 3) = txt_cedula
d.Offset(0, 4) = txt_fechanacimiento
d.Offset(0, 5) = txt_calle
d.Offset(0, 6) = txt_nro
d.Offset(0, 7) = txt_apto
d.Offset(0, = txt_manzana
d.Offset(0, 9) = txt_solar
d.Offset(0, 10) = txt_entrecalle
End If
End With
MsgBox "Datos actualizados"

Sí funciona:
u = Sheets(3).Range("A" & Rows.Count).End(xlUp).Row
With Sheets(3).Range("A2:A" & u)
Set d = .Find(cbo_fibroquistico, LookIn:=xlValues, LookAt:=xlWhole)
If Not d Is Nothing Then
d.Offset(0, 1) = txt_fechaingreso
d.Offset(0, 2) = txt_fechaactualizacion
d.Offset(0, 3) = txt_medicotratante
d.Offset(0, 4) = txt_neumologo
d.Offset(0, 5) = txt_gastro
d.Offset(0, 6) = cbo_centroasistencial
d.Offset(0, 7) = txt_nombrecentro
d.Offset(0, = cbo_otrocentro
d.Offset(0, 9) = txt_nombreotrocentro
End If
End With
MsgBox "Datos actualizados"
[u][b]
avatar
Emiliano Galasso

Masculino Cantidad de envíos : 40
Edad : 46
Ciudad - Pais : Montevideo-Uruguay
Version de Excel : 2003-2007
Fecha de inscripción : 15/10/2010

Volver arriba Ir abajo

Re: problema con macro para actualizar datos

Mensaje por GalileoGali el Lun Ene 30, 2012 8:43 pm

podrias subir un archivo que contenga exclusivamente la Sheet(2)

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: problema con macro para actualizar datos

Mensaje por Emiliano Galasso el Lun Ene 30, 2012 10:06 pm

Ok, sólo dejé las hojas esenciales porque tienen datos que se usan en la hoja 2.
avatar
Emiliano Galasso

Masculino Cantidad de envíos : 40
Edad : 46
Ciudad - Pais : Montevideo-Uruguay
Version de Excel : 2003-2007
Fecha de inscripción : 15/10/2010

Volver arriba Ir abajo

Re: problema con macro para actualizar datos

Mensaje por Emiliano Galasso el Mar Ene 31, 2012 8:21 am

Ahora que veo no subió el archivo.
avatar
Emiliano Galasso

Masculino Cantidad de envíos : 40
Edad : 46
Ciudad - Pais : Montevideo-Uruguay
Version de Excel : 2003-2007
Fecha de inscripción : 15/10/2010

Volver arriba Ir abajo

Re: problema con macro para actualizar datos

Mensaje por Emiliano Galasso el Mar Ene 31, 2012 8:22 am

Va de vuelta
Archivos
Registro.xls No tienes los permisos para descargar los archivos.(184 KB) Descargado 16 veces
avatar
Emiliano Galasso

Masculino Cantidad de envíos : 40
Edad : 46
Ciudad - Pais : Montevideo-Uruguay
Version de Excel : 2003-2007
Fecha de inscripción : 15/10/2010

Volver arriba Ir abajo

Re: problema con macro para actualizar datos

Mensaje por GalileoGali el Miér Feb 01, 2012 8:48 pm

1) Hice varios experimentos y tienes razón
2)con el Formulario activo, antes de hacer d.Offset(0,1) = txt_apellidos. Este paso dispara inexplicablemente (para mi al menos) el evento cbo_fibroquistico_click, que cambia todos los valores al estado de partida, antes de "Actualizar"

Al no lograr domesticar esa reacción recurrí como solucion a una flag que evita hacer correr a cbo_fibroquistico_ click cuando no corresponde

para eso, vamos al Modulo del Formulario, al encabezamiento de las declaraciones y puse:

Código:
Dim flag As Boolean

Código:
Private Sub cbo_fibroquistico_Click()
If flag Then Exit Sub
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::

Código:
Private Sub cmd_actualizar_Click()
u = Sheets(2).Range("A" & Rows.Count).End(xlUp).Row
With Sheets(2).Range("A2:A" & u)

    If Not d Is Nothing Then 
flag = True

ya al final de esta serie

Código:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
    d.Offset(0, 26) = txt_mail2
        d.Offset(0, 27) = cbo_mail2
        flag = False
    End If
End With
      MsgBox "Datos actualizados"












_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: problema con macro para actualizar datos

Mensaje por Emiliano Galasso el Miér Feb 01, 2012 11:46 pm

Impecable Gali, el que sabe... sabe y el que no... aprende, jeje. Me devané los sesos porque no entendía cual era el problema. En varios archivos (y en ese mismo también) utilizaba el mismo tipo de código y andaba lo más bien pero en este caso, no lograba entender que estaba mal. Desconocía el tema de poner un flag (no me queda claro pero me pondré a investigar), aún quedan muchas cosas por aprender.
Por otro lado y sin querer abusar de ustedes, tengo otro combobox rebelde en el mismo formulario. Es el que indica la ciudad/localidad, no muestra el dato que está en la celda correspondiente (ya me ha pasado otras veces en ese mismo formulario). El dato en la celda está, pero no lo muestra.
Desde ya, muchas gracias.
Saludos,
Emiliano
PD: subo el archivo con el arreglo que indicastes.
Archivos
Registro.xls No tienes los permisos para descargar los archivos.(215 KB) Descargado 26 veces
avatar
Emiliano Galasso

Masculino Cantidad de envíos : 40
Edad : 46
Ciudad - Pais : Montevideo-Uruguay
Version de Excel : 2003-2007
Fecha de inscripción : 15/10/2010

Volver arriba Ir abajo

Re: problema con macro para actualizar datos

Mensaje por GalileoGali el Jue Feb 02, 2012 7:14 am

No soy el más indicado para definir que es un "flag" (bandera), por lo que me limitaré a comentar cuál es el signifcado que yo le asigno.
Llamo flag a una variable del tipo boolean, que acompañada gralte de una instruccion IF then Else End if, indica la ejecución o salida de ejecución de algún bloque de código. Por lo general cuando se ejecuta el bloque supeditado a TRUE-FALSE de la flag, sobre el fin se invierte el valor del flag

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: problema con macro para actualizar datos

Mensaje por Emiliano Galasso el Jue Feb 02, 2012 8:52 am

Muchas gracias Gali, me queda más claro el tema.
Saludos,
Emiliano
avatar
Emiliano Galasso

Masculino Cantidad de envíos : 40
Edad : 46
Ciudad - Pais : Montevideo-Uruguay
Version de Excel : 2003-2007
Fecha de inscripción : 15/10/2010

Volver arriba Ir abajo

Re: problema con macro para actualizar datos

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.