Extraer datos Reporte de Consolidados

A los miembros de este foro, en esta ocasión solicito vuestra colaboración y ayuda para mejorar la macro que estoy utilizando para remitir reporte de consolidados, aquí muestro la macro que permite unir los archivos y que se puede visualizar en la imagen que adjunto y el problema que tengo es esta parte Range("B8:AO17"). Copy., la AO17 (problema) debe ser la ultima fila de cada archivo y como es lógico son variables como por ejemplo una tiene 113, 36, 28, etc., para ellos necesito que a ejecutarse la macro solo permita leer la última fila (SIN INCLUIR EL VALOR TOTAL).

Dim R
Sub abrir()
Application.ScreenUpdating = False
file = Application.GetOpenFilename
If file = False Then
Exit Sub
Else
Workbooks.OpenText Filename:=file
End If

a = ActiveWorkbook.Name
UserForm1.Show
Range("B8:AO17").Copy 'aca debe traer el ultimo nombre de cada archivo SIN TOMAR EL VALOR TOTAL
Windows("PLANTILLA ELECTRONICA.xlsm").Activate
n = Range("b8").Value
If n <> Empty Then
Range("b8").End(xlDown).Offset(1, 0).Select
Else
Range("b8").Select
End If

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Range("B3").Select
Range("B1").Select
Windows(a).Activate
Application.CutCopyMode = False
ActiveWindow.Close savechanges:=False
Application.ScreenUpdating = True
Copiando
End Sub
Sub Copiando()
resultado = MsgBox("¿Desea copiar otro libro?", vbYesNo, "IMPORTANTE")
If resultado = vbYes Then
abrir
End If
End Sub
Sub Verificar()
R = Hoja1.Range("A2").End(xlUp).Row
For i = 2 To R
If Hoja2.Cells(i, 1) = "" Then
Final = i
Exit For
End If
Next
End Sub
Sub c()
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
R = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
abrir
End Sub

A la espera de su respuesta quedo de uds. Agradecidos.

1 respuesta

Respuesta
1

La última fila la podes obtener de alguna de las primeras columnas, yo tomaré la B.

Range("B8:AO" & Range("B" & Rows. Count).End(xlup). Row). Copy

Lo que hace la instrucción es buscar desde abajo la última fila ocupada.

¡Gracias! 

Elsa Matilde por el aporte, ya que la macro quedo excelente.

Buenos días Elsa Matilde, quisiera pedir una ayuda mas con respecto a la macro, y de paso para comentarte que la rutina Range("B8:AO" & Range("B" & Rows. Count).End(xlup). Row). Copy que anexaste esta OK.

Ahora la ayuda adicional es, si en la misma macro se podría adicionar una rutina mas que el valor que se encuentra en la CELDA A2 valla a la CELDA AR8 y se repita hasta encontrar el ultimo valor como en la rutina que me anexaste  Range("B8:AO" & Range("B" & Rows. Count).End(xlup). Row). Copy

A la espera de tu respuesta quedo de ti.

Con mucho gusto pero debes iniciar una nueva consulta. De paso aclara en qué paso o luego de qué acción de la macro anterior se deben agregar estas nuevas instrucciones.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas