Récupérer dans une cellule la valeur saisie dans l'InputBox

Nonno 94

XLDnaute Occasionnel
Bonsoir le Forum,

Je viens vous soumettre le problème suivant que je n'arrive pas à résoudre; à savoir récupérer dans une cellule la valeur saisie dans une Inputbox pour la comparer avec la valeur trouvée (sélectionnée) par celle-ci et m'assurer que ces 2 valeurs sont bien égales.
Ces valeurs cherchées dans une colonne sont des noms (et des prénoms) et je voudrais si je saisis le nom "Pierre" (prénom Jean) que la macro ne sélectionne pas le nom "Dupond" (prénom Pierre).
Je pense donc que pour cela il faut comparer le nom saisi dans l'InputBox avec celui qui va être sélectionné et afficher un message d'erreur si dans l'exemple ci-dessus le Prénom "Pierre" est sélectionné et pas le Nom "Pierre".



Le code que j'utilise est le suivant :

Code:
Private Sub CommandButton31_Click()

  On Error GoTo GestErreur

noms = InputBox("Saisissez le Nom du Locataire", "Sélection du Locataire", xpos:=300, ypos:=300)
Range("G6").Select
a = [G6:G57].Find(What:=noms, after:=ActiveCell, LookIn:=xlValues, LookAt _
        :=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Address
    If a = "" Then
    
GestErreur:
  MsgBox "Ce Nom n'existe pas dans la Liste des Locataires!"
    
    End
    Else

    Range(a).Select
    
    
    End If

End Sub

Peut-être est-il plus simple d'afficher le message d"erreur tant que le Nom et le Prénom n'ont pas été saisis correctement ?

Je vous remercie pour vos réponses et vous souhaite une bonne soirée.

Cordialement.

Nonno 94.
 
Dernière édition:

laurent950

XLDnaute Accro
Re : Récupérer dans une cellule la valeur saisie dans l'InputBox

Bonsoir Nonno 94,

je sais pas si cela correspond à cela ?

Code :

Private Sub CommandButton31_Click()

On Error GoTo GestErreur

noms = InputBox("Saisissez le Nom du Locataire", "Sélection du Locataire", xpos:=300, ypos:=300)
Range("G6").Select
a = [G6:G57].Find(What:=noms, after:=ActiveCell, LookIn:=xlValues, LookAt _
:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Address
If a = "" And noms = "" Then ' a = la recherche dans la liste et noms la variable qui
' qui contient le noms saisie de l 'iputbox (Enfin and =
' et entre les deux le comparateur absolu si ls deux
' deux condition sont réuni "la condition est vrais")

GestErreur:
MsgBox "Ce Nom n'existe pas dans la Liste des Locataires!"

End
Else

Range(a).Select


End If

End Sub

Laurent
 

job75

XLDnaute Barbatruc
Re : Récupérer dans une cellule la valeur saisie dans l'InputBox

Bonsoir,

Code:
Private Sub CommandButton31_Click()
Dim nom$, a As Range
nom = InputBox("Saisissez le Nom du Locataire", "Sélection du Locataire", xpos:=300, ypos:=300)
Set a = [G6:G57].Find(nom, LookIn:=xlValues, LookAt:=xlPart)
If a Is Nothing Then MsgBox "Ce Nom n'existe pas dans la Liste des Locataires!": Exit Sub
a.Select
End Sub
A+
 

Nonno 94

XLDnaute Occasionnel
Re : Récupérer dans une cellule la valeur saisie dans l'InputBox

Bonsoir Laurent950 et Job 75 et merci pour vos réponses.

Celles-ci ne correspondent malheureusement pas à ma demande car vos codes sélectionnent les mots ou parties de mots présents dans la colonne.
Ainsi, dans la liste suivante,
- si je saisis "Ba"dans l'InputBox, je vais sélectionner "Bachelin" alors que je voudrais que s'affiche un message d'erreur car "Bailly" correspond également à la saisie dans l'InputBox.
- si je saisis "Fr", je vais sélectionner "Bachelin" parceque le prénom de Bachelin est "François".
- si je saisis "et", je vais sélectionner "Bachelin" parceque le "Locataire est "Bachelin Frank et Karine.

Dans ces 3 cas, la saisie dans l'Inputbox est erronée et ne devrait pas permettre de sélectionner un "Locataire" !


Code:
Bailly Christelle
Bachelin Frank et Karine
Ferreira Sandrine
Lala Arf
Lala Arf 2

Aussi, ce que souhaiterais est d'être obligé de saisir le Nom et le Prénom pour être sur de bien sélectionner le "Locataire" voulu.
Dans le cas d'une saisie incomplète, un message d'erreur s"afficherait indiquant que ce nom n'existe pas dans la liste.

Est-ce possible ?
Faut-il comparer (tester) la Saisie dans l'InputBox avec le Locataire sélectionné et afficher un message d'erreur tant qu'ils ne sont pas identiques; à savoir Nom et Prénom saisis = Nom et Prénom du "Locataire" sélectionné dans la colonne ?

Bonne soirée.
Nonno 94.
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Récupérer dans une cellule la valeur saisie dans l'InputBox

Re Nonno 94,

Comme maintenant nous savons que le nom est toujours avant le prénom avec l'espace comme séparateur :

Code:
Private Sub CommandButton31_Click()
Dim nom$, a As Range
nom = InputBox("Saisissez le Nom du Locataire", "Sélection du Locataire", xpos:=300, ypos:=300)
Set a = [G6:G57].Find(nom & " *", LookIn:=xlValues, LookAt:=xlWhole)
If a Is Nothing Then MsgBox "Ce Nom n'existe pas dans la Liste des Locataires!": Exit Sub
a.Select
End Sub
Edit : Bien évidemment si vous voulez qu'on entre nom+prénom (laborieux...), il suffit d'utiliser :

Code:
Private Sub CommandButton31_Click()
Dim nom$, a As Range
nom = InputBox("Saisissez le Nom du Locataire", "Sélection du Locataire", xpos:=300, ypos:=300)
Set a = [G6:G57].Find(nom, LookIn:=xlValues, LookAt:xlWhole)
If a Is Nothing Then MsgBox "Ce Nom n'existe pas dans la Liste des Locataires!": Exit Sub
a.Select
End Sub
A+
 
Dernière édition:

Nonno 94

XLDnaute Occasionnel
Re : Récupérer dans une cellule la valeur saisie dans l'InputBox

Re Job 75,

je voulais peut-être prolonger le "suspense" ?
Bravo pour ce code qui permet de sélectionner le Nom voulu.
Mais, quid si 2 locataires portent le même nom ?
La liste n'est pas classée dans l'ordre alphabétique mais dans un ordre chronologique).
De ce fait, si Dupont Jean se trouve sur la ligne 1, Dupont Pierre sur la 50 (caché en bas de page) et si je saisis Dupont ignorant qu'il y a 2 Dupont dans la liste, je ne sélectionnerai jamais Dupont Pierre !

Une solution "à la Nonno" = renommer Dupont Pierre Dupond Pierre !
Une solution "informatiquement" correcte me semble s'imposer !

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Récupérer dans une cellule la valeur saisie dans l'InputBox

Bonjour Nonno 94, le fil,

Mais, quid si 2 locataires portent le même nom ? (...)

Une solution "informatiquement" correcte me semble s'imposer !

Au lieu de se casser la tête avec du code VBA (bancal) utiliser la commande Rechercher d'Excel (Ctrl+F).

Elle a vraiment tout ce qu'il faut pour trouver toutes les cellules qui répondent au même critère.

A+
 

Nonno 94

XLDnaute Occasionnel
Re : Récupérer dans une cellule la valeur saisie dans l'InputBox

Bonjour Job 75,

il est exact que la fonction "Recherche" me conviendrait parfaitement; à condition que la liste soit triée dans l'ordre alphabétique.
Ce n'est pas le cas. Aussi, je vais utiliser un des 2 codes transmis.

Encore merci et très bonne journée.
Cordialement.

Nonno 94.
 

Discussions similaires

Statistiques des forums

Discussions
312 343
Messages
2 087 442
Membres
103 546
dernier inscrit
mohamed tano