Imprimir página | Cerrar ventana

Buscar en dos campos

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Excel
Descripción del foro: Foro de Excel y VBA de Excel
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86800
Fecha de impresión: 26/Marzo/2026 a las 17:28


Tema: Buscar en dos campos
Publicado por: Íñigo
Asunto: Buscar en dos campos
Fecha de publicación: 17/Octubre/2023 a las 15:30
¡Hola!

Estoy haciendo el ejercicio de Youtube del siguiente enlace y quiero aprender una cuestión que no explican en el video para mejorar la macro

https://www.youtube.com/watch?v=KH42t9oNvII&list=PLqv8lhx3BTVvdX7NRfg4g24nw2BXbOw29

Como resumen. En el video proponen buscar mediante el código y me gustaría poder buscar por más campos, por ejemplo, por el mail o por el teléfono.

No estoy consiguiendo escribir el código para que pueda buscar en alguno de los tres.

La parte del código que quiero mejorar es la de buscar para habilitar el email y/o el teléfono.

¿Me podéis echar una mano?

¡GRACIAS!

Sub Guardar()
    
    Dim celda As Range
    Dim Fila As Long
    
    If Hoja1.Range("codigo").Value = "" Then
        MsgBox "El código está vacío"
    Else
        Set celda = Hoja2.Range("A:A").Find(what:=Hoja1.Range("codigo").Value, after:=Hoja2.Range("A1"))
        If celda Is Nothing Then
            Fila = Hoja2.Cells(Hoja2.Rows.Count, 1).End(xlUp).Row + 1
            Hoja2.Cells(Fila, 1).Value = Hoja1.Range("codigo").Value
            Hoja2.Cells(Fila, 2).Value = Hoja1.Range("nombre").Value
            Hoja2.Cells(Fila, 3).Value = Hoja1.Range("apellidos").Value
            If IsDate(Hoja1.Range("nacimiento").Value) = False Then
                MsgBox "Formato de fecha incorrecta"
                Eliminar
                Exit Sub
            Else
                Hoja2.Cells(Fila, 4).Value = Hoja1.Range("nacimiento").Value
            End If
            Hoja2.Cells(Fila, 5).Value = Round(Date = Hoja1.Range("Nacimiento").Value / 365, 0)
            Hoja2.Cells(Fila, 6).Value = Hoja1.Range("telefono").Value
            Hoja2.Cells(Fila, 7).Value = Hoja1.Range("email").Value
            
            MsgBox "Cliente guardado"
        Else
            MsgBox "Cliente ya existente"
        End If
            Hoja1.Range("codigo").Value = ""
            Hoja1.Range("nombre").Value = ""
            Hoja1.Range("apellidos").Value = ""
            Hoja1.Range("telefono").Value = ""
            Hoja1.Range("email").Value = ""
            Hoja1.Range("nacimiento").Value = ""
    End If
End Sub

Sub Eliminar()
    Dim celda As Range
    
    If Hoja1.Range("Codigo").Value = "" Then
        MsgBox "Introduce un código"
    Else
        Set celda = Hoja2.Range("A:A").Find(what:=Hoja1.Range("Codigo").Value, after:=Hoja2.Range("A1"))
        If celda Is Nothing Then
            Hoja1.Range("Codigo").Value = ""
            MsgBox "Código no encontrado"
        Else
            celda.EntireRow.Delete
        End If
    End If
End Sub

Sub Limpiar()
    Hoja1.Range("B5").Value = ""
    Hoja1.Range("E5").Value = ""
    Hoja1.Range("B7").Value = ""
    Hoja1.Range("E7").Value = ""
    Hoja1.Range("B9").Value = ""
    Hoja1.Range("E9").Value = ""

End Sub

Sub Buscar()
    
    Dim celda As Range
    
    If Hoja1.Range("Codigo") = "" Then
        MsgBox "Escribe un código para buscar"
    Else
        Set celda = Hoja2.Range("A:A").Find(what:=Hoja1.Range("Codigo").Value, after:=Hoja2.Range("A1"))
        If celda Is Nothing Then
            Hoja1.Range("Codigo") = ""
            MsgBox "Código no introducido"
        Else
            Hoja1.Range("Nombre").Value = celda.Offset(0, 1).Value
            Hoja1.Range("Apellidos").Value = celda.Offset(0, 2).Value
            Hoja1.Range("Nacimiento").Value = celda.Offset(0, 3).Value
            Hoja1.Range("Telefono").Value = celda.Offset(0, 5).Value
            Hoja1.Range("Email").Value = celda.Offset(0, 6).Value
        End If
    End If
End Sub




Respuestas:
Publicado por: emiliove
Fecha de publicación: 17/Octubre/2023 a las 16:38
No abrí el enlace, pero se me figuro que hablas de Excel y te moví el mensaje al foro adecuado.

Saludos.


Publicado por: Íñigo
Fecha de publicación: 17/Octubre/2023 a las 17:07
¡Hola!

Lo había colocado en VBA ya que era de la parte del código de la macro en vez de Excel como tal.

Donde vaya a tener mejor respuesta, ahí lo podemos dejar.

¡Gracias!



Imprimir página | Cerrar ventana