Visual Basic para Aplicaciones - Ayuda!! macro de busqueda (Excel)

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda!! macro de busqueda (Excel)

Publicado por Luis Estrada (5 intervenciones) el 29/08/2005 23:53:24
Saludos y gracias por su ayuda.....

Estoy utilizando Err.Number para cortar un ciclo de busqueda en una hoja de Excel, cuando ya no encuentra el numero que le pedi que buscara genera el numero de error 91 (creo que ese es) y con ese numero efectuo una rutina de comparacion e inicializo una variable para cortar en ciclo..... Todo esto es una macro que si me funciona.

Pero ahora no me funciona!!!!
Cuando ya no encuentra el valor que le dije que buscara, no me genera ningun numero de error y no puedo cortar el ciclo de busqueda, como que le vale....!!!!

Espero haberme explicado, de todos modos este es el codigo.....

Public Sub Personales()
On Error Resume Next
Dim Ext1, Ext2, I As Integer
Dim Conta, Fila1, Fila2 As Integer
Dim Aux As Integer
Dim MiArreglo()
Dim Indice As Integer
Dim DesTemp As Variant

Call Buscar


Ext1 = ActiveCell.Value
Aux = 1

Do While Aux = 1
Ext2 = ActiveCell.Offset(Conta, 0).Value
If Ext1 = Ext2 Then
Conta = Conta + 1
Else
Aux = 0
End If
Loop

ActiveCell.Offset(0, 2).Select



Indice = 0
ReDim Preserve MiArreglo(Conta)
For I = 1 To Conta
MiArreglo(Indice) = Array(ActiveCell(I).Value)
Indice = Indice + 1
Debug.Print
Next I

Worksheets("LlamadasTrabajo").Names.Add Name:="Destino", RefersTo:="=$h$5:$h$65536"


Worksheets("LlamadasPersonales").Activate
Selection.EntireRow.Select
Selection.EntireColumn.Select
Selection.Delete

Worksheets("LlamadasTrabajo").Activate
Range("a1:k4").Select
Selection.Copy

Worksheets("LlamadasPersonales").Activate
Range("a1").PasteSpecial

Columns("A:k").EntireColumn.AutoFit

Worksheets("LlamadasTrabajo").Activate

Indice = 0
Fila = 5

For I = 0 To Conta
DesTemp = MiArreglo(Indice)
Aux = 1
Do While Aux = 1
Cells.Find(what:=[DesTemp], After:=ActiveCell, LookIn:=xlValue, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate

If Err.Number <> 0 Then
Aux = 0
End If

Selection.EntireRow.Select
Selection.Cut
Worksheets("LlamadasPersonales").Activate
ActiveSheet.Paste Destination:=Worksheets("LlamadasPersonales").Cells(Fila, 1)
Fila = Fila + 1
Worksheets("LlamadasTrabajo").Activate

Loop

Indice = Indice + 1
Next I
End Sub

Como le he estado quitando y poniendo pues hay unas lineas y variables que no tienen que ver ya., pero la principal es esta:

For I = 0 To Conta
DesTemp = MiArreglo(Indice)
Aux = 1
Do While Aux = 1
Cells.Find(what:=[DesTemp], After:=ActiveCell, LookIn:=xlValue, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate

If Err.Number <> 0 Then
Aux = 0
End If
Selection.EntireRow.Select
Selection.Cut
Worksheets("LlamadasPersonales").Activate
ActiveSheet.Paste Destination:=Worksheets("LlamadasPersonales").Cells(Fila, 1)
Fila = Fila + 1
Worksheets("LlamadasTrabajo").Activate

Loop

Indice = Indice + 1
Next I

Se puede decir que no me genera el error.....

Por que?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda!! macro de busqueda (Excel)

Publicado por Federico (91 intervenciones) el 30/08/2005 13:26:27
Mirá cuando yo he realizado búsquedas con find para que no se me vuelva a repetir y me de datos duplicados cuando realizo la primera búsqueda guardo la dirección de la celda y cuando vuelvo a buscar comparo que no sea esta.

Te recomiendo que veas la ayuda de "find" que ahí hay un ejemplo de lo que te digo

Espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar