Base de datos con buscador de clientes desde cualquier campo

Para Dante Amor (3a parte de la base de datos)

Tengo una base de datos de clientes, con la particularidad que los clientes se ubican en hojas distintas segun el campo "CENTRO".

Quiero poner un formulario con buscador para localizar clientes desde cualquiera de sus campos.

¿Me ayudarías con las macros?

2 Respuestas

Respuesta
1

Localizar al cliente puede ser bien para consultar información de todos los campos de ese cliente o bien para modificar alguno de esos campos.

Respuesta
1

Pero una vez localizado el cliente, ¿qué se tiene que hacer?

Localizar al cliente puede ser bien para consultar información de todos los campos de ese cliente o bien para modificar alguno de esos campos

Pero si buscas por cualquier campo pueden existri varias coincidencias, entonces en donde quieres el resaltado, ¿en un listox?

¿Mmmm qué es un listox?

¿

Pues que sugieres tu maestro?

Yo te recomendaría, para empezar, que tuvieras en una sola hoja todos los clientes y en una columna pusieras el centro al que pertenece. Es muy complicado estar manejando varias hojas. Pero como tú decidas.

No sé qué es lo que esperas de resultado, primero analiza qué es lo que necesitas y después le ponemos las macros, de lo contrario estaremos haciendo macros que quizás no te sirvan.

La verdad es que me va bien tener una hoja para cada centro, si podemos hacerlo de esta manera mucho mejor.

El concepto es el siguiente, si es técnicamente posible o no...luego me dices:

1. Lanzamos el formulario.

2. Completamos los campos que conozcamos del cliente a buscar, como por ejemplo "nombre" y "apellido 1". Todos los campos completados cuentan para acercarnos al valor, si por ejemplo además completamos "nif" nos aproximaremos más al cliente que buscamos.

3. Al darle al botón "buscar clientes" muestre una lista con las mejores coincidencias para poder escoger al cliente.

4. Una vez escogido al cliente se mostrarán todos los campos que tengamos de ese cliente.

5. Posteriormente con el botón "modificar cliente" podríamos editar sus campos.

;)

Dante Amor si es muy complicado hacer cada centro en una hoja, se me ocurre que podemos poner todos los clientes en una sola hoja matriz y luego crearme yo todas las hojas de cada centro llamando a los clientes de la matriz con consultaV, de esta manera también me iría bien

No te preocupes, hacemos una hoja para cada centro.

Envíame por correo la última versión de tu archivo, recuerda poner tu nombre de usuario en el asunto del correo.

ok te lo acabo de enviar, gracias Dante Amor 

H o l a:

Te anexo la macro para buscar clientes y poner en una lista las coincidencias.

Private Sub CommandButton3_Click()
'Por.Dante Amor
'Consultar
    Set hf = Sheets("Filtro")
    hf.Cells.Clear
    ListBox1.RowSource = ""
    j = 2
    Sheets(1).Rows(1).Copy hf.Rows(1)
    For Each h In Sheets
        If h.Name <> hf.Name Then
            For i = 2 To h.Range("A" & Rows.Count).End(xlUp).Row
                If h.Cells(i, "A") Like "*" & tb_centro & "*" Then
                If h.Cells(i, "B") Like "*" & tb_alta & "*" Then
                If h.Cells(i, "C") Like "*" & TextBox1 & "*" Then
                If h.Cells(i, "D") Like "*" & tb_nombre & "*" Then
                If h.Cells(i, "E") Like "*" & tb_apellido1 & "*" Then
                If h.Cells(i, "F") Like "*" & tb_apellido2 & "*" Then
                If h.Cells(i, "G") Like "*" & tb_edad & "*" Then
                If h.Cells(i, "H") Like "*" & tb_nif & "*" Then
                If h.Cells(i, "I") Like "*" & tb_telefono & "*" Then
                If h.Cells(i, "J") Like "*" & tb_email & "*" Then
                If h.Cells(i, "K") Like "*" & tb_facebook & "*" Then
                    h.Rows(i).Copy hf.Rows(j)
                    hf.Cells(j, "L") = h.Name
                    hf.Cells(j, "M") = i
                    j = j + 1
                End If: End If: End If: End If: End If: End If
                End If: End If: End If: End If: End If
            Next
        End If
    Next
    u = hf.Range("A" & Rows.Count).End(xlUp).Row
    If u = 1 Then
        MsgBox "No hay coincidencias"
    Else
        ListBox1.RowSource = hf.Name & "!A2:M" & u
    End If
End Sub

' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )

Funciona perfecto como siempre Dante Amor , ¡Gracias! 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas