Modificar VBA para que pegue datos en otra hoja.

Sub pegar()
  Dim c As Range, j As Long
  j = Columns("M").Column 
  With ActiveCell
    For Each c In Range("A" & .Row & ":K" & .Row) 
      If c.Value <> "" Then
        Cells(.Row, j).Value = c.Value
        j = j + 1
      End If
    Next
  End With
End Sub

Buen dia,

Solicito de ayuda para modificar esta macro. Su funcion al ejecutar, es que copia los datos dentro del rango de las columnas" A:K" de acuerdo a la fila donde este activo seleccionado, y los pega a partir de la celda de la columna "M". LA MACRO FUNCIONA BIEN

Solamente quiero modificarla para que la celda donde empieza a pegar, en este caso la "M" lo haga pero en otra hoja, ejemplo "hoja2", pero el rango si sigue estando en la hoja donde estoy activo.

En pocas palabaras, que copie los datos de la hoja donde estoy activo y los pegue no en la misma hoja, si no en otra hoja,"hoja2".

3 respuestas

Respuesta
2

Aquí otra opción a considerar:

Sub pegar2()
Range("A" & ActiveCell.Row & ":K" & ActiveCell.Row).SpecialCells(2).Copy Sheets("Hoja2").Range("M" & ActiveCell.Row)
End Sub
Respuesta
1

Macro actualizada


Sub pegar()
  Dim c As Range, j As Long
  Set h2 = Sheets("Hoja2")
  '
  j = h2.Columns("M").Column
  With ActiveCell
    For Each c In Range("A" & .Row & ":K" & .Row)
      If c.Value <> "" Then
        h2.Cells(.Row, j).Value = c.Value
        j = j + 1
      End If
    Next
  End With
End Sub
Respuesta
1

Creo que lo que estas pidiendo seria simple.

Modifica esta línea:

Cells(.Row, j).Value = c.Value

Por esta:

Sheets("hoja2"). Cells(. Row, j).Value = c.Value

Si la hoja 2 no esta creada, deberías crearla. Si quieres que se cree una hoja nueva cuando se ejecuta la macro ya es otro tema.

La pregunta no admite más respuestas

Más respuestas relacionadas