Copiar en la primera línea no usada de otra hoja

12/10/2007 - 01:04 por GRIEGO59 | Informe spam
Hola!
Tengo una hoja “ingresos”
Con los campos:
A2 Nombre
B2 Fecha
A4 Monto
A5 Guardar

Y otra hoja “clientes”
Con los títulos:
A1 Nombre
B1 Activo
C1 Fecha
D1 Valor histórico
E1 Valor actual
F1 Monto

Quisiera hacer un código que al presionar “enter” cuando el cursor esté
ubicado en la celda a5 de la hoja “ingresos” se copie el contenido de las
celdas a2, b2, a4 de la hoja “ingresos” en las celdas a1, c1, f1 de la hoja
“clientes” y luego el cursor se posicione en “compras” a2, para un nuevo
registro.

Todos son datos no hay fórmulas.

Gracias por su ayuda.

Preguntas similare

Leer las respuestas

#6 GRIEGO59
13/10/2007 - 00:54 | Informe spam
Hola!
Disculpa, soy nuevo en esto.
Ya copié el código que va en la hoja "ingresos" entrando con botón derecho
del mouse en etiqueta de la hoja luego ver código.
Pero el que va en el código normal entrando por menú, insertar Código. No
consigo eso.
Yo entre por la opción "insertar" que está arriba, en el menú y lo que
aparece es incertar columnas, insertar filas, etc, pero no aparece insertar
código. : (

Ojalá pueda encontrar ese código normal.

Gracias por tu ayuda.

Griego59

"Ivan" escribió:

y otra vez los saltos del foro

pegalos asi=>

' en el modulo de la hoja 'ingresos' --
'
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Worksheet_SelectionChange_Error
If Not Intersect(Target, [a5]) Is Nothing Then
Application.OnKey "{enter}", "Copiar"
Application.OnKey "{return}", "Copiar"
End If
On Error GoTo 0
Exit Sub
Worksheet_SelectionChange_Error:
MsgBox "Error " & Err.Number & " (" & _
Err.Description & ") en el procedimiento " & _
"Worksheet_SelectionChange de tipo Sub " & _
"del Documento VBA: Hoja1"
Application.OnKey "{enter}"
Application.OnKey "{return}"
End Sub


' en un modulo normal -
'
Sub Copiar()
Dim ultF As Long
If [a2] = "" Then _
MsgBox "El nombre es obligatorio": _
[a2].Select: Reponer: Exit Sub
With Worksheets("clientes")
ultF = .[a65536].End(xlUp).Row + 1
.Cells(ultF, 1) = [a2]
.Cells(ultF, 3) = [b2]
.Cells(ultF, 6) = [a4]
End With
Range("a2,b2,a4").ClearContents
[a2].Select
Reponer
End Sub
Sub Reponer()
Application.OnKey "{enter}"
Application.OnKey "{return}"
End Sub


un saludo
Ivan


Respuesta Responder a este mensaje
#7 Ivan
13/10/2007 - 01:21 | Informe spam
Pero el que va en el código normal entrando por menú, insertar Código. No
consigo eso.
Yo entre por la opción "insertar" que está arriba, en el menú y lo que
aparece es incertar columnas, insertar filas, etc, pero no aparece insertar
código. : (

Ojalá pueda encontrar ese código normal.




hola,

disculpame, me referia al menu insertar del editor de VBA, daba por
hecho que lo conocias

por lo que se ve ya has pegado el codigo correspondiente a la hoja
(asegurate de que has pegado exclusivamente la parte correcta) y en la
hoja adecuada

para el otro codigo puedes hacer lo siguiente=>

1º estando en excel debes abrir el editor de VBA =>

=> menu 'Herramientas' => 'Macros' => 'Editor de visual basic'

o directamente => Alt+F11

2ª una vez en dicho editor =>

=> menu 'Insertar' => 'Modulo' (a secas, NO de clase) => en la hoja
en blanco que se te habra abierto Copias/pegas el codigo que te
indicaba

3ª vuelve a excel (cerrando el editor o pej. con Alt+F11 o con el
boton con el logo de excel que seguramente tendras en la barra de
herramientas)

4ª prueba a cargar los datos y a darle a intro/return estando en A5
( he puesto como obligacion que al menos haya algo en A2)

si quieres comentas que tal

Un saludo
Ivan
Respuesta Responder a este mensaje
#8 GRIEGO59
13/10/2007 - 13:12 | Informe spam
Muchas gracias : )
Me funcionó.
Con un detallito:
Si todas las celdas están "no vacías"
Si estoy ubicado en "b2" o "a4"
Si el último registro se hizo en"b2" o "a4" y presiono "enter" el código
funciona.
Y yo quiero que el código funcione solamente cuando se presiona enter en "a5"
Podrías ayudarme?
Gracias anticipadas.
Griego59

"Ivan" escribió:


> Pero el que va en el código normal entrando por menú, insertar Código. No
> consigo eso.
> Yo entre por la opción "insertar" que está arriba, en el menú y lo que
> aparece es incertar columnas, insertar filas, etc, pero no aparece insertar
> código. : (
>
> Ojalá pueda encontrar ese código normal.


hola,

disculpame, me referia al menu insertar del editor de VBA, daba por
hecho que lo conocias

por lo que se ve ya has pegado el codigo correspondiente a la hoja
(asegurate de que has pegado exclusivamente la parte correcta) y en la
hoja adecuada

para el otro codigo puedes hacer lo siguiente=>

1º estando en excel debes abrir el editor de VBA =>

=> menu 'Herramientas' => 'Macros' => 'Editor de visual basic'

o directamente => Alt+F11

2ª una vez en dicho editor =>

=> menu 'Insertar' => 'Modulo' (a secas, NO de clase) => en la hoja
en blanco que se te habra abierto Copias/pegas el codigo que te
indicaba

3ª vuelve a excel (cerrando el editor o pej. con Alt+F11 o con el
boton con el logo de excel que seguramente tendras en la barra de
herramientas)

4ª prueba a cargar los datos y a darle a intro/return estando en A5
( he puesto como obligacion que al menos haya algo en A2)

si quieres comentas que tal

Un saludo
Ivan


Respuesta Responder a este mensaje
#9 Ivan
13/10/2007 - 13:38 | Informe spam
hola Dario,

Me funcionó.






Con un detallito:
Si todas las celdas están "no vacías"
Si estoy ubicado en "b2" o "a4"
Si el último registro se hizo en"b2" o "a4" y presiono "enter" el código
funciona.




en teoria [creo que] no deberia ser asi


Y yo quiero que el código funcione solamente cuando se presiona enter en "a5"












si quieres haz una cosa: ve al editor de vba (Alt+F11) abre el modulo
normal =>

posiciona el cursor dentro del procedimiento 'Reponer' (entre 'Sub
Reponer y end sub
=>

dale a F5

cierra el editor y prueba de nuevo y comentas

un saludo
Ivan
Respuesta Responder a este mensaje
#10 GRIEGO59
13/10/2007 - 16:04 | Informe spam
Hola Ivan!
Ve lo que sucede.
Escribo todos los registros, y el cursor queda posicionado en la celda A5
(guardar) antes de dar enter me doy cuenta debo corregir. Al corregir una
celda y dar enter, aun sin estar posicionado en a5, se ejecuta el código y
graba antes de terminar de corregir.

Creo que el código se está ejecutando si te posicionas en A5 y luego das
enter. Que es diferente que ejecutarse si das enter estando posicionado en
A5. Es decir que si te posicionas en A5, luego ejecutas otras acciones y
luego das enter sin estar posicionado en A5, el código se ejecuta.
Saludos,
Griego59


"Ivan" escribió:

hola Dario,

>>>> Me funcionó.
> Con un detallito:
> Si todas las celdas están "no vacías"
> Si estoy ubicado en "b2" o "a4"
> Si el último registro se hizo en"b2" o "a4" y presiono "enter" el código
> funciona.


en teoria [creo que] no deberia ser asi


>>>> Y yo quiero que el código funcione solamente cuando se presiona enter en "a5"




si quieres haz una cosa: ve al editor de vba (Alt+F11) abre el modulo
normal =>

posiciona el cursor dentro del procedimiento 'Reponer' (entre 'Sub
Reponer y end sub
=>

dale a F5

cierra el editor y prueba de nuevo y comentas

un saludo
Ivan


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida