Volver a la Celda de la drcha donde se pulsó ENTER

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

Volver a la Celda de la drcha donde se pulsó ENTER

Notapor yojjbc » 24 Ene 2012 06:27

Hola a todos,
tengo un pequeño problemilla con una MACRO.
A ver si alguien me puede echar una mano.
He creado un RANGO donde introduzco datos manualmente.
Cada vez que se cambie el contenido de una CELDA de ese RANGO
la MACRO se activa y me lo calculado todo (da igual que pulse enter, tabulador o utilice el ratón).
Hasta ahí todo bien.
El problema es que quiero que vuelva a la drcha del último dato introducido.
Os dejo el CÓDIGO :
Spoiler: Mostrar
Sub Ordenar_uno()
'
' Ordenar_uno Macro
'

'
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Range("BF3:BG19").Select
Selection.Copy
Range("AY3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Dato 1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Dato 1").Sort.SortFields.Add Key:=Range("AZ4:AZ19" _
), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Dato 1").Sort
.SetRange Range("AY3:AZ19")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Aquí debería de irse a la CELDA DE LA DERECHA DEL ÚLTIMO DATO INTRODUCIDO

Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
yojjbc
Miembro Nuevo
Miembro Nuevo
 
Registrado: 23 Ago 2011 15:20

Re: Volver a la Celda de la drcha donde se pulsó ENTER

Notapor Antoni » 24 Ene 2012 08:44

Hola:

He modificado el código en las líneas resaltadas con: '<========

Código: Seleccionar todo
Public ANTERIOR As Range '<============

Sub Ordenar_uno()
'
' Ordenar_uno Macro
'
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False '<==========

Range("BF3:BG19").Copy
Range("AY3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

ActiveWorkbook.Worksheets("Dato 1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Dato 1").Sort.SortFields.Add Key:=Range("AZ4:AZ19"), _
      SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets("Dato 1").Sort
   .SetRange Range("AY3:AZ19")
   .Header = xlYes
   .MatchCase = False
   .Orientation = xlTopToBottom
   .SortMethod = xlPinYin
   .Apply
End With

ANTERIOR.Select 'Última celda cambiada de forma manual <===========

Application.EnableEvents = True '<==================
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


En la hoja "Dato 1" debes añadir:

Código: Seleccionar todo
Private Sub Worksheet_Change(ByVal Target As Range)
Set ANTERIOR = Target
End Sub


Saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Antoni
Miembro Frecuente
Miembro Frecuente
 
Registrado: 22 Dic 2009 04:58
Ubicación: GALICIA (ESPAÑA)


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: botesponja, cjadeva, Héctor Miguel, sonkanon y 5 invitados