Pegar celdas

Hola:
¿Cómo le puedo hacer par lo siguiente?
Se trata de que tengo alrededor de 200 hojas de excel que tienen el mismo formato, lo que deseo hacer que en la hoja llamada matriz, que es la primera hoja, se copie y pegue el contenido de las celdas de las 199 hojas.
El rango de lo que se va a copiar y pegar es de A1:AA35, para cada hoja, y se pegará en la celda A1 de la hoja llamada "matriz". De tal forma que esta operación se realice para el resto de las 199 hojas restantes. Ojo la primera vez que se pega la información se termina en el renglón #35 por lo que el contenido siguiente a pegar es el de la siguiente hoja, y deberán pegarse a partir del renglón 36, así sucesivamente para la siguiente hoja de tal forma que no se encime la información o en otro caso no hacerlo a mano.
Por tu atención gracias
WBere
Respuesta
Cuando quieras copiar de una hoja al resto de hojas en el libro debes hacer lo siguiente:
Marcas la hojas: Apretás la tecla shift y le das clic a la ultima hoja que deseas marcar. Si quieres marcar todas las hojas le das botón derecho encima del nombre de cualquier hoja y le das "Seleccionar todas las hojas".
Un vez que estén marcadas las hojas escribes algo y en lugar de darle enter le das ctrl-enter y así se grabará en todas la hojas marcadas. Haz pruebas con un libro en blanco.
Si esta no es la respuesta a tu pregunta.

4 respuestas más de otros expertos

Respuesta
1
WBere,
el código que te escribo a continuación hace lo que pides, pruébalo y me cuentas!
Saludos,
Jorgelina
Sub PegarCeldas()
Dim i As Integer
Application.ScreenUpdating = False
For i = 1 To 199
Sheets(i + 1).Range("A1:AA35").Copy
Sheets("matriz").Cells(35 * (i - 1) + 1, 1).PasteSpecial xlPasteAll
Next
End Sub
Respuesta
1
Te mando el código que debes insertar en una macro. Saludos.
Sub InsertarCeldasenMatriz()
'
' InsertarCeldasenMatriz Macro
' Macro grabada el 19/04/03 por Pablo Orioli
'
On Error GoTo Insertar_Err
'Alojo en memoria las variables que voy a utilizar
Dim misHojas As Worksheet
Dim filaInicial As Integer
Dim filaFinal As Integer
Dim colInicial As String
Dim colFinal As String
Dim paso As Integer
Dim rangoFijo As String
Dim nuevaSel As String
'Doy valores iniciales a las variables
filaInicial = 1
filaFinal = 35
colInicial = "A"
colFinal = "AA"
paso = filaInicial
rangoFijo = colInicial & filaInicial & ":" & colFinal & filaFinal
nuevaSel = colInicial & paso
'Como primer hoja activa tomo "Matriz"
With Worksheets("Matriz")
.Select
.Range(nuevaSel).Select
End With
'Procedimiento
For Each misHojas In Worksheets 'para todas las hojas de mi libro
If misHojas.Name <> "Matriz" Then 'si la hoja es distinta de "Matriz"
misHojas.Select 'hago una las 99 restantes activa
Range(rangoFijo).Select 'selecciono un rango fijo de celdas
Application.CutCopyMode = False 'El modo de selección de celdas NO es Cut
Selection.Copy 'copio las celdas del rango
Sheets("Matriz").Select 'hago activa a "Matriz"
ActiveSheet.Paste 'Pego las celdas copiadas
paso = paso + filaFinal 'establezco la nueva fila activa
nuevaSel = colInicial & paso 'guardo la referencia a la nueva celda activa de Matriz
Range(nuevaSel).Select 'hago esa celda activa para el próximo pegado
End If
Next misHojas
'Mensaje de finalización
MsgBox "Se procesaron: " & ((paso - 1) / filaFinal) & " Hojas con éxito"
Exit Sub
Insertar_Err:
MsgBox Err.Number & ": " & Err.Description
Exit Sub
End Sub
Respuesta
1
La siguiente macro que tienes que ejecutar desde el libro con los datos que quieres manipular, hace lo que quieres, te recomiendo probarla con una copia de tu libro...
Public Sub CopiarDatos()
Dim FilaActual As Long
Dim co1 As Integer
FilaActual = 1
For co1 = 2 To Worksheets.Count
Worksheets(co1).Range("A1:AA35").Copy Worksheets(1).Cells(FilaActual, 1)
FilaActual = FilaActual + 35
Next co1
End Sub
Si esto resuelve tu duda.
Respuesta
1
El siguiente procedimiento requiere que la primera hoja de tu libro sea la matriz y se llame "Matriz".
Sub PegarHojas()
x = 1
i = 1
While i <= 200
Sheets("Matriz").Select
ActiveSheet.Next.Select
Range("A1:AA35").Select
Selection.Copy
Sheets("Matriz").Select
Range("A" & x & "").Select
ActiveSheet.Paste
ActiveSheet.Next.Select
ActiveSheet.Move Before:=Sheets(i)
x = x + 35
i = i + 1
Wend
End Sub
En tu libro entra por herramientas/macro/editor de visual basic.
Luego en la ventana que te muestra selecciona el nombre de tu libro y ubicado allí dile a través de la opción insertar, insertar modulo.
Luego abre el modulo insertado y pega la macro.
Luego simplemente ejecuta la macro por macro/ejecutar.
Si las hojas son más o menos de 200 puedes modificar la macro, en el numero limite (200).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas