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
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


0