XL 2013 Fonction de recherche

laeti95

XLDnaute Occasionnel
Bonjour le forum,

J'ai un grand tableau de plus de 1100 lignes cela devient trop pénible de chercher et ensuite copier coller et surtout trop long.

ma base de données est sur un autre onglet et j'aimerais trouver la formule ( recherchev ou une autre, je suis ouverte aux propositions pour trouver ma solution )

Dans une cellule je tappe 689 et j'ai un menu déroulant qui affiche tous mes lieux avec 689 et je choisi selon la colonne alpha

pour ensuite que s'inscrive dans la colonne le lieu et alpha exemple 689 A

et desous le nom et téléphone de la personne.

MERCI d'avance pour vos lumières et un bon dimanche ;)

Laeti
 

Pièces jointes

  • Recherche sur lieu et alpha.xlsx
    11.2 KB · Affichages: 15

Dranreb

XLDnaute Barbatruc
Bonjour.
Avec un UserForm muni de ComboBox pour tous les critères qui vous voulez pouvoir chercher, ça vous irait ?
Si oui je joindrai mon générateur d'UserForm et le precurseur de mon complément "CBx liées et Ctl associés"
 

Dranreb

XLDnaute Barbatruc
Ce seront des séries d'instructions de la forme de cet exemple : CL.Add CBxLieu, "Lieu"
et pour le numéro de téléphone : CA.Add TBxTel, "Tél."
À part ces instructions dans la Sub UserForm_Initialize, le reste de la programmation ne devrait pas changer.
 

Dranreb

XLDnaute Barbatruc
J'ai commencé par dessiner votre UserForm avec mon outil :
1566121327496.png


Pour ne pas tout réinventer j'ai même commencé a y copier les codes de celui ci :
 

Pièces jointes

  • CbxLiéesSmaily.xlsm
    53.8 KB · Affichages: 11

Dranreb

XLDnaute Barbatruc
J'en suis là dans la programmation :
VB:
Option Explicit
Private WithEvents CL As ComboBoxLiées, WithEvents CA As ControlsAssociés, LCou As Long, TVL()
Private Sub UserForm_Initialize()
   Set CL = CLsCAs.Création.ComboBoxLiées: CL.Plage Feuil1
   Set CA = CLsCAs.Création.ControlsAssociés: Set CA.Colonnes = CL.Colonnes
   CL.Add Me.CBxLieu, "Lieu"
   CL.Add Me.CBxAlpha, "Alpha"
   CL.Add Me.CBxRue, "Rue"
   CL.Add Me.CBxNom, "Nom"
   CL.Add Me.CBxPrénom, "Prénom"
   CA.Add Me.TBxTél, "Tél.", "&"
   CL.CouleurSympa
   CL.Actualiser
   End Sub
Private Sub CL_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
   If NbrLgn = 0 And Complet Then
      CBnValider.Enabled = True: CBnValider.Caption = "Ajouter": CBnSuppr.Enabled = False
   ElseIf NbrLgn = 1 Then
      CBnValider.Enabled = True: CBnValider.Caption = "Modifier": CBnSuppr.Enabled = True
   Else
      CBnValider.Enabled = False: CBnValider.Caption = "…": CBnSuppr.Enabled = False
      End If
   LCou = 0
   ReDim TVL(1 To 1, 1 To CL.Colonnes.Count)
   CA.ValeursDepuis TVL
   End Sub
Private Sub CL_BingoUn(ByVal Ligne As Long)
   LCou = Ligne
   TVL = CL.Lignes(LCou).Range.Value
   CA.ValeursDepuis TVL
   End Sub
Private Sub CBnEchap_Click(): If CL.ChangéÀLEchap Then Exit Sub
   CL.Nettoyer
   End Sub
Private Sub CBnValider_Click()
   CA.ValeursVers TVL
   If LCou = 0 Then
      CL.ValeursVers TVL
      CL.Lignes.Add.Range.Value = TVL
      CL.Actualiser
   Else
      CL.Lignes(LCou).Range.Value = TVL
      End If
   End Sub
Private Sub CBnSuppr_Click()
   If LCou = 0 Then Exit Sub
   CL.Lignes(LCou).Delete
   CL.Actualiser
   End Sub
Mais je n'ai pas encore sauvegardé, au cas où ça ne vous intéresserait pas.
Bon, ça permet la mise à jour de cette base, ce qui n'était pas vraiment demandé. On pourra ajouter une procédure qui l'affiche lors de la sélection ou modification d'une cellule, en débutant déjà la recherche par sa valeur, et un bouton pour appliquer dans d'autres cellules de la même ligne des éléments de la ligne trouvée. Il faudrait préciser ce contexte d'utilisation.
 

Discussions similaires

Statistiques des forums

Discussions
312 176
Messages
2 085 967
Membres
103 069
dernier inscrit
jujulop