Copiar celda de distintas hojas

No tengo mucha idea de excel ni macros. Necesito ayuda, la cuestión es la siguiente:
Tengo un archivo excel con 1000 hojas y necesito copiar la celda E10 de cada una de ellas en un libro u hoja nueva en la columna a1 hasta la a1000. El dato de la columna E10 de cada hoja es texto.

1 respuesta

Respuesta
1
Del libro que quieres copiar (el de 1000 hojas)
En excel, en el menu programador (si no lo tienes activado, puedes hacerlo en opciones de excel, más frecuentes y seleccionas mostrar ficha programador en la cinta de opciones), oprimes el icono visual basic (se abrirá una ventana)
Eliges la opción insertar, modulo y pegas esta rutina:
Sub copiar()
Workbooks. Add
Workbooks("Libro2.xlsm").Activate
fila = 1
Dim i As Byte
For i = 1 To 3
Sheets(i).Select
Range("E10").Select
Selection.Copy
Workbooks(Workbooks.Count).Sheets(1).Cells(fila, 1).PasteSpecial
fila = fila + 1
Next i
End Sub
Cambias solo lo que esta en negrita por el nombre de tu archivo (tu archivo debe estar habilitado para macros, puedes volver a guardar tu libro como libro de excel habilitado para macros).
Después en el libro mismo libro en la ficha programador, icono insertar, botón del control de formularios. Lo dibujas donde tu quieras (puedes cambiar su apariecia con click derecho), con click derecho asignar macro buscas la que diga "copiar" y la seleccionas.
Lixto!... pruébalas y me dices si tienes duda.
Sobrex!
Hola, muchas gracias por responder tan rápido.
He seguido tus indicaciones, al ejecutar el macro solo copia 3 celdas, intentando descifrar el código creo que es por el valor de esta linea en el código que me has puesto: For i = 1 To 3.
He modificado el 3 por el numero de hojas que tiene mi archivo y me da un error de desbordamiento. ¿Hay manera de evitar este fallo o ejecuto la macro por tandas?
De nuevo muchas gracias por la ayuda!
Me respondo, je je.
He cambiado el valor byte por Long y ya no me da el error.
Ya que estamos en el ajo y para no molestar más...
¿Cómo seria el código para dos celdas por hoja?
Gracias, saludos!
Perdoooooooooooooooooon...!
Mi culpa totalmente... lo que paso es que hice la prueba en un libro nuevo y nunca me acorde que tu tenias un libro con mil hojas, obvio que te iva a dar un error pues byte solo llega hasta 225...
Correctísimo con cambiarlo a tipo long y aumentar el contador "i" hasta mil... no se porque necesitaste ayuda!
Ahora para copiar dos celdas solamente en la linea:
Range("E10").Select
Pones una coma y la otra celda que deseas copiar. Si es un rango pones dos puntos. Por ejemplo:
Si kieres copiar E10 y F10... Range("E10, F10").Select... o cuantas celdas kieras separadas por coma
si kieres un rango E10:H10... Range("E10:H10").Select
sobrex!... salu2!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas