Chercher le numéro de la ligne correspondant au textbox

Résolu
July74 Messages postés 49 Statut Membre -  
July74 Messages postés 49 Statut Membre -
Bonjour,
J'ai vraiment besoin de votre aide.
déjà formuler le titre n'était pas évident.

J'ai une base de données de participants (Feuil2)
Avec un No dossier (Colonne A)
Le Nom (Colonne B)
Le Prénom (Colonne C)

Sur la Feuil1 j'ai mis un Bouton "Cliquer ici"
Celui-ci ouvre un UserForm (UserForm1):
Dans TextBox1 on inscrit le no dossier du participant
Puis en Cliquant sur Rechercher les infos
Avec méthode Find
si no dossier n'a aucune correspondance dans la Colonne A de la Feuil2;
MsgBox "Aucune Correspondance...."

Else;

UserForm2.Show

Nom :
Me.TextBox2 = Sheets("Feuil2").Range("B" & ?)

Prénom :
Me.TextBox3 = Sheets("Feuil2").Range("C" & ?)

??? C'est ici que ça se complique je veux rappeler les infos inscrite dans Feuil2 du no dossier inscrit

Pas facile à expliquer,
j'espère que je suis claire!

Voici le fichier (pour le test No Dossier = 1234)

http://www.cjoint.com/c/FCFeKbcLqQl

Merci d'avance de votre attention,
Et si vous pouvez m'aider, j'apprécierais énormément.
Mes cheveux aussi, car je suis sur le point de me les arracher !!!

4 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    modifs apportés:
    dans module1
    Public Lig As Integer
    Sub Inscription()
    UserForm1.Show
    End Sub


    dans l'userform1
    Private Sub CommandButton1_Click()
    'déclaration des variables :
    Dim Valeur_Cherchee As String, Rep As Byte

    'on cherche le No Dossier
    Valeur_Cherchee = TextBox1.Value

    'traitement de l'erreur possible : Si on ne trouve rien :
    On Error GoTo faux

    'méthode find, ici on cherche la ligne de valeur exacte (LookAt:=xlWhole)
    With Sheets(2)
    Lig = .Columns("A").Find(What:=Valeur_Cherchee, after:=.Range("A1"), LookAt:=xlWhole).Row
    End With
    Unload UserForm1
    UserForm2.Show
    Exit Sub

    'gestionnaire erreur
    faux:
    Rep = MsgBox(Valeur_cherchée & " n'existe pas dans les numéros de dossier !, recommencer ?", vbYesNo)
    Unload UserForm1
    If Rep = vbYes Then UserForm1.Show
    End Sub


    Pas de modifs dans Usf2 :o)

    le classeur
    http://www.cjoint.com/c/FCFgR5TaATt

     Michel
    0
  2. July74 Messages postés 49 Statut Membre 1
     
    Un gros gros merci,

    Tu peux pas savoir l'énorme poids que tu viens de m'enlever.

    Si tu veux encore discuté, j'aimerais savoir si j'ai bien compris le principe?

    La méthode Find par défaut nous donne la valeur cherchée mais en ajoutant .Row

    c'est ça qui nous donne le no ligne?

    En plus ton ajout au niveau du 'gestionnaire erreur
    me plaît énormément c'est super

    Encore merci et encore désolé pour le malentendu
    0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    La méthode Find par défaut nous donne la valeur cherchée mais en ajoutant .Row

    Oui
    il y a aussi Column pour la colonne ; Address pour l'adresse...

    ton ajout au niveau du 'gestionnaire erreur

    ce n'est pas "mon" ajout,c'est une règle classique en VBA , il est vrai, peu utilisée
    0
    1. July74 Messages postés 49 Statut Membre 1
       
      Merci pour l'info.

      Merci pour tout!
      0