Saltar al contenido

Formulario para editar hojas


Antoni

Recommended Posts

publicado

Hola:

En esta ocasión os adjunto una actualización universal.

Se trata de un formulario que permite añadir, modificar, eliminar, y consultar cualquier dato de cualquier hoja de cualquier archivo.

.Trata cualquier número de filas y columnas

.Permite añadir, eliminar columnas

.Controla datos: numéricos, tipo fecha y tipo lista, obligatorios, opcionales, de consulta y ocultos

Funcionamiento:

Datos de la hoja que contiene vuestra información:

.Puede tener cualquier nombre

.La fila 1 se reserva para encabezamiento

.Los datos deben empezar en A2

Para el funcionamiento del formulario debe existir otra hoja con el nombre de vuestra hoja seguido de "-Parámetros",

(Cuidado con el acento)

Ejemplo:

Si teneis una hoja llamada "Inventario", debeis crear una hoja llamada "Inventario-Parámetros" cuyo formato está en el adjunto.

En esta hoja se informará el tipo de datos, los controles a efectuar y las listas si las hubiere.

En el ejemplo lo vereis mas claro.

La versión correcta del archivo está en el post #26.

Se recomienda leer todos los posts antes de descargar el archivo.

Saludos.

publicado

Buenas Tardes Macro Antonio,

No es solamente bueno tu formulario, es lo siguiente IMPRESIONANTE.

Pero a pesar que lo explicas muy detalladamente debe haber un punto que me debo saltar, puesto que al insertar una nueva columna en columna I de la hoja datos-parametros en la celda I1 pongo Cafes, en la I2 pongo obligatorio en la I3 pongo lista y en la I4 a la I8 pongo distintos campos de texto, pero cuando vuelvo a la hoja datos para presionar el icono de formulario no me sale el campo de cafe para rellenar.

Perdona por mi torpeza, muchas gracias.

Ya lo he solucionado, mi ansia de ver algo tan bueno me ha cegado, me faltaba poner en la hoja datos en la columna I Cafes.

Muchas gracias otra vez, eres una maquina.

  • 1 month later...
publicado

Buenos dias Macro Antonio,

Cuando introduzco en el formato fecha, el 2/1/2012, en vez de salir esa fecha, me sale 1/2/2012.

Me ocurre con alguna fecha más, 9/1/2012 por 1/9/2012 me cambia el dia por el mes y el mes por el dia, que es lo que hago mal????????.

Gracias por anticipado.

Un saludo

publicado

Hola:

No haces nada mal, se trata de un problema con la configuración de Excel que nunca he sabido encontrar.

Vuelvo a echarle un vistazo a ver como lo soluciono.

Saludos

  • 3 weeks later...
publicado

Buenas noches Macro Antonio,

Has podido encontrar alguna solucion al problema del calendario.

Muchas gracias y perdona las molestias.

publicado

Perdona por mi desconocimiento, pero donde puedo probar vba.format(calendar.value, "mm/dd/yyyy"), es decir, donde lo tengo que poner.

Gracias por adelantado

publicado
Perdona por mi desconocimiento, pero donde puedo probar vba.format(calendar.value, "mm/dd/yyyy"), es decir, donde lo tengo que poner.

Gracias por adelantado

Honestamente no habia (tenido la oportunidad) de probar/ver el archivo, pero tienes que ir a los modulos de clase, especificamente al "CalendarioLabel " dentro del "Private Sub MiLabel_Click()", busca la linea:

FechaCalendario = CDate(MiLabel.Tag) + X[/PHP]

Modificala por esta:

[PHP]FechaCalendario = VBA.Format(CDate(MiLabel.Tag) + X, "dd/mm/yyyy")[/PHP]

[b]

Por cierto Antoni, tu aporte, falla al momento de modificar, directamente la fecha, es decir si no clickeas otro campo y te vas directo a la fecha, se nos presenta el calendario y al elegir una fecha, pasa algo raro, se limpian los campos y lanza (supongo) el correlativo, ignorando esto... al darle click al boton "modificar" te advierte y si le das click en "si" logicamente lanza el error de elegir un registro, pues los campos estan vacios y ya no deja modificar el registro[/b]

Saludos

publicado

Hola a todos:

He estado revisando a fondo el tema del calendario, y lo único que he podido corroborar es la afirmación de Gerson ralacionado con el borrado de datos si nos posicionamos en el campo fecha, si este es el primer dato.

