HECREADO UNA MACRO Q BUSCA UN NUMERO TEL EN OTRO ARCHIVO
Q HABRO CON UNA VENTANA DE DIALO Y LUEGO REALIZA LA BUSQUEDA
DE LOS NUMERO DE LA LIBRO1 EN LA HOJA 1 EN LA COLUMNA 1
RECORRO LA COLUMNA 1 POR FILA Y BUSCO EN LIBRO2( HOJA1 Y HOJA2)
SI EXISTE Q ME DIGA SI ES UN NUMERO FIJO O MOVIL
EL PROBLEMA ES QUE
CUANDO SON MENOS DE 1000 FILAS POR HOJA EN EL LIBRO 2
SI REALIZA TODO CORRECTAMENTE PERO MAS DE 1000 NO ME FUNCIONA
NO ME MANDA NINGUN MSJ DE ERROR ES COMO SI NO ENCONTRAR NINGUNA COINCIDENCIA
DEJO EL CODIGO PARA Q LO VEAN Y ME PUEDAD ORIENTAR EN QUE ME EQUIVOCO
DE ANTEMANO GRACIAS
Código:
Sub Buscar()
Dim RangoBusqueda, RangoBusqueda2 As Range
Dim Resultado, Valor
Dim I As Double
Dim UfL21 As Double
Dim UfL22 As Double
milibro = Application.GetOpenFilename 'selecioono un archivo
Workbooks.Open milibro
libroA = ActiveWorkbook.Name
libro = VBA.Mid(libroA, 1, VBA.InStr(libroA, ".x") - 1)
UfL21 = Workbooks(libro).Sheets(1).Cells(65536, 1).End(xlUp).Row 'verifico la ultima fila ocupada de la hoja1 del libro q abri
UfL22 = Workbooks(libro).Sheets(2).Cells(65536, 1).End(xlUp).Row 'verifico la ultima fila ocupada de la hoja2 del libro q abri
Set RangoBusqueda = Workbooks(libro).Sheets(1).Range("B1:F" & UfL21) 'especifico el rango de busqueda para la hoja1
Set RangoBusqueda2 = Workbooks(libro).Sheets(2).Range("B1:C" & UfL21) 'especifico el rango de busqueda para la hoja2
'verifico la ultima fila ocupada del libro1 donde tengo la macro en la columna 1 (a)
Uf = Workbooks(1).Sheets(1).Cells(65536, 1).End(xlUp).Row
'----------------------------------------------------------
'recorremos la columa A ", con un for realizando la busqueda en la hoja1 del libro q abri con la ventana de dialogo:
With Workbooks(1).Sheets(1)
For I = 1 To Uf
'tomo el codigo presente en la primer columna:
Valor = .Cells(I, 1).Value
'coloco un controlador de errores:
On Error Resume Next
ResultadoF = Application.WorksheetFunction.VLookup(Valor, RangoBusqueda, 5, False)
Resultado1F = Application.WorksheetFunction.VLookup(Valor, RangoBusqueda, 6, False)
If Err.Number = 1004 Then
Err.Clear
Else
.Cells(I, 8).Value = "FIJO"
.Cells(I, 9).Value = ResultadoF
.Cells(I, 10).Value = Resultado1F
End If
Next I
End With
'----------------------------------------------------------------------------------------------------------------
'recorremos la columa A ", con un for realizando la busqueda en la hoja2 del libro q abri con la ventana de dialogo:
With Workbooks(1).Sheets(1)
For I = 1 To Uf
'tomo el codigo presente en la primer columna:
Valor = .Cells(I, 1).Value
'coloco un controlador de errores:
On Error Resume Next
ResultadoM = Application.WorksheetFunction.VLookup(Valor, RangoBusqueda2, 3, False)
Resultado1M = Application.WorksheetFunction.VLookup(Valor, RangoBusqueda2, 4, False)
If Err.Number = 1004 Then
Err.Clear
Else
.Cells(I, 8).Value = "MOVIL"
.Cells(I, 9).Value = ResultadoM
.Cells(I, 10).Value = Resultado1M
End If
Next I
End With
'-----------------------------------------------------------------------------------------------------------------
Workbooks(libro).Close False
'aviso que terminó el proceso:
MsgBox "finalizado"
'destruyo el rango, para liberar recursos del sistema
Set RangoBusqueda = Nothing
End Sub