Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda con boton buscar siguiente VBA

Estas en el tema de Ayuda con boton buscar siguiente VBA en el foro de Visual Basic clásico en Foros del Web. Buenas !!! estoy trabajando en Excel y tengo una tabla con registros y un boton buscar que funciona introduciendoun CIF. Este boton funciona perfectamente pero ...
  #1 (permalink)  
Antiguo 16/04/2007, 02:41
 
Fecha de Ingreso: abril-2007
Mensajes: 5
Antigüedad: 17 años
Puntos: 0
Ayuda con boton buscar siguiente VBA

Buenas !!!
estoy trabajando en Excel y tengo una tabla con registros y un boton buscar que funciona introduciendoun CIF. Este boton funciona perfectamente pero el problema es que en la tabla puede haber mas de una fila con el mismo CIF por lo que habia pensado poner un boton "buscar siguiente" pero no consigo que funcione. Alguien me puede echar una mano con elcodigo???
  #2 (permalink)  
Antiguo 16/04/2007, 09:45
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 6 meses
Puntos: 13
Re: Ayuda con boton buscar siguiente VBA

Hola

No se si te será de ayuda, pero he grabado una macro con esa acción y para buscar algo utiliza Cells.Find y para buscar el siguiente Cells.FindNext exactamente:

Código:
Cells.FindNext(After:=ActiveCell).Activate
Agur.
  #3 (permalink)  
Antiguo 17/04/2007, 00:39
 
Fecha de Ingreso: abril-2007
Mensajes: 5
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con boton buscar siguiente VBA

Hola, pues me puede valer pero me avanza por columnas y yo quiero que me avance por filas... ¿como cambio eso?
muxas gracias ;)
  #4 (permalink)  
Antiguo 17/04/2007, 01:52
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 6 meses
Puntos: 13
Re: Ayuda con boton buscar siguiente VBA

Hola

Eso lo puedes definir en el método find. Copio y Pego la ayuda.

Cita:
expresión.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

expresión Requerida. Expresión que devuelve un objeto Range .

What Variant requerida. La información que se busca. Puede ser una cadena de caracteres o cualquier tipo de datos de Microsoft Excel.

After Variant opcional. La celda después de la cual se desea buscar. Corresponde a la posición de la celda activa cuando se lleva a cabo una búsqueda desde la interfaz del usuario. Tenga en cuenta que After debe ser una sola celda del rango. Recuerde que la búsqueda empieza después de esta celda; no se buscará en la celda hasta que el método regrese a ella. Si no se especifica este argumento, la búsqueda se iniciará después de la celda de la esquina superior izquierda del rango.

LookIn Variant opcional. Tipo de información.

LookAt Variant opcional. Puede ser una de las siguientes constantes XlLookAt: xlWhole o xlPart.

SearchOrder Variant opcional. Puede ser una de las siguientes constantes XlSearchOrder: xlByRows o xlByColumns.

SearchDirection XlSearchDirection opcional. Dirección de la búsqueda.

XlSearchDirection puede ser una de estas constantes XlSearchDirection.
xlNext valor predeterminado
xlPrevious

MatchCase Variant opcional. True para que la búsqueda distinga entre mayúsculas y minúsculas. El valor predeterminado es False.

MatchByte Variant opcional. Se emplea únicamente en la versión para Lejano Oriente de Microsoft Excel. True para que los caracteres de dos bytes sólo coincidan con caracteres de dos bytes. False para que dichos caracteres coincidan con sus equivalentes de un solo byte.

SearchFormat Variant opcional. Formato de la búsqueda.
Y te pongo un ejemplo de código (sacado de la opción grabar macro)

Código:
Cells.Find(What:="66", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
    Cells.FindNext(After:=ActiveCell).Activate
Si te fijas, en el código SearchOrder pone que busque por filas (xlByRows) también lo puedes poner por columnas (xlByColumns).

Agur.
  #5 (permalink)  
Antiguo 17/04/2007, 01:56
 
Fecha de Ingreso: abril-2007
Mensajes: 5
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con boton buscar siguiente VBA

vale Insomnia, eskerrik asko !!!
me voy a poner a ello aber si soy capaz porque estoy haciendo esto pero yo de VBA no tengo ni idea, jeje.
Muchas gracias, agur !!!
  #6 (permalink)  
Antiguo 17/04/2007, 04:57
 
Fecha de Ingreso: abril-2007
Mensajes: 5
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con boton buscar siguiente VBA

vale. Ya me funciona pero ahora tengo otro problema, cuando acaban las filas vuelve otra vez a la 1º y eso me gustaria que no fuera asi ¿hay forma de cambiarlo?
  #7 (permalink)  
Antiguo 17/04/2007, 08:14
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 6 meses
Puntos: 13
Re: Ayuda con boton buscar siguiente VBA

Apa

Bueno no se como tienes exactamente el código, pero si tienes dos botones (uno para buscar y otro para siguiente) puedes guardar en el primer botón la celda en la que aparece la primera coincidencia, en el segundo, es decir, el de siguiente, te mueves y compruebas si la celda a la que te has movido es la primera.

El código sería algo así (tendras que adaptarlo a tu proyecto):

Código:
Dim priC As Integer
Dim PriL As Integer
Private Sub CommandButton1_Click()
Cells.Find(What:="223", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
priC = ActiveCell.Column
PriL = ActiveCell.Row

End Sub

Private Sub CommandButton2_Click()

    Cells.FindNext(After:=ActiveCell).Activate
    If ActiveCell.Column = priC And ActiveCell.Row = PriL Then MsgBox "Estas en la primera celda"
    
End Sub
En la variable priC guardo la columna y en priL guardo la línea de la primera celda que encuentra.

En el segundo botón me nuevo a la siguiente coincidencia y comparo si es igual a la primera celda, si es así, muestro un mensaje indicándolo.

Agur.
  #8 (permalink)  
Antiguo 19/04/2007, 00:18
 
Fecha de Ingreso: abril-2007
Mensajes: 5
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con boton buscar siguiente VBA

Bien, ya entiendo. Muchas gracias ! Agur
  #9 (permalink)  
Antiguo 31/05/2007, 10:39
 
Fecha de Ingreso: abril-2007
Mensajes: 25
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con boton buscar siguiente VBA

Hola
yo tambien trato de hacer algo similar de busqueda, pero necesito hacer una busqueda y despues de haberlo encotrado que se desplace hacia la derecha una columna por ejemplo, y si no encuentra nada que siga con la siguiente busqueda

buscar 222
posicionar a un lado y copiar, pegar en hoja 1
SI NO ESTA ENTONCES
buscar 223
posicionar a un lado y copiar, pegar en hoja 1
SI NO ESTA ENTONCES
buscar 224

tengo el siguiente codigo, pero no se situa en donde encuentra el valor de busqueda y por consecuencia no hace lo que necesito, en este codigo manda un mensaje de no hay o finalizado, eso lo puedo cambiar pero no he podido activar la celda que contiene el valor, espero me puedan ayudar...

Código:
 Dim n As Range
    Set n = Cells.Find(What:="222")
    If n Is Nothing Then
        MsgBox "nay"
    Else
        MsgBox "Finded"
    End If

le intente asi

Código:
 Dim n As Range
    Set n = Cells.Find(What:="222").activate
     ActiveCell.Offset(0, 1).Value 
    Selection.Copy
    Sheets("Hoja2").Select
    Range("A1").Select
    ActiveSheet.Paste
    
       If n Is Nothing Then
         Cells.FindNext(After:=ActiveCell).Activate
      
      Set n = Cells.Find(What:="223").activate
     ActiveCell.Offset(0, 1).Value 
    Selection.Copy
    Sheets("Hoja2").Select
    Range("A2").Select
    ActiveSheet.Paste



    Else
        MsgBox "Finded"
    End If
que es lo que me falta, me ayudo con estos foros, el F1 y algunos tutoriales y aun no he dado con este problemita
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 08:43.