Recherche dans tableau excel

zepeto

XLDnaute Occasionnel
Bonjour à tous,
j'ai un tableau sous excel avec 1°colonne = nom, 2°colonne = prénom, 3°colonne = caractéristiques.
J'ai une macro qui me permet de rechercher une personne et rempli les champs d'un userform grâce à la saisi du nom, mais il arrive que j'ai deux fois le même nom et je ne veux faire ma recherche que sur le nom.
Alors si quelqu'un connait une méthode pour faire une boucle sur ma 1°colonne et qui me demande si il sagit bien de la bonne personne sinon on passe à l'autre sa serait avec plaisir.
Merci par avance et je suis disponible pour plus d'informations.
 
G

Guest

Guest
Re : Recherche dans tableau excel

Zepeto,

Essaie de reproduire le problème dans un nouveau fichier avec quelques données anonymisées mais telles quelles sont présentées dans le fichier réel et seulement la macro, sans le user form. Joins ce nouveau fichier sur le forum.

A bientôt
 
G

Guest

Guest
Re : Recherche dans tableau excel

Zepeto,

voici un exemple dans le fichier joint.

J'ai construit 1 userform avec la méthode de recherche tels que demandés
et un autre avec une autre solution.
A bientôt

[EDITION] retrait du fichier (obsolète) pour alleger le serveur voir version en fin de fil
 
Dernière modification par un modérateur:

zepeto

XLDnaute Occasionnel
Re : Recherche dans tableau excel

Je suis entreprise donc impossible pour moi de pouvoir regarder ta solution car ils ont bloqués le téléchargement sur le réseau mais dés que je déboche je regarde sa, et voici ce qui se passe pour moi, voir PJ
 

Pièces jointes

  • Classeur2.zip
    20.7 KB · Affichages: 119
  • Classeur2.zip
    20.7 KB · Affichages: 114
  • Classeur2.zip
    20.7 KB · Affichages: 103

misterjo77

XLDnaute Nouveau
Re : Recherche dans tableau excel

Bonjour!!!

Je me promenais sur le forum...et je suis tomber sur ce que je cherchais.

Mais ne connaissant pas (encore) le VBA, est-t-il possible de rajouter la photo de la personne recherché dans le userform??

J'essaye en effet de faire une sorte de trombinoscope pour ma société. J'ai dans une feuille excel le nom, le prénom, le matricule, l'email, la ville et le service de chaque personne.

Le but est d'avoir sur la première feuille du classeur un userform qui me permet de chercher soit par nom, prénom ou service. Avec comme resultat : le nom, le prénom, le matricule, l'email, la ville, le service et la Photo qui s'affiche.

Je vous joint un petit fichier d'exemple sans VBA.

Merci d'avance pour votre aide
 

Pièces jointes

  • trombi.zip
    5.2 KB · Affichages: 32
  • trombi.zip
    5.2 KB · Affichages: 31
  • trombi.zip
    5.2 KB · Affichages: 33
G

Guest

Guest
Re : Recherche dans tableau excel

Re Zepeto,

Je t'ai fait ceci à partir des données de ton fichier.
Tu choisis un nom de sociéte dans la combo, il affiche les données trouvée et un bouton 'Suivant' qui affichera le suivant s'il y en a un. Lorsqu'il ne trouve plus le bouton affiche 'Recommencer' pour une nouvelle boucle de recherche sur le même nom. Re choisir dans la combo pour une nouvelle recherche.

@MisterJo: même si ta question parait semblable, pour un trombinoscope, un nouveau fil serait le bienvenu.
 

zepeto

XLDnaute Occasionnel
Re : Recherche dans tableau excel

Hasco tu est vraiment le meilleur.
Et si je peux me permettre de te demander une derniére chose!
Dans le classeur que tu à refait à partir de mes informations serait tu permettre également à la combobox que l'utilisateur sans serve comme une textbox c'est à dire qu'il puisse saisir le nom de l'entreprise et que à chaque saisi d'un caractére il actualise les champs du dessous; et la serait le top.
De plus, il ma semblé que tu as enlevé les doublons de ma combobox et sache qu'en paralléle j'était en train de le faire, du coup j'aprécie que tu es apporté cette modification.
Encore merci à toi et bonne soirée.
 
Dernière édition:
G

Guest

Guest
Re : Recherche dans tableau excel

Zepeto,

Pour que la combobox se mette à jour remplace tout le code du userform par celui-ci:
Code:
Dim plage As Range, c As Range
Dim Adr1 As String
Dim NomEnCours As String
Dim bChargementListe As Boolean
Private Sub btnSuivant_Click()
    If btnSuivant.Caption = "Recommencer" Then
        NomEnCours = ""
        cbDenomination_Change
        Exit Sub
    End If
    If Not c Is Nothing Then
        Set c = plage.FindNext(c)
        If Not c Is Nothing Then
            If c.Address <> Adr1 Then
                tbAdresse = c.Offset(, 1)
                tbCP = c.Offset(, 2)
                tbVille = c.Offset(, 3)
            Else
                btnSuivant.Caption = "Recommencer"
                lblMsg = "Fin de la recherche"
            End If
        End If
    End If
End Sub
Private Sub cbDenomination_Change()
' Si la procédure est appelée lors du chargement de la liste ou
' qu'aucun choix dans la combo on sort
    If cbDenomination.ListIndex = -1 Or bChargementListe Then Exit Sub
    'conserver la première adresse de cellule trouvée
    Adr1 = "": lblMsg = ""
    btnSuivant.Caption = "Suivant"
    ' Trouver la première occurence
    If NomEnCours <> cbDenomination.Value Then
        Set c = plage.Find(what:=cbDenomination.Value, LookIn:=xlValues)
        If Not c Is Nothing Then
            Adr1 = c.Address
            NomEnCours = c.Value
            btnSuivant.Enabled = True
            tbAdresse = c.Offset(, 1)
            tbCP = c.Offset(, 2)
            tbVille = c.Offset(, 3)
        Else
            btnSuivant.Enabled = False
            lblMsg = "Aucune occurence trouvée"
        End If
    End If
End Sub
Private Sub UserForm_Initialize()
    Dim c As Range
    Set plage = Feuil1.Range("A1:A" & Feuil1.Range("A65536").End(xlUp).Row)
    'On ajoute des occurences uniques à la combobox des noms
    bChargementListe = True
    For Each c In plage.Cells
        If c.Row <> plage.Range("A1").Row Then
            cbDenomination.Text = Trim(c.Text)            'cette ligne entraine l'évènement cbNoms_Click()
            If cbDenomination.ListIndex = -1 Then cbDenomination.AddItem c
        End If
    Next
    cbDenomination.ListIndex = -1
    bChargementListe = False
End Sub

A bientôt
 

zepeto

XLDnaute Occasionnel
Re : Recherche dans tableau excel

Désolé c'est encore moi hasco.
Je voulais te dire que ton code fonctionne trés bien mais le probléme que j'ai c'est qu'il ne ressemble plus du tout au mien, donc j'ai un peu de mal à tout comprendre et le délire c'est que mon classeur réel contient beaucoup plus de champs donc si tu pouvais m'expliquer comment on fait pour en rajouter se serait avec plaisir? Et si tu ve je peux t'envoyer mon classeur entier pour que tu puisse juger par toi même?
(J'ai quelque difficulter pour intégrer ton magnifique code dans le mien)
Tiens moi au courant stp et encore merci
 
G

Guest

Guest
Re : Recherche dans tableau excel

Re Zepeto:)

On y est arrivé, j'en suis heureux pour toi.

La prochaine fois tu pouvais prendre un peu de temps pour exposer clairement l'objectif de ta demande avec un fichier bien construit qui reflète le réel, nous gagnerons du temps...

bon Week-end à toi
 

zepeto

XLDnaute Occasionnel
Re : Recherche dans tableau excel

Re bonjour hasco, ta méthode se répercute sur l'ensemble de mon code alors je suis en train de l'adapter à mes besoins mes le problémes c'est que la dénomination n'est pas le seul champ de recherche donc quand je me sert d'une autre combobox pour faire une recherche je c'est pas comment gérer le décalage des colonnes dans le offset?
De plus, il faudrait que je modifie le code du bouton "suivant" pour que sa marche avec les différente combobox ainsi que le UserForm_initialize() ?
Ensuite, j'ai une combobox de recherche qui doit se remplir avec plusieurs colonne et la je sais pas faire et en plus la je vois pas comment faire avec le offset dans se cas...
Enfin, si tu veux je peux t'envoyer mon code complet?
Merci par avance pour ton aide et je reste disponible pour plus d'informations.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo