Asignar una línea de dirección a una macro

D\colegio amiguitos de jesus\datos generales\" a la sigte macro;

Trate de colocarla donde entendia que iba, pero me da un error.

Sub consolidando()
'x Elsamatilde

'se recorre la hoja1 del libro activo (Relación) buscando coincidencias con
'hoja Activos del libro 'Datos generales'.
Sheets("Hoja1").Select
Application.ScreenUpdating = False

Dim lib1 As String, lib2 As String
lib1 = ActiveWorkbook.Name
'se evalúa si el 2do libro está abierto sino se lo abre
For Each wb In Workbooks
If wb.Name = "DATOS GENERALES DEL ESTUDIANTE.xls" Then
lib2 = wb.Name
Exit For
End If
Next wb
If lib2 = "" Then
'se considera que el 2do libro se encuentra en la misma carpeta....ajustar
ruta = ThisWorkbook.Path & "/"
Workbooks.Open ruta & "DATOS GENERALES DEL ESTUDIANTE.xls"
'se guarda el nombre para acceder
lib2 = ActiveWorkbook.Name
'vuelvo al libro RELACION
Workbooks(lib1).Activate
ActiveWorkbook.Sheets("Hoja1").Select
End If
'se definen libro/hoja para trabajar
Set lb1 = ActiveWorkbook.Sheets("Hoja2")
Set lb2 = Workbooks(lib2).Sheets("ACTIVOS")

'1er fila destino a partir de la última registrada
filx = lb1.Range("A" & Rows.Count).End(xlUp).Row + 1
'ultima fila de hoja DATOS a la que se le quitan el filtrado
fini = lb2.Range("A" & Rows.Count).End(xlUp).Row
If lb2.FilterMode = True Then lb2.ShowAllData

'recorre la col H en busca de celdas no vacías, hasta encontrar celda vacía en col A
[H10].Select
While Range("A" & ActiveCell.Row) <> ""
If ActiveCell <> "" Then
'busca la matrícula en libro 2
dato = Range("A" & ActiveCell.Row)
Set busco = lb2.Range("H8:H" & fini).Find(dato, LookIn:=xlValues, lookat:=xlWhole)
If busco Is Nothing Then GoTo sigo
'lo encontró... Guarda la dirección y pasa los datos
dire = busco.Address
Do
fily = busco.Row
lb1.Cells(filx, 1) = lb2.Range("A" & fily)
lb1.Cells(filx, 2) = lb2.Range("B" & fily)
lb1.Cells(filx, 3) = lb2.Range("H" & fily)
lb1.Cells(filx, 4) = lb2.Range("Q" & fily)
filx = filx + 1
'busca otros registros de la misma matrícula
Set busco = lb2.Range("H8:H" & fini).FindNext(busco)
'el bucle continúa mientras se encuentre coincidencias y NO sea la primer celda encontrada
Loop While Not busco Is Nothing And busco.Address <> dire
End If
'pasa a fila siguiente y repite el bucle
sigo:
ActiveCell.Offset(1, 0).Select
Wend
MsgBox "Fin del proceso.", , "INFORMACIÓN"
End Sub

Respuesta
1

Donde dice RUTA

ruta ="D\colegio amiguitos de jesus\datos generales\"

Así debe quedar

Pero con solo pober el acrivo en esa carpeta y abrilo desde hay te resolve la línea ThisWorkbook. Path & "/" le indicva que lo deja en esa misma ruta

Recuerda valora si te silve

Lo hice y me da un error en la línea: Workbooks.Open ruta & "DATOS GENERALES DEL ESTUDIANTE.xls"

Cuando corro la macro se detiene en la línea que indico arriba

Colaca el libro DATOS GENERALES DEL ESTUDIANTE.xls en esa carpeta datos generales

Lo hice y me sigue señalando la línea que muestro arriba

Revisa a ver si tu archivo tiene otra extensión

Ya sea XLSX o XLSM porque debió abrirlo si esta en esa carpeta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas