Tengo una Macro de Excel que no funciona bien y no se cómo arreglarla

En una Macro de Excel tengo la siguiente rutina:

Sheets("Planilla Reclamos").Select
Range("M2").Select
Selection.Copy
Application.Goto Reference:="R6C7"

El tema es que la primera vez que la ejecuto anda bien, pero necesito que La instrucción "R6C7" sea variable. Ese dirección proviene del contenido de M2 que es donde tiene que ubicarse el cursos y siempre se posiciona en el mismo lugar.

Si me pueden ayudar se los agradeceré mucho.

2 respuestas

Respuesta
2

Prueba esta macro, solo teclea la celda a donde quieres la copia y listo

Sub copiar()
Worksheets("Planilla Reclamos").Range("m2").Copy
celda = InputBox("Teclee la celda destino: (ejem: A2)")
If celda = Empty Then End
Range(celda).PasteSpecial xlPasteAll
End Sub
Respuesta
1

Lo principal es explicar qué quieres hacer.

Por lo que veo en tu macro:

Seleccionas la hoja,

Seleccionas la celda M2,

Copias la celda M2

Seleccionas la celda G6 (R6C7)

Y eso es todo, pero no estás comentando realmente qué necesitas.

Quieres copiar la celda M2 y pegarla en un lugar diferente, ¿pero cómo se determina ese lugar diferente?

Además en tu macro no se ve si lo que copias lo quieres pegar.

Platica con detalle qué quieres hacer la primera vez, qué quieres hacer la segunda vez, etc. No te preocupes por el código, yo te ayudo en esa parte.

Hola, básicamente necesito posicionar el cursor en una celda que tiene que variar cada vez que ejecuto La macro, esa dirección de celda se guarda en la celda M2 con referencia absoluta ($), el problema que tengo es que funciona una sola vez, luego siempre se posiciona en el mismo lugar que asignó la primera vez. Necesito saber si hay alguna forma de hacer variable  esta instrucción: Application.Goto Reference:="R6C7"

No, sigo sin entender cuál es tu objetivo. La macro que pusiste no hace nada de lo que estás explicando. La macro que pusiste copia la celda M2 y luego se va a la celda G6

Mejor explícame con calma qué quieres hacer:

¿Quieres guardar una dirección en la celda M2?

¿Quieres qué la macro guarde la dirección en la celda M2?

¿Y después quieres que la macro selecciona la celda que guardaste en la celda M2?

Pero no me explicas los que te pregunte:

¿Pero cómo se determina ese lugar diferente?

Mejor explica con ejemplos la secuencia pasos que quieres realizar.

Creo que ya entendí.

En la celda M2 tienes una referencia o una dirección.

Lo que quieres hacer es leer esa dirección y moverte a esa celda

Se puede resumir así:

    celda = Range("M2").Value
    Range(celda).Select

Pero lo puedes hacer más efectivo de esta forma:

Sub Mover_Cursor()
    celda = Range("M2").Value
    If celda = "" Then
        MsgBox "La celda M2 está vacía"
        Exit Sub
    End If
    '
    On Error Resume Next
    Set c = Range(celda)
    If c Is Nothing Then
        MsgBox "La celda M2 no tiene una dirección válida"
        Exit Sub
    End If
    Range(celda).Select
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Hola, nuevamente sigo necesitando tu ayuda

Vos me pasaste la siguiente rutina: 

Sheets("Planilla Reclamos").Select
celda = Range("M2").Value
Range(celda).Select

la cual funcionó perfecto, hizo exactamente lo que yo quería.

El tema es que ahora necesito que el valor de "celda" se vaya corriendo una columna hacia la derecha. Ej. Si M2 = $G$4. El primer campo se pega bien en G4, pero tengo que seguir pegando otros datos en H, I, J y K de la misma fila activa.

Ya probé con esta instrucción: Range(celda).End(xlToRight).offset(0, 1).Select

pero no funciona, me da error.

Te agradecería si pudieras ayudarme nuevamente

Con mucho gusto te ayudo con todas tus peticiones.

Crea una nueva pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas