XL 2016 Déclencher une macro après validation d'une cellule

Bandoulier

XLDnaute Junior
Bonjour à tous,
Dans une feuille Excel, je voudrais qu'en saisissant un "code locataire" en B3 s'affichent le nom et le prénom du locataire en B4 et B5.
Pour cela dans cette feuille j'ai mis le code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$3" Then Call TrouverLocataire
End Sub
et dans un module, j'ai fait une petite macro qui cherche le code dans un fichier des locataires (une autre feuille Excel) et qui récupère le nom et le prénom du locataire d'après le code et qui les recopie en B3 et B4 de la feuille initiale.

Quand je valide ma cellule B3 dans la 1ère feuille ma "Private Sub Worksheet" se déclenche bien, elle lance la macro du module (TrouverLocataire), elle va dans le fichier des locataires, elle cherche et trouve le code locataire ... et elle s'arrête là !!!
Elle ne récupère pas les nom et prénom et elle ne me les recopie pas dans la feuille du départ !
Auriez-vous une idée qui puisse m'aider ?

Je me pose une autre question :
J'ai une 2ème manip identique à faire dans la 1ère feuille, qui en saisissant un "code bien" devra retrouver une adresse.
Je ne pense pas que je puisse mettre deux fois le code "Private Sub Worksheet_Change(ByVal Target As Range)..." dans la feuille (à mon avis ça va coincer !)
Auriez-vous une solution

D'avance, merci à tous ceux qui voudront bien s'intéresser à mon problème
 

Bandoulier

XLDnaute Junior
Bonjour Sylvanu,
Je vous donne tout mon fichier (les données sont bidon)
Dans la feuille "Mask_Paie", quand je saisi en B3, je veux que la macro "TrouverLocataire" du module "Paie" se déclenche ... et fonctionne.
Merci de vous être penché sur mon problème
 

Pièces jointes

  • NewGesLoc.xlsm
    165.3 KB · Affichages: 8

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bingo. La macro colle n'importe où, tout du moins dans la feuille active... qui n'est pas la bonne.
Donc changez :
VB:
    'Je Mask_Paie sur Mask_Paie
    Sheets("Mask_Paie").Select
    Range("E3").Value = Nom
    Range("H3").Value = PN
et vous pouvez rajouter :
Code:
    'Je vais dans le fichier des locataires
    Application.ScreenUpdating = False
Ce qui fige l'écran pendant la manip.
 

Discussions similaires

Réponses
5
Affichages
122

Statistiques des forums

Discussions
312 215
Messages
2 086 322
Membres
103 178
dernier inscrit
BERSEB50