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

VBA Discussion :

bouton chercher/suivant formulaire


Sujet :

VBA

  1. #1
    Invité
    Invité(e)
    Par défaut bouton chercher/suivant formulaire
    Bonjour,

    Je suis actuellement en train de créer un formulaire pour rechercher des personnes inscrites dans ma feuille excel en fonction du nom que l'utilisateur rentre dans le formulaire (sachant que plusieurs personnes peuvent avoir le même nom de famille). Si le nom est trouvé l'ensemble des informations s'affichent dans le formulaire et l'utilisateur aura la possibilité d'appuyer sur un bouton "trouvé" si c'est la personne qu'il cherche ou "chercher/suivant" si ce n'est pas le bon nom et ainsi il cherchera s'il y a d'autres personne à ce nom. Si l'utilisateur clique sur "trouvé " il aura ensuite la possibilité de modifier les informations (j'ai réussi).

    Mon problème est pour programmer le bouton "chercher/suivant", voici ce que j'ai fait :

    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
    Sub RecherchePersonne()
     
    Set pers = Worksheets("Les Personnes")
     
    ' Numéro de la ligne
        Dim i As Integer
        ' On commence à 2
        i = 2
     
        'On parcourt toutes les lignes tant que nous ne tombons pas sur le bon nom
        Do While Cells(i, 2).Value <> TbNom.Text And i <> (nbligne(pers) + 1) And ButtonChercheSuivant = True
            i = i + 1
        Loop
     
        'Si le nom est bon on inscrit dans le user form les valeurs de la ligne
        If Cells(i, 2).Value = TbNom.Text Then
            TbId = Cells(i, 1).Value
            TbNom = Cells(i, 2).Value
            TbPrenom = Cells(i, 3).Value
            If Cells(i, 4).Value = "M" Then
            ButtonM = True
            Else
            ButtonF = True
            End If
            TbNaissance = Cells(i, 5).Value
            TbVille = Cells(i, 6).Value
            TbTel = Cells(i, 7).Value
            TbInscri = Cells(i, 8).Value
            LbCollectif = NomActivite(Cells(i, 9).Value)
            LbSport = NomActivite(Cells(i, 10).Value)
            LbArt = NomActivite(Cells(i, 11).Value)
        Else
            MsgBox "Aucune personne de ce nom n'a été trouvée."
            TbNom.Text = ""
        End If
     
    End Sub
    Il affiche la première personne trouvée à ce nom mais lorsque je clique sur "chercher suivant" la personne suivante au même nom de s'affiche pas..Auriez-vous des idées svp?

    Bonne journée à vous !
    Dernière modification par Invité ; 30/03/2021 à 20h25. Motif: Ajout des balises [CODE] mon code [/CODE] (bouton #)

  2. #2
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2019
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2019
    Messages : 53
    Points : 76
    Points
    76
    Par défaut
    Bonsoir à tous
    Bonsoir mfrancois36,

    Si j'ai bien compris, je te propose :

    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
    Sub recherche_personne()
    Dim c As Range
    Dim firstAddress As String
    Dim ligne As Integer
    Dim mavar As String
    Dim response As Integer
     
    With Worksheets("Feuil1").Range("b:b")
     
    ' variable à adapter
    mavar = TextBox1.Value
     
        Set c = .Find(mavar, LookIn:=xlValues, Lookat:=xlWhole)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                ligne = c.Row
                ' l'on vérifie avec une MsgBox qui donne le "Nom, Prénom, ..." de la personne
                response = MsgBox("Nom : " & Range("B" & ligne) & vbCr & vbCr & "Prénom : " & Range("C" & ligne) & vbCr & vbCr & "Est-ce la bonne personne ?", vbYesNo, "  complément de renseignements")
                If response = 6 Then
                    ' on remplit l'USF
                    ' et on sort
                    Exit Sub
                End If
                ' si non on continue la recherche
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
    End Sub
    A te lire

    Eric

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/02/2021, 16h25
  2. [AC-2016] Bouton " Enregistrement suivant " dans formulaire
    Par jajoju dans le forum IHM
    Réponses: 1
    Dernier message: 23/04/2019, 18h56
  3. VBA formulaire boutons précédents suivant
    Par Ana Maria dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/01/2016, 19h23
  4. [AC-2007] Bouton ruban avec actions différentes suivant Formulaire
    Par To12 dans le forum IHM
    Réponses: 1
    Dernier message: 27/05/2009, 11h47
  5. [VB.NET] Gestion des boutons d'un formulaire
    Par dinbougre dans le forum Windows Forms
    Réponses: 4
    Dernier message: 28/01/2005, 09h35

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