Chercher le numéro de la ligne correspondant au textbox

Résolu/Fermé
July74 Messages postés 47 Date d'inscription vendredi 4 avril 2014 Statut Membre Dernière intervention 23 décembre 2018 - Modifié par July74 le 31/03/2016 à 07:02
July74 Messages postés 47 Date d'inscription vendredi 4 avril 2014 Statut Membre Dernière intervention 23 décembre 2018 - 2 avril 2016 à 14:33
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

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 31/03/2016 à 08:45
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
1 avril 2016 à 07:03
0
July74 Messages postés 47 Date d'inscription vendredi 4 avril 2014 Statut Membre Dernière intervention 23 décembre 2018 1
2 avril 2016 à 03:08
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
2 avril 2016 à 07:54
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
July74 Messages postés 47 Date d'inscription vendredi 4 avril 2014 Statut Membre Dernière intervention 23 décembre 2018 1
2 avril 2016 à 14:33
Merci pour l'info.

Merci pour tout!
0