Saisie d'un code et résultat de la recherche =même cellule

Bonjour

Comme le dit le titre du sujet,

Je souhaiterais que le résultat de la recherche s'inscrive dans la cellule de recherchce:

dans le fichier joint il y a un tableau (A1-AR100) puis 3 zones (6 colonnes Au-AZ)

Actuellement j utilise une validation de données (liste) pour remplir les colonnes c/e/f (etc...) mais je souhaiterais également avoir une validation "automatique" en entrant un N° de code sans la cellule et la recherche entraine l'inscription de la réponse dans la cellule de départ.

exemple de solution pour apsa 1

en cellule E2, si je rentre 19, la recherche se réalise (index/equiv ou recherchev ou ???) et j'obtiens 4-Rugby en cellule E2

donc la saisie du code et sa réponse se trouvent bien dans la même cellule

Quelqu'un aurait-il une idée?

Au regard de ce qui est sur le forum, Ca doit être une private sub worsheet_change , mais je n'en sais pas plus.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E???)) Is Nothing Then
        Application.EnableEvents = False
        Target.Value = ????? ==> formule de recherche ????
        Application.EnableEvents = True
    End If
End Sub

merci de votre aide

peps59

25saisie-reponse.xlsx (30.76 Ko)

Bonjour Peps59

Tu étais bien parti avec ton bout de code, le voici corrigé

le code est à mettre dans ta feuille

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim sResult As String
  ' Si modification de plusieurs cellules
  If Target.Count > 1 Then Exit Sub
  ' Si supression de valeur on sort
  If Target.Value = "" Then Exit Sub
  ' Si la saisie se fait dans la colonne E
  If Not Intersect(Target, Range("E:E")) Is Nothing Then
    ' En cas d'erreur dans la  recherche on continue le code
    On Error Resume Next
    ' Récupérer le résultat de la saisie
    sResult = ""
    sResult = Application.WorksheetFunction.VLookup(Target.Value, Range("code_apsa"), 2, False)
    ' vérifier si résultat non vide
    If sResult <> "" Then
      Application.EnableEvents = False
      Target.Value = sResult
      Application.EnableEvents = True
    Else  ' sinon
      MsgBox "Valeur : " & Target.Value & ", non trouvée dans la plage [code_apsa]"
      Application.EnableEvents = False
      Application.Undo
      Application.EnableEvents = True
    End If
    ' réactiver la gestion normale des erreurs
    On Error GoTo 0
  End If
End Sub

A+

Bonjour

merci ça fonctionne bien.

Comment généraliser cette private sub pour que cela fonctionne aussi sur les colonnes L S Z AG AN ?

merci

peps59

Re,

Il suffit d'ajouter autant de bloc

 If Not Intersect(Target, Range("E:E")) Is Nothing Then
    ' En cas d'erreur dans la  recherche on continue le code
   On Error Resume Next
    ' Récupérer le résultat de la saisie
   sResult = ""
    sResult = Application.WorksheetFunction.VLookup(Target.Value, Range("code_apsa"), 2, False)
    ' vérifier si résultat non vide
   If sResult <> "" Then
      Application.EnableEvents = False
      Target.Value = sResult
      Application.EnableEvents = True
    Else  ' sinon
     MsgBox "Valeur : " & Target.Value & ", non trouvée dans la plage [code_apsa]"
      Application.EnableEvents = False
      Application.Undo
      Application.EnableEvents = True
    End If
    ' réactiver la gestion normale des erreurs
   On Error GoTo 0
  End If

Qu'il y a de zones à traiter, bien évidemment il faut changer

Not Intersect(Target, Range("E:E"))

et

sResult = Application.WorksheetFunction.VLookup(Target.Value, Range("code_apsa"), 2, False)

A+

Bonjour

OK ça fonctionne, j'ai mis bout à bout les 6 codes , je pensais qu'il était possible de faire une sorte de boucle sur

 Range("E:E")

J'ai voulu disposer le tableau code_apsa (couper coller) sur une autre feuille et cela ne fonctionne plus

est ce normal?

=> le "code_apsa" doit obligatoirement se trouver dans la feuille "activités" pour que cela fonctionne?

merci

Peps59

Bonjour

Regarde si ce fichier correspond à ton attente

25saisie-reponse.xlsm (38.71 Ko)

Amicalement

Nad

Bonjour

ok c'est nickel

merci Nad

peps59

Rechercher des sujets similaires à "saisie code resultat recherche meme"