Macro no se repite bien en cada hoja del libro

Buenas tardes
Necesito que esta macro se ejecute en cada hoja de mi libro activo y copie cierta información de cada hoja en otro libro. En el momento solo me copia la hoja activa pero de las otras aunque aparentemente copia por que generala linea en el otro libro solo copia espacios y no los datos. ¿Qué estará mal? ¿Ayuda por favor? Gracias
Sub milton2()
Dim i As Integer
'Creamos el bucle para abrir todas las hojas:
For i = 1 To Worksheets.Count
'Tu codigo en cada hoja
dat1 = Range("B6").Value
dat2 = Range("B10").Value
dat3 = Range("B5").Value
dat4 = Range("E33").Value
dat5 = Range("B44").Value
dat6 = Range("I10").Value
Workbooks.Open Filename:="G:\USUARIOS\GESTIÓN HUMANA\PROCESO DE RECLUTAMIENTO Y SELECCION\INDICADOR\PLANTILLAS\INDICADOR SUMISERVIS.xls"
    Range("A1").Select
Sheets("NUEVO INDICADOR").Select
Range("A2").Select
Do While Not IsEmpty(ActiveCell.Offset(0, 0))
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = dat1
ActiveCell.Offset(0, 1).Value = dat2
ActiveCell.Offset(0, 2).Value = dat3
ActiveCell.Offset(0, 3).Value = dat4
ActiveCell.Offset(0, 6).Value = dat5
ActiveCell.Offset(0, 7).Value = dat6
ActiveCell.Offset(1, 0).Select
ActiveWorkbook.Save
Next 'Para repetir en la siguiente hoja.
End Sub
Respuesta
1
Creo que te falta que después del ActiveWorkbook. Sabe del segundo libro vuelvas a poner activo el libro inicial. Tal y como está, en la segunda iteración del bucle el libro activo ya no es el inicial, sino el segundo...
Hola gracias por la ayuda experto. Pero no soy tan experto como tu. Podrías ser más especifico por favor. Que linea debo agregar teniendo en cuenta que el libro va a tener nombres diferentes por que se manejara uno por cliente. ¿Cómo dejo activo el libro? Gracias nuevamente.
Pensé que la macro la habías hecho tú. Prueba a incluir la parte en negrita:
Sub milton2()
Dim i As Integer

LibroActual = ActiveWorkbook.Name
'Creamos el bucle para abrir todas las hojas:
For i = 1 To Worksheets.Count

Sheets.Select (i)
'Tu codigo en cada hoja
dat1 = Range("B6").Value
dat2 = Range("B10").Value
dat3 = Range("B5").Value
dat4 = Range("E33").Value
dat5 = Range("B44").Value
dat6 = Range("I10").Value
Workbooks.Open Filename:="G:\USUARIOS\GESTIÓN HUMANA\PROCESO DE RECLUTAMIENTO Y SELECCION\INDICADOR\PLANTILLAS\INDICADOR SUMISERVIS.xls"
    Range("A1").Select
Sheets("NUEVO INDICADOR").Select
Range("A2").Select
Do While Not IsEmpty(ActiveCell.Offset(0, 0))
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = dat1
ActiveCell.Offset(0, 1).Value = dat2
ActiveCell.Offset(0, 2).Value = dat3
ActiveCell.Offset(0, 3).Value = dat4
ActiveCell.Offset(0, 6).Value = dat5
ActiveCell.Offset(0, 7).Value = dat6
ActiveCell.Offset(1, 0).Select
ActiveWorkbook.Save

Windows(LibroActual).Activate
Next 'Para repetir en la siguiente hoja.
End Sub
Experto muchas gracias y perdón por no haber sido claro.
Hice lo que me dijiste pero al ejecutar la macro me copia 3 veces la primera hoja del libro. Sin importar en que hoja este cuando la ejecute. Ademas solo tengo datos en dos hojas la tercera es la plantilla no importaría si pasara los datos de esa también pues serian espacios en blanco. ¿Qué podrá ser?
Disculpa.
La segunda línea en negrita no es Sheets. Select (i), sino Sheets. Activate(i)
Hola experto buenos días que pena seguir molestándote pero la macro no se ejecuta me sale un error que dice.
Error de compilación
"no se encontró el método o el dato miembro"
Y queda marcada esa linea que cambie.
Disculpa.
Es que... es Sheets(i). Activate. ... :-(

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas