IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

UserForm bouton recherche


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de jo50160
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2006
    Messages : 46
    Par défaut UserForm bouton recherche
    bonjour à tous, je suis à la recherche d'un exemple de code pour faire une recherche par nom et numéro téléphone dans une feuille excel ( bouton dans un userform). Je vous remercie par avance. A+

    Ci-joint fichier pour plus ample information et en esqpèrent trouver bonheur.
    http://www.cijoint.fr/cij387912523056.xls

  2. #2
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Bonjour à tous
    Bonjour jo50160

    Rapidement, mais je n'ai pas essayé (1 janvier oblige...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Dim c, firstAddress As Variant
    Dim lenom As String
    Dim leprenom As String
     
    Sub recherche()
    lenom = textbox1.Text
    leprenom = textbox2.Text
    With Worksheets("Feuil1").Range("a:a")
    Set c = .Find(lenom, LookIn:=xlValues, Lookat:=xlWhole)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                If leprenom = Range.Offset(0, 1) Then textbox3.Text = Range.Offset(0, 3).Value
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
    Tous mes voeux à tout le monde

    Eric

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    Voici un code adapté à ton fichier.

    J'ai assumé que le numéro de téléphone pouvait se retrouver dans les colonnes TF1 et TF2. J'ai aussi assumé que la recherche ne se fait que si tous les champs du formulaire sont renseignés. À toi de voir si ça correspond à tes besoins.

    La recherche se déclanche dans l'évenement Click du bouton cmdRecherche; tu devrais supprimer le bouton OK2 (inutile).

    Tu devrais aussi penser à réinitialiser les champs du formulaire dans UserForm_Initialize() de UserForm2...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Private Sub cmdrecherche_Click()
        Dim c As Range
        Dim firstAddress As String
        Dim rngColNom As Range
        Dim ColTel1 As Long
        Dim ColTel2 As Long
        Dim wksListe As Worksheet
     
        If Me.TextBox1.Value = vbNullString Then
            MsgBox Prompt:="Vous avez oublié de préciser le numéro de téléphone.", Buttons:=vbOK + vbCritical, Title:="Erreur"
            Exit Sub
        ElseIf Me.TextBox2.Value = vbNullString Then
            MsgBox Prompt:="Vous avez oublié de préciser le nom.", Buttons:=vbOK + vbCritical, Title:="Erreur"
            Exit Sub
        End If
     
        Set wksListe = Worksheets("Listes")
     
        Set c = wksListe.UsedRange.Find(What:="Nom")
        If c Is Nothing Then Exit Sub
        Set rngColNom = c.Resize(wksListe.UsedRange.Rows.Count - c.Row, 1)
        Set c = wksListe.UsedRange.Find(What:="TF1")
        If c Is Nothing Then Exit Sub
        ColTel1 = c.Column
        Set c = wksListe.UsedRange.Find(What:="TF2")
        If c Is Nothing Then Exit Sub
        ColTel2 = c.Column
     
        Set c = rngColNom.Find(What:=Me.TextBox2.Value)
        If Not c Is Nothing Then
            Do
                firstAddress = c.Address
                If c.Offset(0, ColTel1 - c.Column).Value = Me.TextBox1.Value Or _
                        c.Offset(0, ColTel2 - c.Column).Value = Me.TextBox1.Value Then
                     wksListe.Cells(c.Row, wksListe.Cells(1).Column).Resize(1, wksListe.UsedRange.Columns.Count).Select
                End If
                If c Is Nothing Then Exit Do
            Loop While Not c.Address = firstAddress
        End If
        Me.Hide
    End Sub
    A+

Discussions similaires

  1. Bouton recherche dans un UserForm
    Par aptagud dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 17/01/2010, 11h28
  2. Création Bouton rechercher dans formulaire
    Par Boubas1 dans le forum IHM
    Réponses: 1
    Dernier message: 06/05/2007, 14h49
  3. Bouton rechercher enregistrement
    Par ludo50 dans le forum Access
    Réponses: 3
    Dernier message: 04/12/2006, 13h27
  4. Bouton Recherche dans access
    Par fouf_01 dans le forum VBA Access
    Réponses: 9
    Dernier message: 23/05/2006, 16h34
  5. Le bouton "rechercher"
    Par shnouf dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 23/05/2006, 12h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo