Vba, fonction find bis

Fermé
Alex - 17 févr. 2009 à 11:43
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 19 févr. 2009 à 09:02
Bonjour,
Je voudrais sur vba, accorder plusieurs résultat avec la fonction find, en effet mon problème etant que si je ne tape pas le nom entier alor il m'affiche dans ma textbox le résultat le plus près...
Merci d'avance
Voici le code :
Private Sub Rechercher_Click()

Dim Recherche As Long

On Error Resume Next
Recherche = Range("A2:A999").Find(NomLivreBox.Value).Row
If Err.Number > 0 Then
Rep = MsgBox("Aucun résultat trouvé, veuillez vérifier que le nom est bien écrit...", vbCritical + vbOKOnly, "Aucun Résultat Trouvé")
NomLivreBox.SetFocus
Exit Sub
Else
If NomLivreBox = "" Then
Rep = MsgBox("Veuillez d'abord taper le nom du livre a chercher...", vbCritical + vbOKOnly, "Attention")
Else
NomLivreTrouvéBox.Value = Cells(Recherche, 1)
NomAuteurTrouvéBox.Value = Cells(Recherche, 2)
RésuméTrouvéBox.Value = Cells(Recherche, 3)
GenreTrouvéListBox.Value = Cells(Recherche, 4)

UserForm1.NomLivreTrouvéBox.Visible = True 'TextBox correspondant au résultat de la recherche'
UserForm1.NomLivreTrouvé.Visible = True 'Label Nom Du Livre Trouvé Apparaît'
UserForm1.NomLivreTrouvéBox.Visible = True 'TextBox correspondant au nom du livre Trouvé'
UserForm1.NomAuteurTrouvéBox.Visible = True 'TextBox correspondant au résultat de la recherche du nom du livre'
UserForm1.NomAuteurTrouvé.Visible = True 'Label " Nom de l'auteur trouvé" Apparaît '
UserForm1.GenreTrouvéListBox.Visible = True 'ComboBox correspondant au genre que l'utilisateur veut modifier'
UserForm1.GenreLivreTrouvé.Visible = True 'Label "Genre Du Livre Trouvé" '
UserForm1.RésuméTrouvé.Visible = True 'Label "Résumé Trouvé" '
UserForm1.RésuméTrouvéBox.Visible = True 'TextBox correspondant au résumé'
UserForm1.NomAuteurModifié.Visible = True 'Label "Nom De L'Auteur Modifié" '
UserForm1.NomAuteurModifiéBox.Visible = True 'TextBox correspondant a la modification du nom de l'auteur"
UserForm1.NomLivreModifié.Visible = True 'Label "Nom Du Livre Modifié" '
UserForm1.NomLivreModifiéBox.Visible = True 'TextBox correspondant a la modification du nom du livre'
UserForm1.RésuméModifié.Visible = True 'Label "Résumé Modifié" '
UserForm1.RésuméModifiéBox.Visible = True 'TextBox correspondant a la modification du résumé'
UserForm1.GenreLivreModifier.Visible = True 'Label "Genre Livre A Modifier" '
UserForm1.GenreLivreTrouvé.Visible = True 'Label correspondant au résumé'
UserForm1.ModifierDonnées.Visible = True 'Bouton Modifier Données'
UserForm1.GenreModifierListBox.Visible = True 'ComboBox correspondant au genre que l'utilisateur veut modifier'

UserForm1.NomLivreModifiéBox.Text = "Ecrivez ici le nouveau nom à attribué au livre..."

End If
End If
On Error GoTo 0

End Sub

7 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
17 févr. 2009 à 13:38
Bonjour,
Serait plus façile à l'initialisation de l'UF de mettre la colonne des titres dans un comboBox, ce qui permettrait d'avoir une recherche simplement en tapant le début du titre dans la barre texte du combo.
Si les titres ne sont pas par ordre alpha dans la feuille, il faut mettre 2 colonnes dans le combo pur mémoriser la ligne.
et si tout les contrôles doivent êtres mis en visible après sélection serait plus simple d'employer une boucle sur tout les contrôles de l'UF.
A+
0
Alor j'ai rien compris a votre réponse ^^ pourriez vous modifier mon code pour me permettre de comprendre ?
merci d'avance
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
18 févr. 2009 à 08:56
bonjour,
ce que lermite222, a dit est juste.
En fait vous voulez créer une fonctionnalité qui existe déjà....

Dans les objets utilisables sur un userform
il y a le textbox (zone de texte pour une saisie par l'utilisateur, souvent des données uniques)
le liste box ( liste prédéfinie que l'utilisateur ne modifie pas)
le combobox qui un textbox + un liste box
ce qui signifie que l'utilisation du combobox serait plus adapté dans ton cas.
Lorsque l'utilisateur saisie un texte, celui-ci est automatiquement recherché ( pas de code à écrire)
c'est la première entrée trouvée qui est renvoyée.

il suffit de rajouter un teste pour savoir si l'entrée existe dans la liste et de l'ajouter ou de la refuser
selon le choix.

A+
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
18 févr. 2009 à 09:29
Met ton classeur (éventuellement alléger) sur Cjoint.com et mettre le lien dans un poste suivant.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Voila le lien ci joint,
https://www.cjoint.com/?cuoCGcrPgK
merci d'abord pour le temps que vous m'accorder et ce site d'entraide.
pour finir je vous demanderai juste de mettre des commentaires visibles sur les eventuelles modification que vous porterez sur mon fichier car comme ceci je pourrais comprendre et pouvoir ensuite gérer mes futur problèmes portant sur ce point...
merci encore
0
veuillez m'escuser,
voici le bon lien : https://www.cjoint.com/?cuoGmEbRPO
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
19 févr. 2009 à 09:02
Aucun des liens ne fonctionne.
Mettre le classeur et pas seulement la form (pas zipé)
Et de préférence en xls (2003)
0