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