Vba, fonction find bis
Alex
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
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
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
A voir également:
- Vba, fonction find bis
- Fonction si et - Guide
- Find and mount - Télécharger - Récupération de données
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
7 réponses
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+
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+
Alor j'ai rien compris a votre réponse ^^ pourriez vous modifier mon code pour me permettre de comprendre ?
merci d'avance
merci d'avance
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+
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+
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
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