Macro para copiar y pegar

Hola; necesito una macro para copiar un rando de la hoja NUEVO y pegarlo en la hola DATOS.

Ahora tengo este código pero no realiza lo que yo necesito ya que me pega los datos por filas y yo quiero que lo pegue por columnas:

Sheets("NUEVO").Range("AD2:AD15").Copy Sheets("DATOS").Activate ActiveSheet.Range(Cells(Application.WorksheetFunction.CountA(Sheets("DATOS").Range("a:a")) + 1, 1).Address).Activate ActiveCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, Transpose:=True, SKIPBLANKS:=False Application.CutCopyMode = False

Tengo que copiar el rango AD2:AD15 de la hoja NUEVO y pegarlo en la primera columna de la hoja DATOS al pulsar un botón. Cuando vuelva a ejecutar la macro quiero que me vuelva a copiar el rango anterior pero en la primera columna libre de la hoja DATOS, en este caso sería la segunda ya que la primera estaría utilizada por los datos anteriores.

Ademas me gustaría que la macro me ordenara la tabla A1:AAA13 de la hoja DATOS según los valores de la primera fila en sentido ascendente.

UN saludo

1 respuesta

Respuesta
1

Esta macro realiza lo que pides solo que ordeno los datos en la hoja NUEVA antes de pasar los datos a la hoja DATOS pruébalas y ya me cuentas si es lo que necesitabas

Sub Pasa_Datos()
Range("AD2:AD14").Select
ActiveWorkbook.Worksheets("NUEVO").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("NUEVO").Sort.SortFields.Add Key:=Range("AD2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("NUEVO").Sort
.SetRange Range("AD2:AD14")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("AD2:AD15").Select
Selection.Copy
Sheets("DATOS").Select
Range("A1").Select
While ActiveCell.Value <> Empty
ActiveCell.Offset(0, 1).Select
Wend
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("NUEVO").Select
Range("AD2").Select
End Sub

Un salu2

Buenos días;

Primero darte las gracias por la respuesta pero la macro no hace lo que yo pretendía. Creo que me explique mal.

1º tiene que copiar los datos de la hoja nuevo a la primera columna libre de la hoja datos.

2º En la hoja datos tengo una tabla a1:aaa13. Cada columna son los datos de un alumno donde el dato de la primera fila es el identificador y el resto de datos las notas de cada una de las asignaturas. Necesito ordenar la tabla, es decir, ordenar las columnas según el identificador del alumno que se encuentra en la primera fila. De esta forma consigo ordenar los alumnos según su identificador de menor a mayor pero sin alterar el orden de las notas.

La macro que tu me pasaste lo que hace es ordenar los datos de la columna de menor a mayor. esto no es correcto ya que está desordenando las notas correspondientes a cada asignatura.

Un saludo

Quizás sera mejor si me pasas una plantilla del archivo.

Creo entender lo que necesitas pero mejor si puedo visualizar el archivo.

Mi correo es

[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas