Excel - BUSCAR UNA FILA CON VARIAS CONDICIONES CON VBA

   
Vista:

BUSCAR UNA FILA CON VARIAS CONDICIONES CON VBA

Publicado por DAVID (9 intervenciones) el 15/06/2017 21:42:03
SALUDOS A TODOS, ME PODRIAN AYUDAR CON EL SIGUIENTE PROBLEMA QUE TENGO EN VISUAL BASIC - EXCEL;

QUIERO BUSCAR LA UBICACIÓN DE UNA FILA PERO CON DIFERENTES CONDICIONES, ESTO DEBIDO A QUE TENGO DATOS REPETIDOS ES LAS CELDAS Y CUANDO APLICO LA PROPIEDAD "FIND" FUNCIONA PERO ME DEVUELVE LA UBICACIÓN DEL PRIMER DATO, POR EJEMPLO:

2 14/06/2017 ABRAZADERA Aº Gº DOBLE P/POSTE DE BAJA150 MM S / M UND 33.00 Entrada
2 14/06/2017 ABRAZADERA Aº Gº DOBLE P/POSTE DE BAJA150 MM S / M UND 25.00 Salida
2 05/10/2017 ABRAZADERA Aº Gº DOBLE P/POSTE DE BAJA150 MM S / M UND 40.00 Entrada


CUANDO BUSCO UN MATERIAL POR SU CODIGO "2" ME ENCUENTRA LA PRIMER ARGUMENTO PERO NECESITO LOS DATOS DEL TERCER ARGUMENTO ES PERO ESO QUE QUIERO ESCONTRAR LA UBICACIÓN DE LA FILA CON OTRAS CONDICIONES:

BUSCAR EL CODIGO "2" , CON FECHA "05/10/2017", CANTIDAD DE "40" Y CON LA OPCIÓN DE "ENTRADA"

SE AGRADECE SUS APORTES.
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
Imágen de perfil de Andres Leonardo

BUSCAR UNA FILA CON VARIAS CONDICIONES CON VBA

Publicado por Andres Leonardo (1050 intervenciones) el 16/06/2017 00:00:03
Haber definamos cuantos registros me va devolve 1

si es asi podrias concatenar los 3 parametros de busqueda a fin de que la celda se haga unica y mandas a buscar el registro UNICO

Lo otro seria con VBA para que te muestre mas de UNO



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

BUSCAR UNA FILA CON VARIAS CONDICIONES CON VBA

Publicado por DAVID (9 intervenciones) el 16/06/2017 00:47:02
EL PROBLEMA DE CONCATENAR ES QUE SE VA A VOLVER LENTO EL PROCESO PORQUE NO SOLO SON 3 DATOS POR LO MENOS ES MAS DE 1000 DATOS, ES POR ESO QUE QUIERO BUSCAR OTRA SOLUCIÓN,.

Y LO QUE NECESITO ES LA UBICACIÓN DE LA FILA QUE CUMPLE CON ESAS CONDICIONES, LO HICE CON LA PROPIEDAD "FIND" PERO, LO QUE HASTA EL MOMENTO CONOZCO DE ESTA PROPIEDAD, SOLO ME ADMITE UNA CONDICIÓN Y PARA LA UBICACIÓN DE LA FILA UTILICE "ROW" Y SOLO RECONOCE EL PRIMER DATO QUE CUMPLE DICHA CONDICIÓN, YA QUE HAY VALORES REPETIDO.
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
Imágen de perfil de Andres Leonardo

BUSCAR UNA FILA CON VARIAS CONDICIONES CON VBA

Publicado por Andres Leonardo (1050 intervenciones) el 16/06/2017 16:40:20
Te invito que subas un archivo de ejemploi
me des las 3 condiciones y lo hacemos en VBA

algo asi


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub BuscarCelda(inicio As Integer) 'Siempre enviar 2 pra que sea desde el inicio , caso contrario enviar desde donde se busca.
      Dim x As Integer
      ' Establecer numrows = número de filas de datos.
      NumRows = Range("A2", Range("A2").End(xlDown)).Rows.Count
      ' Seleccionar celda a1 suponiendo que sea en la A
      If NumRows > inico Then
        MsgBox "El registro donde inicia la busqueda esta vacio"
        Exit Sub
      End If
      Range("A" & inicio).Select
      ' Establecer valor "For" para que vaya de bucle el bucle durante "numrows" veces.
      For x = 1 To NumRows
         If Cells(x, "A").Value = Criterio1 And Cells(x, "A").Value = Criterio1 And Cells(x, "A").Value = Criterio1 Then
            MsgBox "Registro Encontrado en el registro  " & x
         End If
      Next
End Sub


saludos
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

BUSCAR UNA FILA CON VARIAS CONDICIONES CON VBA

Publicado por DAVID (9 intervenciones) el 16/06/2017 18:36:15
Adjunto archivo,

MI ARCHIVO FUNCIONA DE LA SIGUIENTE MANERA:

SE HA CREADO UNA MACRO PARA REGISTRAR TODAS LAS SALIDAS, INGRESOS Y DEVOLUCIONES DE MATERIALES EN UNA SOLA TABLA, TODO FUNCIONA BIEN PERO CUANDO ESTABA INGRESANDO UN MATERIAL ME EQUIVOQUE DE CANTIDAD Y QUERÍA CORREGIRLO TAMBIÉN HICE UNA MACRO DONDE ME DESCARGUE TODOS LOS MATERIALES REGISTRADOS EN UN LISTBOX, SE REALIZÓ Y FUNCIONA, Y CUANDO HAGO CLIC EN ALGÚN MATERIAL DEL LISTBOX SE INGRESA AUTOMÁTICAMENTE EN VARIOS COMBOBOX Y TEXTBOX, LUEGO DE ESTO, DEL MATERIAL QUE HE SELECCIONADO QUIERO MODIFICAR LA CANTIDAD PARA CORREGIRLO, Y CUANDO SE EJECUTA LA MACRO ME DETECTA SOLO EL PRIMER REGISTRO QUE COINCIDE CON LA CONDICIÓN DADA Y MODIFICA LA CANTIDAD NUEVA INGRESADA, CORRIGIENDO UN REGISTRO DIFERENTE AL SELECCIONADO EN EL LISTBOX.

Y ES POR ESO QUE QUIERO BUSCAR LA UBICACIÓN DE LA FILA QUE CUMPLA CON VARIAS CONDICIONES DE TAL MANERA QUE SE MODIFIQUE EL MATERIAL SELECCIONADO EN EL LISTBOX.
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
Imágen de perfil de Andres Leonardo

BUSCAR UNA FILA CON VARIAS CONDICIONES CON VBA

Publicado por Andres Leonardo (1050 intervenciones) el 16/06/2017 20:07:45
pero tienes con clave el codigo en todo caso pasame el codigo de la macro que tienes la buscqueda entonces....
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

BUSCAR UNA FILA CON VARIAS CONDICIONES CON VBA

Publicado por DAVID (9 intervenciones) el 16/06/2017 20:19:38
DISCULPA SE ME FUE, ADJUNTO DE NUEVO.
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
Imágen de perfil de Andres Leonardo

BUSCAR UNA FILA CON VARIAS CONDICIONES CON VBA

Publicado por Andres Leonardo (1050 intervenciones) el 16/06/2017 21:44:48
eSTOY INTENTANDO LA BUSQUEDA pero no entiendo algo
quieres que llene los textbox o que los ponga en el list

otra pregunta por que tienes mas de 3 requerimientos para la busquda aqui hya 5 o cual es la que buscas.

If BOX_MATERIAL.Text = "" Or BOX_EJECUTOR.Text = "" Or TEXT_CANTIDAD.Text = "" Or TEXT_ENTREGADO_A.Text = " " Or TEXT_FECHA.Text = "" Then 'CONDICIÓN PARA PODER EDITAR
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

BUSCAR UNA FILA CON VARIAS CONDICIONES CON VBA

Publicado por DAVID (9 intervenciones) el 16/06/2017 22:49:13
EL CÓDIGO ES DE LA OPCIÓN MODIFICAR, DONDE QUIERO QUE VAYA VARIAS CONDICIONES ES EN LA PARTE DONDE DICE "SET BUSCAR =....." ASÍ SOLO BUSCO MEDIANTE EL CÓDIGO, QUIERO BUSCAR ADEMAS DE ESTE LA CANTIDAD, LA FECHA Y TIPO DE ACCIÓN. HE ESTADO INTENTADO CON LA PROPIEDAD FOR NEXT Y SOLO LOGRO CAPTURAR LOS VALORES PERO NO LOGRO OBTENER LA FILA ADJUNTO EL CÓDIGO AL QUE ME REFIERO.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
Private Sub BOTON_MODIFICAR_Click()
 
' DEBE ESTAR LA OPCIÓN ACTUALIZAR ACTIVA PARA PODER ACTUALIZAR O CORREGIR UNA SALIDA, ENTRADA O DEVOLUCIÓN
 
    If OP_ACTUALIZAR = False Then
 
        MsgBox "Debe seleccionar la opción actualizar", vbExclamation, "Resultado"
 
        Exit Sub
 
    End If
 
' PARA AGREGAR A LOS TEXTBOX PARA EDITARLO
 
Dim sonsat As Long, sor As String
Dim CODIGO As String, FECHA As String, CANTIDAD As String, ACCION As String
Dim BUSCAR As Range
Dim ULTFILA As Long, X As Integer
 
If BOX_MATERIAL.Text = "" Or BOX_EJECUTOR.Text = "" Or TEXT_CANTIDAD.Text = "" Or TEXT_ENTREGADO_A.Text = " " Or TEXT_FECHA.Text = "" Then 'CONDICIÓN PARA PODER EDITAR
 
    MsgBox "DEBE INGRESAR TODOS LOS DATOS REQUERIDOS PARA EDITAR EL MATERIAL SELECIONADO", vbCritical
 
    Exit Sub
 
End If
 
sor = MsgBox("Está seguro?", vbYesNo)
 
If sor = vbNo Then Exit Sub
 
CODIGO = MATERIALES.LISTA_MATERIALES.List(MATERIALES.LISTA_MATERIALES.ListIndex, 0)
FECHA = MATERIALES.LISTA_MATERIALES.List(MATERIALES.LISTA_MATERIALES.ListIndex, 1)
CANTIDAD = MATERIALES.LISTA_MATERIALES.List(MATERIALES.LISTA_MATERIALES.ListIndex, 5)
ACCION = MATERIALES.LISTA_MATERIALES.List(MATERIALES.LISTA_MATERIALES.ListIndex, 6)
 
ULTFILA = Sheets("S.E.D MATERIAL").Cells(Rows.Count, "A").End(xlUp).Row
 
For X = 4 To ULTFILA
 
    A = Range("A" & X).Value
    B = Range("B" & X).Value
    F = Range("F" & X).Value
    G = Range("G" & X).Value
 
    If A = CODIGO And B = FECHA And F = CANTIDAD And G = ACCION Then
 
    CODIGO = A
 
    Set BUSCAR = Sheets("S.E.D MATERIAL").Range("A:A").Find(CODIGO, LOOKAT:=xlWhole) 'ME DA EL CODIGO
 
    sonsat = BUSCAR.Row
 
    MsgBox sonsat
 
    End If
 
Next X
 
 
Sheets("S.E.D MATERIAL").Cells(sonsat, 1) = MATERIALES.BOX_CODIGO.Text
Sheets("S.E.D MATERIAL").Cells(sonsat, 2) = CDate(MATERIALES.TEXT_FECHA)
Sheets("S.E.D MATERIAL").Cells(sonsat, 3) = MATERIALES.BOX_MATERIAL.Text
Sheets("S.E.D MATERIAL").Cells(sonsat, 4) = MATERIALES.TEXT_MARCA.Text
Sheets("S.E.D MATERIAL").Cells(sonsat, 5) = MATERIALES.TEXT_UNIDADES.Text
Sheets("S.E.D MATERIAL").Cells(sonsat, 6) = MATERIALES.TEXT_CANTIDAD.Value
Sheets("S.E.D MATERIAL").Cells(sonsat, 7) = MATERIALES.BOX_ACCION.Text
Sheets("S.E.D MATERIAL").Cells(sonsat, 8) = MATERIALES.TEXT_CONTRATISTA.Text
Sheets("S.E.D MATERIAL").Cells(sonsat, 9) = MATERIALES.TEXT_TIENDA.Text
Sheets("S.E.D MATERIAL").Cells(sonsat, 10) = MATERIALES.TEXT_DEVOLUCION.Text
Sheets("S.E.D MATERIAL").Cells(sonsat, 11) = MATERIALES.BOX_LUGAR.Text
Sheets("S.E.D MATERIAL").Cells(sonsat, 12) = MATERIALES.TEXT_ENTREGADO_A.Text
Sheets("S.E.D MATERIAL").Cells(sonsat, 13) = MATERIALES.BOX_EJECUTOR.Text
Sheets("S.E.D MATERIAL").Cells(sonsat, 14) = MATERIALES.TEXT_OBSERVACIÓN.Text
 
 
 
MsgBox "Los datos del material han sido editados", vbInformation
 
    BOX_CODIGO = Empty
    BOX_MATERIAL = Empty
    BOX_ACCION = Empty
    TEXT_MARCA = Empty
    TEXT_UNIDADES = Empty
    TEXT_CANTIDAD = Empty
    TEXT_FECHA = Empty
    TEXT_CONTRATISTA = Empty
    TEXT_TIENDA = Empty
    BOX_LUGAR = Empty
    TEXT_ENTREGADO_A = Empty
    BOX_EJECUTOR = Empty
    TEXT_OBSERVACIÓN = Empty
    TEXT_DEVOLUCION = Empty
    MATERIALES.LISTA_MATERIALES.Clear
    MATERIALES.TEXT_TOTALREGISTROS = Empty
 
End Sub
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
Revisar política de publicidad