Buscar un valor y pegar en las columnas de al lado unas fechas.

Creí que podía resolver esto grabando una macro, pero se ve que requiere un paso mas y no se como hacerlo

Explico que ando necesitado: Estoy en la hoja "Acciones" y completo los datos en las celdas J3, I6, J6.

Doy inicio a la macro y quiero que busque la matricula cargada en J3 en la hoja "Matriculados" y en la fila encontrada pegue los datos de I6:J6 (hoja "Acciones") en la columna G y H (hoja "matriculados")

Grabando las acciones funciona perfecto, solamente que siempre me busca el valor "200" que es el valor que use cuando grababa la macro y no se como reemplazar ese "Selection.Find(What:="200" " por el valor copiado.

Les dejo fotos y macro:

Sub Vacaciones()
    'Selecciona la celda J3 y copia el numero de matricula:
    Range("J3").Select
    Selection.Copy
    'Pone visible la hoja Matriculados y busca el numero de matricula copiado _
    (con la opcion: coincidir con el contenido de toda la celda) en la coolumna A:
    Sheets("Matriculados").Visible = True
        Sheets("Matriculados").Select
    Columns("A:A").Select
    Selection.Find(What:="200", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    'aca tendria que posicionarse en la misma fila del valor buscado _
    pero en la columna G:
    Range("G3704").Select
    'Vuelve a la hoja ACCIONES copa el contenido de I6:J6
    Sheets("ACCIONES").Select
    Range("I6:J6").Select
    Selection.Copy
    'Pega lo copiado (solo valores)
    Sheets("Matriculados").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    'Oculta la hoja matriculados
    Sheets("Matriculados").Select
    ActiveWindow.SelectedSheets.Visible = False
    'Borra lo escrito
    Sheets("ACCIONES").Select
    Range("I6:J6").Select
        Selection.ClearContents
    Range("J3").Select
        Selection.ClearContents
    MsgBox ("Vacaciones cargadas")
End Sub

Si no es mucho pedir, se puede agregar que si cualquiera de las 3 celdas están vacías no de curso a la macro y tire error? 

1 Respuesta

Respuesta
1

Entendiendo que el valor de la Celda J3 es la que cambia de valor, tiene que ponerlo como una variable por ejemplo:

valor = Range("J3).value
Selection.Find(What:=valor, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False). Activate

En caso de que no le funciones, si puede compartir un ejemplo de su archivo para entenderle bien y poder ayudarle.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas