Problemas con métodos de búsqueda
Siempre se me a complicado mucho los métodos de búsqueda ya sea Find o VlookUp y similares. Les adjuntare un Word (o un enlace para descargarlo más precisamente) en el que escribí lo que debe hacer la macro, disculpen que no lo escribí acá, pero me excedía del número máximo de caracteres. Espero que me puedan ayudar y agradezco cualquier ayuda que me puedan ofrecer.
Este es el código que llevo hasta ahora y agradezco cualquier ayuda. Saludos
Private Sub cmdgres_Click()
'Se apaga el Update de la Pantalla
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'On Error Resume Next
'variables
Dim myfile, mybook, myfile2, mybook2, a, b, c As String
Ruta = ActiveWorkbook.Path
ChDir Ruta
'Explorador de Archivos para buscar el archivo de nombre variable
myfile = Application.GetOpenFilename("Archivos Excel (*.xlsm), *.xlsm*", , "Seleccione el archivo de Calculo de cantidades")
If VarType(myfile) = vbBoolean Then
MsgBox ("Operación Cancelada"), vbCritical, "AVISO"
Exit Sub
End If
'Se guarda la ubicación del archivo de nombre variable
mybook = ActiveWorkbook.Name
Workbooks.Open Filename:=myfile, UpdateLinks:=0
FullName = Split(myfile, Application.PathSeparator)
a = FullName(UBound(FullName))
'Se aplica el filtro
Set HF = Sheets("ITEMS")
HF.UsedRange.AutoFilter Field:=2, Criteria1:=">=1", _
Operator:=xlOr
'Se guarda en una variable el numero de filas luego del filtro
Dim cantf As Integer
cantf = 0
uf = Sheets("ITEMS").Range("B" & Rows.Count).End(xlUp).Row
For i = 2 To uf
If Sheets("ITEMS").Cells(i, 1) <> Empty Then
cantf = cantf + 1
End If
Next i
'Explorador de archivos para buscar el archivo de APU
myfile2 = Application.GetOpenFilename("Archivos Excel (*.xlsm), *.xlsm*", , "Seleccione el archivo de APU")
If VarType(myfile) = vbBoolean Then
MsgBox ("Operación Cancelada"), vbCritical, "AVISO"
Exit Sub
End If
'se guarda la ubicacion del archivo de APU en otra variable
mybook2 = ActiveWorkbook.Name
Workbooks.Open Filename:=myfile2, UpdateLinks:=0
FullName = Split(myfile, Application.PathSeparator)
b = FullName(UBound(FullName))
'Se ubica en el primer celda de la lista resultante del filtro
Workbooks(a).Sheets("ITEMS").Activate
ActiveSheet.Range("C6").Select
Selection.End(xlDown).Select
'Guarda el código en una variable, después de asegurarse de que la celda no este vacia
'For i = 6 To cantf 'Con este ciclo lo que quiero hacer es que cuando termine la busqueda de un código regrese aca para leer y buscar el código siguiente, pero solo he logrado hacer un ciclo infinito :v
If ActiveCell = Empty Then
Selection.Offset(1, 0).Select
End If
cd = ActiveCell.Value
MsgBox "El Código es: " & cd
'Hasta acá todo funciona bien
'''''''
'-- --'
' --- '
'''''''
'A partir de acá es donde hará la búsqueda del paso 4
Workbooks("b").Sheets("APU").Activate
u = b.Range("B" & Rows.Count).End(xlUp).Row
Set bc = b.Range("B:B" & u).Find(cd, lookat:=xlWhole, LookIn:=xlValues)
If Not bc Is Nothing Then
MsgBox "No se que: " & bc
End If
'Next i
End Sub
1 respuesta
Respuesta de Dante Amor
2


