Public Sub BusquedaBinaria()
Dim max, min, centro, columna As Integer
Dim control As Boolean
Dim buscado As String
buscado = Sheets("hoja1").Cells(6, 2).Value
Debug.Print "BUSCADO=" & buscado ' codigo a buscar
min = 1 'fila inicial de la lista
max = 13 'fila final de la lista
columna = 1 ' columna "A"
control = False ' resultado de la busqueda
Do While min <= max
centro = Int((max + min) / 2) 'es el fiel de la balanza en la busqueda
Debug.Print "Max=" & max & " Min=" & min & " TANTEO Centro=" & centro
If (buscado = Sheets("hoja1").Cells(centro, columna).Value) Then
control = True
Debug.Print "BUSCADO=" & buscado & " ENCONTRADO en :" & centro
Exit Do
ElseIf buscado < Sheets("hoja1").Cells(centro, columna).Value Then
Debug.Print "BUSCADO=" & buscado & " < " & _
"Valor en CENTRO=" & Sheets("hoja1").Cells(centro, columna).Value
max = (centro - 1)
Else
Debug.Print "BUSCADO=" & buscado & " > " & _
"Valor en CENTRO=" & Sheets("hoja1").Cells(centro, columna).Value
min = (centro + 1)
End If
Loop
Debug.Print "ENCONTRADO=" & control
Debug.Print ("FIN BUSQUEDA")
End Sub