Extraer datos Reporte de Consolidados 2017

A los miembros de este foro, en esta ocasión solicito a Uds, en como mejor la macro que gustosamente me brindo su ayuda con esta macro Elsa Matilde, y ahora lo que pretendo es que me permita visualizar el ultimo nombre del archivo que se va insertando, adjunto la macro y imagen del procedimiento que realizo.

Desde ya agradezco su colaboración.

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
'Range("B8:AO" & Range("B" & Rows. Count).End(xlup). Row). Copy 'permite copiar consolidados globales.
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


1 Respuesta

Respuesta
1

Aclarame dónde necesitas que se indique el libro capturado: ¿En alguna celda? ¿Con un mensaje?

Buenos días Elsa Matilde, sería posible que el libro capturado: lo mencione dentro del mismo Control del Formulario, debajo del mensaje AVISO,

ya que conforme se va agregando (copiando) la información del botón de formulario va bajando y colocar el mensaje ¿En alguna celda? determinada sería imposible visualizar, ? y en cuanto al mensaje ¿Con un mensaje? indique Acaba de Copiar el archivo (ejemplo) PLANILLA00.xlsm, y así sucesivamente.

Y otro detalle que visualizado es que cuando aperturo el botón de formulario, siempre la dirección del archivo a subir lo direcciona a otra carpeta, seria factible que esta ruta sea por defecto donde se encuentra la carpeta que se esta trabajando.

Gracias y desde ya agradezco nuevamente tu colaboración y apoyo Elsa Matilde.

No debes valorar la respuesta si aún no está resuelta, recién vamos por el proceso de 'aclaraciones'. Quizás luego merezca una valoración mejor ;)

Como no encontré el código del AVISO, coloqué el mensaje en la subrutina 'Copiando':

Sub Copiando()
resultado = MsgBox("¿Desea copiar otro libro?", vbYesNo, "IMPORTANTE")
If resultado = vbYes Then
    MsgBox "Ultimo libro abierto: " & a
    abrir
End If
End Sub

Para esto tendrás que declarar como pública la variable a al inicio del UF 

dim a o Public a según donde tengas estos códigos.

Si aún no queda resuelto el tema enviame muestra de tu libro indicando claramente en qué momento quieres que este mensaje o texto se muestre.

Sdos. Si con esto queda resuelta la consulta agradeceré mejores tu valoración.

Elsa

Buenas noches Elsa Matilde, la macro brindada:

Sub Copiando()
resultado = MsgBox("¿Desea copiar otro libro?", vbYesNo, "IMPORTANTE")
If resultado = vbYes Then
    MsgBox "Ultimo libro abierto: " & a
    abrir
End If
End Sub

ya se encuentra dentro de la rutina principal a excepción de los datos que adicionastes y que al momento de presionar el Botón de Formulario Unión de Plla 601, para mejor detalle la vuelvo a subir y esta resltado en color negrita.

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
'Range("B8:AO" & Range("B" & Rows. Count).End(xlup). Row). Copy 'permite copiar consolidados globales.
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

Ahora con respecto al mensaje debo decir lo siguiente:

acá dejo la rutina de este procedimiento:

Private Sub ComboBox1_Change()

On Error Resume Next

Application.ScreenUpdating = False

'Ir a la hoja

Irhoja = ComboBox1

Sheets(Irhoja).Select

Application.ScreenUpdating = True

Unload Me

End Sub

 --------

Private Sub CommandButton1_Click()

End Sub

 -----------------

Private Sub UserForm_Initialize()

UserForm1.Caption = "AVISO"

Dim hoja As Worksheet

ComboBox1.Clear

For Each hoja In Worksheets

Mysheet = hoja.Name

ComboBox1.AddItem Mysheet

Next

End Sub

Aquí me aparecen los datos que estoy tomando del archivo Planilla00.xlsm, de la hoja PLLA601 y queda asi:

Y ahora viene el detalle que se pretende obtener como resultado, que al presionar el botón "SI" deberá el aparecer el nombre del archivo subido como se puede la imagen.

Espero amiga Elsa, haber sido un minucioso al detallar lo solicitado, y sino me podrias enviar tu email personal, para adjuntar el archivo y así se pueda analizar con detenimiento.

Gracias nuevamente por su paciencia y colaboración. 

magen

dsd

imahe

dasd

imaghen

sdas

imagen

Es casi lo mismo que le agregué a tu subrutina 'Copiando'.

En esta el mensaje se envía luego de aceptar:

Sub Copiando()
resultado = MsgBox("¿Desea copiar otro libro?", vbYesNo, "IMPORTANTE")
If resultado = vbYes Then
    MsgBox "Ultimo libro abierto: " & a
    abrir
End If
End Sub

Y como lo muestras ahora, donde el mensaje se muestra en el mismo texto, sería:

Sub Copiando2()
resultado = MsgBox("Ultimo libro abierto:" & a & Chr(10) & _
"¿Desea copiar otro libro?", vbYesNo, "IMPORTANTE")
If resultado = vbYes Then
    abrir
End If
End Sub

En ambos casos la variable 'a' debe ser declarada al inicio del módulo.

PD) con esto ya estará resuelto, pero si te queda alguna duda mis correos aparecen en el sitio que dejo al pie.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas