Excel copiar datos a otra hoja en fila vacia para Dam

Quiero copiar datos de una determinada columna (hoja1) a hoja 2 ya tengo echo el procedimiento lo único malo que al copiarlo me los copia en la misma fila, que instrucción me falta para que pase a la siguiente fila

El código es este :

Sub copiar()
Dim uf As Integer
uf = Sheets("comunicaciones").Range("A" & Rows.Count).End(xlUp).Row
Sheets("comunicaciones").Range(Cells(1, "A"), Cells(uf, "A")).Copy
Sheets("Hoja1").Cells(1, "A").PasteSpecial Paste:=xlPasteAll, Transpose:=True
End Sub

4
Respuesta
1

Si en

Sheets("Hoja1").Cells(1, "A").PasteSpecial Paste:=xlPasteAll, Transpose:=True

Tienes Cells(1, "A") pega en A1

Si tienes Cells(2, "B") pega en B2

3 respuestas más de otros expertos

Respuesta
1

Ya me habías solicitado este código y te lo pase solo que alguien más te paso otro código más cotito y que no hace lo que solicitaste por favor trata y di si te sirve

En este enlace fue donde ya te lo había pasado.

Copiar datos de una columna a otra hoja

Y como te comento aquí yo solo te hice hasta el dato 8 pero tu lo puedes completar

Sub copiadatos()
'
' copiardatos Macro
'
Application.ScreenUpdating = False
Worksheets("Hoja2").Activate
Worksheets("Hoja2").Select
Worksheets("Hoja2").Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Worksheets("Hoja2").Cells(2, 1).Value = Worksheets("Hoja1").Cells(1, 1).Value
Worksheets("Hoja2").Cells(2, 2).Value = Worksheets("Hoja1").Cells(2, 1).Value
Worksheets("Hoja2").Cells(2, 3).Value = Worksheets("Hoja1").Cells(3, 1).Value
Worksheets("Hoja2").Cells(2, 4).Value = Worksheets("Hoja1").Cells(4, 1).Value
Worksheets("Hoja2").Cells(2, 5).Value = Worksheets("Hoja1").Cells(5, 1).Value
Worksheets("Hoja2").Cells(2, 6).Value = Worksheets("Hoja1").Cells(6, 1).Value
Worksheets("Hoja2").Cells(2, 7).Value = Worksheets("Hoja1").Cells(7, 1).Value
Worksheets("Hoja2").Cells(2, 8).Value = Worksheets("Hoja1").Cells(8, 1).Value
Worksheets("Hoja1").Cells(1, 1).Value = ""
Worksheets("Hoja1").Cells(2, 1).Value = ""
Worksheets("Hoja1").Cells(3, 1).Value = ""
Worksheets("Hoja1").Cells(3, 1).Value = ""
Worksheets("Hoja1").Cells(4, 1).Value = ""
Worksheets("Hoja1").Cells(5, 1).Value = ""
Worksheets("Hoja1").Cells(6, 1).Value = ""
Worksheets("Hoja1").Cells(7, 1).Value = ""
Worksheets("Hoja1").Cells(8, 1).Value = ""
Worksheets("Hoja1").Activate
Worksheets("Hoja1").Select
Application.ScreenUpdating = True
End Sub

Ok esta macro copias los valores de una hoja en otra pero si tu quieres que alguna celda en especial copie fórmulas vas a reemplazar esa instrucción por esta solamente las que quieras que lleven el copiado de fórmulas o el formato

Worksheets("Hoja1").Cells(6, 1). Copy
Worksheets("Hoja2").Cells(2, 6). PasteSpecial xlPasteAll
Application.CutCopyMode = False

Nota: Aclarando que las fórmulas van a seguir dependiendo de los valores o datos que estén en la hoja uno o donde estén referenciados si te llega a marcar error es por que en la celda donde estaba el dato ya no lo hay

Bueno suponiendo que la fila 3 y 6 tienen fórmulas y las quieres conservar el código sera así

Sub copiadatos()
'
' copiadatos Macro
'
Application.ScreenUpdating = False
Worksheets("Hoja2").Activate
Worksheets("Hoja2").Select
Worksheets("Hoja2").Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Worksheets("Hoja2").Cells(2, 1).Value = Worksheets("Hoja1").Cells(1, 1).Value
Worksheets("Hoja2").Cells(2, 2).Value = Worksheets("Hoja1").Cells(2, 1).Value
'Fila numero 3 con formula la copia
Worksheets("Hoja1").Cells(3, 1).Copy
Worksheets("Hoja2").Cells(2, 3).PasteSpecial xlPasteAll
Worksheets("Hoja2").Cells(2, 4).Value = Worksheets("Hoja1").Cells(4, 1).Value
Worksheets("Hoja2").Cells(2, 5).Value = Worksheets("Hoja1").Cells(5, 1).Value
'Fila numero 6 con formula la copia
Worksheets("Hoja1").Cells(6, 1).Copy
Worksheets("Hoja2").Cells(2, 6).PasteSpecial xlPasteAll
Application.CutCopyMode = False
Worksheets("Hoja2").Cells(2, 7).Value = Worksheets("Hoja1").Cells(7, 1).Value
Worksheets("Hoja2").Cells(2, 8).Value = Worksheets("Hoja1").Cells(8, 1).Value
Worksheets("Hoja1").Cells(1, 1).Value = ""
Worksheets("Hoja1").Cells(2, 1).Value = ""
Worksheets("Hoja1").Cells(3, 1).Value = ""
Worksheets("Hoja1").Cells(3, 1).Value = ""
Worksheets("Hoja1").Cells(4, 1).Value = ""
Worksheets("Hoja1").Cells(5, 1).Value = ""
Worksheets("Hoja1").Cells(6, 1).Value = ""
Worksheets("Hoja1").Cells(7, 1).Value = ""
Worksheets("Hoja1").Cells(8, 1).Value = ""
Worksheets("Hoja1").Activate
Worksheets("Hoja1").Select
Application.ScreenUpdating = True
End Sub

La instrucción

Application.CutCopyMode = False

ira despues del copiado de la ultima formula o hasta el final antes del End Sub

Respuesta
1

Prueba con esta macro

Sub copiar()
'Por.DAM
    Dim uf As Integer
    uf = Sheets("comunicaciones").Range("A" & Rows.Count).End(xlUp).Row
    Sheets("comunicaciones").Range(Cells(1, "A"), Cells(uf, "A")).Copy
    u2 = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("Hoja1").Cells(u2, "A").PasteSpecial Paste:=xlPasteAll, Transpose:=True
End Sub

Se me paso un detalle Dam lo que me mandaste me funciono muy bien pero hay 4 datos que no están en la misma columna de los demás datos por ejemplo lo que me mandaste están en la columna A muy bien pero tengo 4 datos que están en C1, C3 a C6 y estos que pasen en la misma línea que los que se copiaron de la columna A

Me parece que ya no me tocan puntos en esta pregunta, porque fue contestada por otro experto. Por favor, puedes crear otra pregunta dirigida a Dante Amor y te envío la respuesta con lo nuevo que estás pidiendo.

Respuesta

Yo tengo esta fórmula, me sirvió mucho para pasarlo de una hoja a otra.

Dim fila As Integer
Dim final As Integer
Dim envio As Variant

Sheets("1").Select
Range("a1").Select
envio = Hoja1.Cells(23, 12)
' vaciar en hoja 2
For fila = 1 To 100
If Hoja2.Cells(fila, 1) = "" Then
final = fila
Exit For
End If
Next

Hoja2.Cells(fila, 1) = envio

end sub

Nota : si alguien supiera como hacer esto, pero mandarlo de un libro a otro libro. Por favor este es mi correo : [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas