Macro al escribir un solo caracter

20/07/2007 - 15:46 por srtaele | Informe spam
Buenas tardes,

Observo que en este grupo hay gente tremendamente válida. Alucino con
muchas de las respuestas.

Necesito crear una macro que me permitiese desplazar el cursor una
celda a la derecha cuando escribo un solo caracter. Por ejemplo, si
escribo 3 en la celda A1, la siguiente celda seleccionada fuese la B1
pero sintener que darle a la tecla tabulador.

He intentado buscar respuestas similares, pero no las termino de
entender.

Muchas gracias de antemano.

Preguntas similare

Leer las respuestas

#6 Orfao
21/07/2007 - 23:34 | Informe spam
Hola gente !!

Me adhiero a la consulta... que tal si creamos una macro asi :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x
x = "a"
Application.OnKey x, "entro"
End Sub

(En un modulo)
Public Sub entro()
Application.OnKey "a"
Application.SendKeys "a{ENTER}"
End Sub

esto funciona para la letra "a". La pregunta es como asignar cualquier
letra a x y como pasarla al proc entro ??? Tal vez Funcione ... o no !!

Me alimento del conocimiento de todos
Respuesta Responder a este mensaje
#7 srtaele
22/07/2007 - 15:33 | Informe spam
On 21 jul, 23:34, Orfao wrote:
Hola gente !!

Me adhiero a la consulta... que tal si creamos una macro asi :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x
x = "a"
Application.OnKey x, "entro"
End Sub

(En un modulo)
Public Sub entro()
Application.OnKey "a"
Application.SendKeys "a{ENTER}"
End Sub

esto funciona para la letra "a". La pregunta es como asignar cualquier
letra a x y como pasarla al proc entro ??? Tal vez Funcione ... o no !!

Me alimento del conocimiento de todos



Muchísimas gracias por vuestro tiempo. Al principio probé con
application.Onkey, pero no funcionaba. Gracias por mostrarme otra
forma de hacerlo Orfao. Luego probé con Target.Value = "A" y una
condicional para que activase una macro que desplazaba la selección.
Funcionó durante unas horas, pero al volver a probarla dejó de
funcionar porque decía que no reconocía el objeto. Además solo
desplazaba la celda, pero no insertaba el valor.

Probaré lo que dices Orfao.

Muchas gracias por tu interés Iván. Seguro que al final entre todos,
lo conseguiremos. Sois geniales.
Respuesta Responder a este mensaje
#8 srtaele
22/07/2007 - 21:09 | Informe spam
On 22 jul, 15:33, srtaele wrote:
On 21 jul, 23:34, Orfao wrote:



> Hola gente !!

> Me adhiero a la consulta... que tal si creamos una macro asi :

> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> Dim x
> x = "a"
> Application.OnKey x, "entro"
> End Sub

> (En un modulo)
> Public Sub entro()
> Application.OnKey "a"
> Application.SendKeys "a{ENTER}"
> End Sub

> esto funciona para la letra "a". La pregunta es como asignar cualquier
> letra a x y como pasarla al proc entro ??? Tal vez Funcione ... o no !!

> Me alimento del conocimiento de todos

Muchísimas gracias por vuestro tiempo. Al principio probé con
application.Onkey, pero no funcionaba. Gracias por mostrarme otra
forma de hacerlo Orfao. Luego probé con Target.Value = "A" y una
condicional para que activase una macro que desplazaba la selección.
Funcionó durante unas horas, pero al volver a probarla dejó de
funcionar porque decía que no reconocía el objeto. Además solo
desplazaba la celda, pero no insertaba el valor.

Probaré lo que dices Orfao.

Muchas gracias por tu interés Iván. Seguro que al final entre todos,
lo conseguiremos. Sois geniales.



Buenas tardes, chicos

ya lo he conseguido. He programado individualmente cada entrada en el
libro en cuestión y a continuación he aplicado una macro de
desplazamiento y ha funcionado.

ahora el problema que se me plantea es que no sé como delimitar la
inserción de datos solo a la primera fila. Lo he intentado con
target.adress pero no funciona. Alguna idea?

Muchas gracias por vuestro interés
Respuesta Responder a este mensaje
#9 Ivan
22/07/2007 - 22:20 | Informe spam
On 22 jul, 21:09, srtaele wrote:
On 22 jul, 15:33, srtaele wrote:





> On 21 jul, 23:34, Orfao wrote:

> > Hola gente !!

> > Me adhiero a la consulta... que tal si creamos una macro asi :

> > Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> > Dim x
> > x = "a"
> > Application.OnKey x, "entro"
> > End Sub

> > (En un modulo)
> > Public Sub entro()
> > Application.OnKey "a"
> > Application.SendKeys "a{ENTER}"
> > End Sub

> > esto funciona para la letra "a". La pregunta es como asignar cualquier
> > letra a x y como pasarla al proc entro ??? Tal vez Funcione ... o no !!

> > Me alimento del conocimiento de todos

> Muchísimas gracias por vuestro tiempo. Al principio probé con
> application.Onkey, pero no funcionaba. Gracias por mostrarme otra
> forma de hacerlo Orfao. Luego probé con Target.Value = "A" y una
> condicional para que activase una macro que desplazaba la selección.
> Funcionó durante unas horas, pero al volver a probarla dejó de
> funcionar porque decía que no reconocía el objeto. Además solo
> desplazaba la celda, pero no insertaba el valor.

> Probaré lo que dices Orfao.

> Muchas gracias por tu interés Iván. Seguro que al final entre todos,
> lo conseguiremos. Sois geniales.

Buenas tardes, chicos

ya lo he conseguido. He programado individualmente cada entrada en el
libro en cuestión y a continuación he aplicado una macro de
desplazamiento y ha funcionado.

ahora el problema que se me plantea es que no sé como delimitar la
inserción de datos solo a la primera fila. Lo he intentado con
target.adress pero no funciona. Alguna idea?

Muchas gracias por vuestro interés- Ocultar texto de la cita -

- Mostrar texto de la cita -



hola,

por un lado, ¿podrias exponer el codigo que has usado?

y por otro, y dependiendo de como sea dicho codigo, para un uso
'normal' de los eventos change o worksheetchange podrias usar algo +/-
asi:

if target.row <> 1 then exit sub

un saludo
Ivan
Respuesta Responder a este mensaje
#10 srtaele
23/07/2007 - 23:25 | Informe spam
On 22 jul, 22:20, Ivan wrote:
On 22 jul, 21:09, srtaele wrote:



> On 22 jul, 15:33, srtaele wrote:

> > On 21 jul, 23:34, Orfao wrote:

> > > Hola gente !!

> > > Me adhiero a la consulta... que tal si creamos una macro asi :

> > > Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> > > Dim x
> > > x = "a"
> > > Application.OnKey x, "entro"
> > > End Sub

> > > (En un modulo)
> > > Public Sub entro()
> > > Application.OnKey "a"
> > > Application.SendKeys "a{ENTER}"
> > > End Sub

> > > esto funciona para la letra "a". La pregunta es como asignar cualquier
> > > letra a x y como pasarla al proc entro ??? Tal vez Funcione ... o no !!

> > > Me alimento del conocimiento de todos

> > Muchísimas gracias por vuestro tiempo. Al principio probé con
> > application.Onkey, pero no funcionaba. Gracias por mostrarme otra
> > forma de hacerlo Orfao. Luego probé con Target.Value = "A" y una
> > condicional para que activase una macro que desplazaba la selección.
> > Funcionó durante unas horas, pero al volver a probarla dejó de
> > funcionar porque decía que no reconocía el objeto. Además solo
> > desplazaba la celda, pero no insertaba el valor.

> > Probaré lo que dices Orfao.

> > Muchas gracias por tu interés Iván. Seguro que al final entre todos,
> > lo conseguiremos. Sois geniales.

> Buenas tardes, chicos

> ya lo he conseguido. He programado individualmente cada entrada en el
> libro en cuestión y a continuación he aplicado una macro de
> desplazamiento y ha funcionado.

> ahora el problema que se me plantea es que no sé como delimitar la
> inserción de datos solo a la primera fila. Lo he intentado con
> target.adress pero no funciona. Alguna idea?

> Muchas gracias por vuestro interés- Ocultar texto de la cita -

> - Mostrar texto de la cita -

hola,

por un lado, ¿podrias exponer el codigo que has usado?

y por otro, y dependiendo de como sea dicho codigo, para un uso
'normal' de los eventos change o worksheetchange podrias usar algo +/-
asi:

if target.row <> 1 then exit sub

un saludo
Ivan



Hola Iván,

He aplicado el código application.onkey a cada caracter. Por ejemplo,
application.onkey "0", y luego he insertado el nombre d ela macro de
desplazamiento entre comillas. Application.onkey "0", "macro1". Esto
lo he insertado en el workbook utilizando el evento
sheetSelectionChange.

Luego en un módulo aparte he creado la macro de desplazamiento con el
siguiente código

Sub macro1()
Application.OnKey "0" (aqui indico que capture la tecla)
Application.SendKeys "0{RIGHT}" (aquí indico que envie la pulsacion de
la tecla con dirección derecha)
End Sub

Lo que comentas de target.row <> 1 donde tendría que ponerlo porque no
funciona. Hace que no funcione la macro, pero seguro que es por como
lo he estructurado.

Poco a poco voy aprendiendo

Gracias por tu interés, Iván
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida