Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Extraction d'information dans cadre suivant sélection

GUY rrr

XLDnaute Occasionnel
Bonjour le forum,

Je rencontre un problème que je ne suis pas en capacité de solutionner.
Je souhaite afficher dans un cadre des informations concernant un client sélectionné.
J'imagine que ceci peut-être effectué par macro mais je ne sais pas comment faire ... .

Auriez-vous des pistes ? Je joins un fichier exemple.

Merci pour vos propositions.

Meilleurs vœux pour cette nouvelle année

Cordialement
 

Pièces jointes

  • Test regul.xlsm
    18.2 KB · Affichages: 10

soan

XLDnaute Barbatruc
Inactif
Bonsoir @GUY rrr, le fil,

bonne année 2021, et meilleurs vœux !

voici une deuxième solution.

sélectionne C26 ; puis C25 ; regarde aussi ce qui se passe
quand tu sélectionnes par exemple C28.

j'ai aussi modifié un peu ta sub Worksheet_Change().

code VBA complet :


VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim cel As Range
  With Target
    If .Column = 1 And .Count = 1 Then
      If .Value <> "" Then
       On Error Resume Next
       Set cel = [noms].Find(.Value, LookAt:=xlWhole)
       If Err = 50290 Then Exit Sub
       If cel Is Nothing Then Application.Undo
      End If
    End If
  End With
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  With Target
    If .CountLarge > 1 Then Exit Sub
    If .Column <> 3 Then Exit Sub
    If .Row < 23 Then Exit Sub
    Dim vx$: vx = .Value
    If vx = "" Then [F11].Resize(8).ClearContents: Exit Sub
  End With
  Dim cel As Range, lig&
  With Worksheets("BDD Client")
    Set cel = .Columns(1).Find(vx, , -4163, 1, 1)
    If cel Is Nothing Then Exit Sub
  End With
  Application.ScreenUpdating = 0
  With [F11]
    .Value = cel                   'nom du client
    .Offset(1) = cel.Offset(, 7)   'date de naissance
    .Offset(3) = cel.Offset(, 2)   'adresse
    .Offset(4) = cel.Offset(, 4)   'n° téléphone 1
    .Offset(5) = cel.Offset(, 5)   'n° téléphone 2
    .Offset(7) = cel.Offset(, 1)   'IP
  End With
End Sub

si besoin, tu peux demander une adaptation.
à te lire pour avoir ton avis.


soan
 

Pièces jointes

  • Test regul.xlsm
    21.4 KB · Affichages: 9
Dernière édition:

GUY rrr

XLDnaute Occasionnel
Bonsoir soan, M12, le forum,

Deuxième solution qui prend en compte les cellules vides et permet de ne pas "polluer visuellement et inutilement" la feuille.
Un grand MERCI à vous pour l'amélioration
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Macro VBA
Réponses
16
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…