Página 1 de 1

[RESUELTO] Colocar el cursor en un lugar específico de un te

NotaPublicado: Mié Jul 26, 2017 7:36 am
por keko
Hola.Estoy empezando con las macros en formularios de Base y me surge una duda.

En uno de los campos de mi formulario hay una serie de valores que se repiten mucho, así que he puesto un cuadro combinado para seleccionar esos valores. Pero también hay valores únicos que no están entre los que ofrece el cuadro, y en ese caso hay que escribirlos.

El 90% de los valores que van en ese campo empiezan con los mismos caracteres (es un campo de referencias, y la mayoría empiezan por "C-AXB0" y luego siguen números, por ejemplo "C-AXB004381"), entonces lo que he hecho es una macro que cuando el cuadro combinado recibe el foco escribe automáticamente C-AXB0, de forma que el usuario sólo tenga que completarlo con los números que faltan. En caso de que sea una referencia de las pocas que no empiezan así, se sobreescribe y ya está.

El problema es que cuando recibe el foco, escribe C-AXB0 pero el cursor se queda al principio del campo (antes de la C) y me preguntaba si es posible desde la propia macro dejar el cursor ya colocado después del 0 para escribir sin más lo que falta.

No es un problema grave (se arregla pulsando la tecla Fin del teclado antes de escribir la parte que falta), pero me queda la duda de si es posible hacerlo.

Muchas gracias.

Re: Colocar el cursor en un lugar específico de un texto

NotaPublicado: Mié Jul 26, 2017 12:15 pm
por RMG
Hola,

Creo que hay algún que otro ejemplo en el foro sobre esto. Con una búsqueda lo encontrarás.

Saludos

Re: Colocar el cursor en un lugar específico de un texto

NotaPublicado: Jue Jul 27, 2017 8:05 am
por keko
Buenos días.

Lo intenté antes de hacer la consulta, pero todas las referencias que encuentro en el foro a posiciones de cursor se refieren a celdas, rangos, etc de excel o bien a poner el foco en uno u otro campo. No he encontrado ningún hilo que se refiera a lo que yo busco, que es mover el cursor al final del texto dentro del mismo campo en el que ya está.

Pero bueno, volveré a mirar por si se me ha escapado algo.

Un saludo y gracias.

Re: Colocar el cursor en un lugar específico de un texto

NotaPublicado: Jue Jul 27, 2017 11:13 am
por RMG
Hola,

Mira si este ejemplo te sirve.

Código: Seleccionar todo   Expandir vistaContraer vista
Sub RecibeFoco( Evento )
Dim oSel As Object
   oSel = Evento.Source.Selection
   oSel.Min = 0
   oSel.Max = Len(Evento.Source.Text)
   Evento.Source.Selection = oSel
End Sub


Saludos

[Resuelto] Colocar el cursor en un lugar específico de un te

NotaPublicado: Jue Jul 27, 2017 11:44 am
por keko
Solucionado.

Con el código que has puesto pone el cursor al final pero deja el texto seleccionado, con lo que al escribir algo nuevo elimina lo que ya estaba. Pero lo he solucionado cambiando el límite inferior de la selección de 0 a Len(Evento.Source.Text), con lo que el cursor queda al final del texto sin tener nada seleccionado :D

Código: Seleccionar todo   Expandir vistaContraer vista
Sub RecibeFoco( Evento )
Dim oSel As Object
   oSel = Evento.Source.Selection
   oSel.Min = Len(Evento.Source.Text)
   oSel.Max = Len(Evento.Source.Text)
   Evento.Source.Selection = oSel
End Sub


Muchas gracias!