MAcro derrière la touche entrée

zbig

XLDnaute Occasionnel
Bonsoir
je voudrais que lorsque j'appuie sur la touche entrée d'une cellule a1; il y a des infos qui se mettent (récupérées dans une autre feuille) dans la cell a2 et a3.
cordialement
zbig
 

zbig

XLDnaute Occasionnel
Re : MAcro derrière la touche entrée

bonsoir
En fait
si je rentre une info dans la case a1 (ex 75000);
automatiquement la réponse en a2 = Paris.
MAis je ne veux pas de formule dans le cellule a2
Il faut que la réponse s'affiche dès que la touche entrée est appuyée; une sorte de macro cachée
cordialement
zbig
 

Banzai64

XLDnaute Accro
Re : MAcro derrière la touche entrée

Bonsoir

C'est faisable sans formule mais avec une macro événementielle
Pour la réaliser il manque des billes
Il faut vérifier quoi ? (7500)
Ecrire quoi ? (Paris) et ou ? (en A2)
Tien ne serait -ce des CP ?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A1"), Target) Is Nothing Then
  If Target.Value = 75000 Then
    Application.EnableEvents = False
    Target.Offset(1, 0) = "Paris"
    Application.EnableEvents = True
  End If
End If

A coller dans le code de la feuille
Click droit sur l'onglet ---> Visualiser le code
 

zbig

XLDnaute Occasionnel
Re : MAcro derrière la touche entrée

ok

en fait j'ai une liste de 1000 lignes en feuille 2 avec les champs : cp (clé); ville; responsable;telephone

en feuille 1 : en a1 je tape "cp"; les infos arrivent en a2;a3;a4.

voilà
a+
zbig
 

bqtr

XLDnaute Accro
Re : MAcro derrière la touche entrée

Bonsoir Banzai64, zbig

Effectivement sans les billes c'est pas simple et on travaille dans le vide, mais bon.

Test ceci :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
  Target.Offset(0, 1) = ""
  Target.Offset(0, 2) = ""
  Target.Offset(0, 3) = ""
   If Target <> "" Then
     With Sheets("Feuil2")
       Set C = .Range("A1:A" & .Range("A65536").End(xlUp).Row).Find(Target.Value, LookAt:=xlWhole)
        If Not C Is Nothing Then
           Target.Offset(0, 1) = C.Offset(0, 1)
           Target.Offset(0, 2) = C.Offset(0, 2)
           Target.Offset(0, 3) = C.Offset(0, 3) 
           Exit Sub
        End If
     End With
    End If
End If
End Sub

Sur la feuille 2, tes données sur 4 colonnes, A,B,C,D en commencant sur la ligne 1. La recherche se fera sur la colonne A.
Sur la feuille 1, tape en A1 ce que tu veux rechercher. Le résultat se mettra en B1 et C1 et D1.
Code à placer dans le module de code de la feuille 1.

A+
 
Dernière édition:

bqtr

XLDnaute Accro
Re : MAcro derrière la touche entrée

Re,

Voici le code adapté à ton fichier.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
If Not Application.Intersect(Target, Range("C1")) Is Nothing Then
  Target.Offset(2, -1) = ""
  Target.Offset(3, -1) = ""
  Target.Offset(4, -1) = ""
   If Target <> "" Then
     With Sheets("Listing")
       Set C = .Range("A2:A" & .Range("A65536").End(xlUp).Row).Find(Target.Value, LookAt:=xlWhole)
        If Not C Is Nothing Then
           Target.Offset(2, -1) = C.Offset(0, 1)
           Target.Offset(3, -1) = C.Offset(0, 2)
           Target.Offset(4, -1) = C.Offset(0, 3)
           Exit Sub
        End If
     End With
   End If
End If
End Sub

A mettre dans le module de code de la feuille saisie.

A+
 

bqtr

XLDnaute Accro
Re : MAcro derrière la touche entrée

re,

Modifie la fin du code comme ceci :

Code:
End If
     End With
   End If
   If Target.Offset(2, -1) = "" And Target <> "" Then MsgBox "N° de CP " & Target & " non trouvé", vbInformation, "Erreur:"
End If
End Sub

A+
 

zbig

XLDnaute Occasionnel
Re : MAcro derrière la touche entrée

excellent!

alors je complique un peu
dans saisie2.xls
2 feuilles sup : en saisie2 et listing2.
dans listing2 : il y a plusieurs fois le meme cp
en saisie 2: retrouver toutes les infos.
a+
merci
zbig
 

Pièces jointes

  • saisie2.xls
    30 KB · Affichages: 51
  • saisie2.xls
    30 KB · Affichages: 50
  • saisie2.xls
    30 KB · Affichages: 44

bqtr

XLDnaute Accro
Re : MAcro derrière la touche entrée

Re,

Je m'en doutais un peu :)

Un exemple en PJ

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range, x As Long
If Not Application.Intersect(Target, Range("B1")) Is Nothing Then
  Range("A4:C" & Range("A65536").End(xlUp).Row + 1) = ""
  Range("E1") = ""
  x = Range("A65536").End(xlUp).Row
   If Target <> "" Then
     With Sheets("Listing (2)")
        For Each Cell In .Range("A2:A" & .Range("A65536").End(xlUp).Row)
          If Cell = Target Then
            Range("E1") = Cell.Offset(0, 1)
            Range("A" & x + 1) = Cell
            Range("B" & x + 1) = Cell.Offset(0, 2)
            Range("C" & x + 1) = Cell.Offset(0, 3)
            x = x + 1
          End If
        Next
     End With
   End If
 If Target.Offset(3, -1) = "" And Target <> "" Then MsgBox "N° de CP " & Target & " non trouvé", vbInformation, "Erreur:"
End If
End Sub

A+
 

Pièces jointes

  • saisie2.zip
    11.2 KB · Affichages: 25
  • saisie2.zip
    11.2 KB · Affichages: 25
  • saisie2.zip
    11.2 KB · Affichages: 21
Dernière édition:

Discussions similaires

Réponses
1
Affichages
196

Statistiques des forums

Discussions
312 505
Messages
2 089 098
Membres
104 031
dernier inscrit
RimeF