Por mas que he seguido el código no consigo dar con el problema, ya que instrucción a instrucción no se reproduce el error.

Continuaré investigando a ver si doy con el diagnostico, mientras, haciendo click en cualquier dato antes que en la fecha, el problema se soluciona.

Y en cuanto a tus problemas jabrajam, no se que decirte, ya que por mas pruebas que hago, no me ocurre nada anormal, salvo el ya mencionado.

Saludos

publicado

Hola

A mi me funciona y no me da error de sintaxis, estos errores se dan porque hemos introducido incorrectamente las variables dentro de una funcion, revisa donde exactamente te da ese error y luego revisa dicha linea/funcion en la ayuda

Saludos

publicado

Antoni

Una vez seleccionamos/click a un registro del listbox, la alternativa, puede ser (creo) darle el "foco" a cualquier campo, por ejemplo el primero, "Socio"

Saludos

publicado

Gerson:

Voy a ver, pero el problema creo que se desencadena después del evento MouseDown de los datos tipo fecha.

Este evento está en un módulo de clase y es común a todos los textbox del formulario.

Al estar el calendario en un formulario a parte, y tener los días su propio evento en otro módulo de clase, creo que en algún punto pierdo el lugar de retorno al formulario principal.

Estoy en ello.

Saludos y gracias

publicado

Buenos noches,

he conseguido que no me salga error de sintaxis pero sigue sin funcionarme, he puesto 9/1/2012 y me sale 1/9/2012 he probado con otra fecha 1/3/2012 y me sale 3/1/2012.

Lo que he cambiado ha sido "FechaCalendario = CDate(MiLabel.Tag) + X" por

"FechaCalendario = VBA.Format(CDate(MiLabel.Tag) + X, "dd/mm/yyyy")"

en el modulo de clase- "calendariolabel"- Private Sub MiLabel_Click().

Que estoy haciendo mal????

gracias por vuestra ayuda

publicado

No creo que estés haciendo nada mal. Debe haber algo en tu configuración que no identifico. Tiene que ver algo con el formato americano (EEUU) de fechas, pero no se el que.

Comprueba que en el resto de meses también te invierte el mes y el día, y te generaré una versión especifica para ti.

Como último intento, prueba:

[COLOR=#333333][FONT=Verdana]"FechaCalendario = VBA.Format(CDate(MiLabel.Tag) + X, "mm/dd/yyyy")"[/FONT][/COLOR][/CODE]

publicado

Buenos noches Macro,

Me sigue saliendo igual, pero solo son con fechas en conctreto, es decir, solo me ocurre cuando seleciono los dias del 1 al 12 de cada mes, a partir del dia 12 funciona perfectamente.

Adicionalmente me gustaria hacerte una pregunta respecto al formulario, lo he intentado pero no lo he conseguido, se puede modificar el campo socio una vez grabado, es decir, si yo realizo una visita y relleno todos los datos y al cabo de varios dias vuelvo a ir a ese cliente y tengo que modificar algun campo, para no volver a rellenar todos los datos podria selecionar el cliente y cambiar algun campo pero conservando el antiguo registro y que me diera un regritro nuevo con todos los campos iguales a excepcion de los cambios que realice y el campo socio (autonumerico) que tendria que darme uno nuevo, espero habertelo podido explicar bien.

Si no se pudiera da igual sigue siendo increible el formulario.

Un saludo y muchas gracias por ayudarme.

publicado

Hola!

Con vuestro permiso la solución que propongo es colocar el formato justo antes

MiLabel.Tag = Format((MiLabel.Tag), "mm/dd/yyyy")

FechaCalendario = CDate(MiLabel.Tag) + x

de esta manera a mi me esta funcionando, que decir que mis conocimientos son pobrisimos y que me salió de chiripa después de mucho probar por lo que no sé si será una buena solución.

La verdad que el archivo es impresionante y me está siendo de mucha utilidad, muchas gracias por este tipo de aportes.

Un saludo

publicado

Nuevas Noches,

Lo que he cambiado ha sido "FechaCalendario = CDate(MiLabel.Tag) + X" por

"MiLabel.Tag = Format((MiLabel.Tag), "mm/dd/yyyy")

FechaCalendario = CDate(MiLabel.Tag) + x"

en el modulo de clase- "calendariolabel"- Private Sub MiLabel_Click().

Y sigue sin funcionarme los dias que estas entre los dias 1 al 12 de cada mes, donde me cambia el dia por el mes y viceversa.

Que hago mal????????????????

Un saludo y gracias a todos por intentar solucionarlo.

P.D. Macro, pudistes leer mi pregunta sobre la opcion de modificar???

  • 2 weeks later...
publicado

Hola:

Subo una versión especial para Jabraham, pero puede valer a cualquiera.

He cambiado el calendario por un control DTPicker.

Muy importante: La columna que contenga datos tipo FECHA, deben tener formato TEXTO, si no, y no se porqué, en los meses de enero a septiembre, los días del 1 al 10 se invierten.

De rebote se ha arreglado el error reportado por Gerson.

Saludos a todos.

Actualización Jabraham.zip

publicado

Buenas noches Macro,

En primer lugar queria agradecerte tu ayuda a mis problemas.

He probado este nuevo ficheros y por un lado se ha resuelto el problema de las fechas (enhorabuena, porque a mi me estaba volviendo loco), pero como consecuencia me ocurren varios errores:

El formato fecha, aunque lo pongas en opcional, por defecto te lo pide como obligatorio, al igual que si le metes varios campos de fecha todos ellos te los pide como obligatorios aunque les pongas opcional.

El resto de campos despues de la fecha, tambien te los pide obligatorios, a pesar que sean opcionales.

Si al insertar un nuevo registro le das a modificar se te marcan practicamente todas las casillas en amarillos aunque sean opcionales, y desaparecen algunos textbox del formulario.

Me imagino que todo esto viene originado del mismo error, pero con mis conocimientos me siento incapaz de encontrarlo por mucho que intento seguir todo el proceso.

Muchas gracias

publicado

Hola:

Pues parece que me he lucido con este aporte.

Lo reviso a fondo y lo subo de nuevo.

Saludos.

publicado

Hola de nuevo:

Bien, parece que esta vez ha quedado un poco mas arregladito.

Todo el problema consistía en haber obviado por completo los campos opcionales.

Parece que ahora ya funciona.

No obstante no dudeis, en especial Jabraham, en comunicarme cualquier incidencia.

Saludos de nuevo

Actualización Jabraham.zip

publicado

Buenas noches Macro,

Agradezco tu comentario de poder seguir preguntando sobre dudas y que no me mandes lejos por pesado.

Respecto al tema de opcionales, funciona perfectamente, muchas gracias

He visto que has agregado nuevas cosas como la barra de deshabilitar el control de alta/modificaciones, pero no se cual es su finalidad.

El campo de fecha me sale algo diferente, como dividido en 2 partes donde en cada parte viene la fecha que selecionas 2 veces, esta eso correcto????.

Por ultimo aprovecho para preguntarte si es posible hacer una modificacion de un registro y cambiar el campo de auto, es decir, si yo lo utilizo para realizar visitas y hoy visito a un cliente que lo visite hace 3 dias, si pudiera utilizar los datos esos para no tenerlo que volver a rellenar todos los datos y poder cambiar el campo de auto.

Muchisimas gracias una vez mas por todo y sobre todo por tu paciencia.

publicado

Hola:

El campo de fecha me sale algo diferente, como dividido en 2 partes donde en cada parte viene la fecha que selecionas 2 veces, esta eso correcto????.

La parte izquierda es el dato en si mismo, la derecha es el calendario. El objetivo es poder modificar manualmente el dato.Tal como estaba, no había manera de borrar el campo, ya que el calendario no lo permite.

He visto que has agregado nuevas cosas como la barra de deshabilitar el control de alta/modificaciones, pero no se cual es su finalidad.

Por ultimo aprovecho para preguntarte si es posible hacer una modificacion de un registro y cambiar el campo de auto, es decir, si yo lo utilizo para realizar visitas y hoy visito a un cliente que lo visite hace 3 dias, si pudiera utilizar los datos esos para no tenerlo que volver a rellenar todos los datos y poder cambiar el campo de auto.

Existe un control de seguridad que no permite pulsar el botón de añadir si hay seleccionado un registro de la lista.

Al deshabilitar ese control, puedes aprovechar los datos del registro seleccionado para no tener que volverlos a teclear si coinciden con el nuevo registro. Pero, siempre hay un pero, por definición los campos Auto están protegidos, por lo que no pueden ser modificados de forma manual, que es lo que tu pretendes..

Voy a ver de que forma podemos solucionar este tema.

Saludos

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.