Como copiar rangos de filas y transponer con macro?

Soy un principiante en esto por favor su ayuda.

Tengo una planilla con una serie de datos los cuales debo mover a otra hoja, el problema es que no me copia y transpone todos los datos y solo transpone la primera serie:

1 respuesta

Respuesta
2

Deja indicados los rangos (o por menos algunos) para pasarte las instrucciones precisas.

Aquí dejo solo un ejemplo que copia transpuesto el rango A2:E2 a la col C de Hoja2:

Sub copiaTranspuesta()
'x Elsamatilde
'copia datos de fila 2 y pega en col C de Hoja2, a partir de C2
    Range("A2:E2").Copy
    Sheets("Hoja2").Select
    Range("C2").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Range("C2").Select
End Sub

Si esto resuelve tu tarea no olvides valorarla. Sino dejá escritos algunos ejemplos de rangos que necesitas copiar y dónde.

Gracias Elsa! creo que no fui claro al plantear mi pregunta:

Necesito crear una ciclo For (creo que For) la idea es programar para copiar desde hoja1(datos1) en el rango "E3:V3" posteriormente "E4:V4" y asi sucesivamente hasta "E40:v40", luego saltar a "E44:V44" y continuar de la misma forma, es decir, una constante de 41 (yo lo use como contador i= 0 to 1000, donde, i= i * 41), la idea es pegar y transponer en forma consecutiva en la hoja2 (datos2) columna C.

Hasta ahora lo que tengo es esto, solo me falta crear el ciclo para copiar y transponer estas filas:

Por favooorrrrr ayudaaaa!!!!!!!!

Sub Datos()
'

Dim datos1, datos2 As Object
Dim n, a, b, c, i, ii, fila As Integer

Set datos1 = Worksheets("OC")
Set datos2 = Worksheets("Oferta_de_Compra")

For i = 0 To 1000
n = datos2.Cells(Rows.Count, 3).End(xlUp).Row
a = datos2.Cells(Rows.Count, 6).End(xlUp).Row
b = datos2.Cells(Rows.Count, 5).End(xlUp).Row
c = datos2.Cells(Rows.Count, 11).End(xlUp).Row

c = c + 1
a = a + 1
n = n + 1
b = b + 1
  If datos1.Cells((i * 41) + 2, 2) <> "" Then
   For ii = 1 To 40

       If datos1.Cells((i * 41) + 1, ii + 4) <> "" Then
          datos2.Cells(ii + n, 3) = UCase(datos1.Cells((i * 41) + 2, 2)) + "-" + UCase(datos1.Cells((i * 41) + 1, ii + 4)) 'ESTA MACRO CONCATENA EL CODIGO Y NUMERACION
       If datos1.Cells((i * 41) + 2, 4) <> "" Then
           datos2.Cells(ii + a, 6) = datos1.Cells((i * 41) + 2, 4) ' ACA SE PEGA EL PRECIO COSTO
      If datos1.Cells((i * 41) + 1, ii) <> "" Then
           datos2.Cells(ii + b, 5) = datos1.Cells((i * 41 + n), ii + 4) ' MACRO PARA CANTIDAD DE PARES, NO RESUELTO
      If datos1.Cells((i * 41) + 1, ii) <> "" Then ' MACRO PARA COLOCAR LAS TIENDAS, NO RESUELTO
            datos2.Cells(ii + c, 11) = datos1.Cells((i * 41 + i) + 3, 1)
       End If
    End If
  End If
       Else
            Exit For
        End If
    Next ii
Else
    Exit For
End If
Next i
End Sub

En 2 días salgo de viaje, así que mil disculpas pero ya no me puedo ocupar.

Por favor valora para dar por finalizada mi consulta considerando que te respondí con macro incluida.

Luego copia las aclaraciones que me acabas de enviar, en una nueva consulta para que quede más claro en el tablón y los que tengan más tiempo puedan resolvértela .

Sdos y felices fiestas !

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas