Foros del Web » Programación para mayores de 30 ;) » Programación General »

Excel y Vba

Estas en el tema de Excel y Vba en el foro de Programación General en Foros del Web. Hola. Estoy incluyendo Vba ( Visual Basic para aplicaciones de Office) en una planilla de Excel, para buscar nombres de una lista. He incluido dos ...
  #1 (permalink)  
Antiguo 07/09/2011, 14:26
 
Fecha de Ingreso: octubre-2006
Mensajes: 139
Antigüedad: 17 años, 6 meses
Puntos: 1
Excel y Vba

Hola. Estoy incluyendo Vba ( Visual Basic para aplicaciones de Office) en una planilla de Excel, para buscar nombres de una lista.
He incluido dos botones , uno para "Buscar" y otro para la " Siguiente" busqueda.
Eso funciona bien , pero me queda un tema sin resolver :
Si el usuario ingresa algún nombre que no está contenido en la planilla me arroja : error 91 en tiempo de ejecución, variable de objeto o bloque width no está establecida. ¿Alguien sabe como evitarlo?
Desde ya gracias!

Abajo el´código que uso:

Dim priC As Integer
Dim cadena As String
Dim PriL As Integer

Private Sub CommandButton1_Click() ' botón "BUSCAR"
'declaramos una variable llamda cadena de tipo STRING
Dim cadena As String
'cadena es lo que el usuario tipea dentro de un INPUTBOX
cadena = InputBox("Ingrese el Apellido o nombre , o bien solo parte del mismo." & vbCrLf & "Buscaremos coincidencias con su ingreso dentro de lista de asistencia.", " Búsqueda por nombre del alma")
'si no escriben más de dos caracteres desechar la busqueda
If Len(cadena) < 2 Then GoTo fin
'en caso de error continue
On Error Resume Next
'busqueda
Cells.Find(What:=cadena, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate

Cells.FindNext(After:=ActiveCell).Activate
priC = ActiveCell.Column
PriL = ActiveCell.Row

fin: Exit Sub
End Sub
--------------------------------------------------------------
Private Sub CommandButton2_Click() ' botón "SIGUIENTE"
Cells.FindNext(After:=ActiveCell).Activate
If ActiveCell.Column = priC And ActiveCell.Row = PriL Then jeje = MsgBox("Busqueda Finalizada. Esta celda es la primera coincidencia", vbCritical, "No hay más coincidencias")

End Sub

Última edición por DIDAKE; 08/09/2011 a las 07:01
  #2 (permalink)  
Antiguo 12/09/2011, 08:20
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Excel y Vba

No dices donde te da el error, pero supongo que será en esta linea:

Código vb:
Ver original
  1. Cells.Find(What:=cadena, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
  2. xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
  3. , SearchFormat:=False).Activate

tienes que poner:

Código vb:
Ver original
  1. Set RangeObj = Cells.Find(What:=cadena, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
  2. xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
  3. , SearchFormat:=False)
  4.  
  5. If RangeObj Is Nothing Then MsgBox "Not Found" Else RangeObj.Activate

Etiquetas: excel, vb, vba, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:23.