Fonction recherche tableau

Bonjour,

Un problème se pose à moi...

Ayant quelques connaissance sous excel mains pas assez,j'aurais besoin d'un peu d'aide de votre part.

En pièce jointe vous trouverez une base de données sous forme de tableau excel avec :

dans les colonnes -> nom de société, statut,domaine,nom du contact

dans les lignes -> renseignement collecté

Je voudrais pouvoir faire des recherches en tapant le nom de la société ou du contact dans une cellule (nom partiel ou complet) et que la recherche m'envoie sur la feuille correspondante au client.

J'ai essayé avec des formules simples mais cela ne me convient pas et faire un menu déroulant n'est pas très pratique.

Il y a une lien hypertexte pour chaque client qui pointe vers une feuille dans le classeur.

Pouvez-vous m'aider à créer un fonction pour faire mes recherches ?

Merci d'avance pour vos réponses.

Dans l'attente de vous lire.

Bonjour geo-16,

Une solution par macro dans le fichier suivant :

Si tu saisis client 1 en I2 de la feuille BDD Contact, ça te renvoie sur la feuille du client contenant le nom client 1

De même, si tu saisis 1 ça te renvoie aussi sur la feuille du client contenant 1.

Merci vba-new,

La fonction marche si j’inscris le nom complet ou le chiffre, mais à l'avenir dans le tableau ce sera des noms de sociétés donc est-il possible d'avoir la même recherche mais pour un nom partiel ?

Comment faire pour voir ta macro ?

Merci

geo-16 a écrit :

La fonction marche si j’inscris le nom complet ou le chiffre

Le chiffre était un exemple pour montrer qu'en saisissant 1 ça marche.

Ce qui veut dire que pour sélectionner la feuille "client 1", tu peux saisir au choix :

lient 1

t 1

ent 1"

1"

ient 1

etc,.

du moment que ces caractères ne se retrouvent pas dans d'autres feuilles client.

Ex : en saisissant client, aucune feuille ne sera sélectionnée car les 2 contiennent le mot client

Pour voir le code, clic droit sur le nom de la feuille "BDD Contact" / Visualiser le code

OK,

Comment faire pour copier la macro ou le code dans un autre fichier.

Est ce que je peux aussi utiliser la macro pour la recherche des contacts ?

Je suis un peu novice dans ces fonctions

geo-16 a écrit :

Comment faire pour copier la macro ou le code dans un autre fichier.

Tu sélectionnes le code, puis tu vas dans le fichier dans lequel tu veux copier le code, clic droit sur la feuille concernée puis visualiser le code puis coller.
geo-16 a écrit :

Est ce que je peux aussi utiliser la macro pour la recherche des contacts ?

Je ne pense pas. Cette macro est destinée à faire ce que tu souhaitais faire pour les clients.

Qu'entends-tu exactement par "recherche des contacts" ?

Je voudrais pouvoir faire la même chose qu'avec la société. Si je tape le nom d'un contact dans la case du dessous, il m'envoie sur la feuille correspondant à la société.

Je vais essayer en modifiant la macro.

Par contre est-il possible que la macro ne prennent pas en compte les majuscules et minuscules ?

geo-16 a écrit :

Je voudrais pouvoir faire la même chose qu'avec la société. Si je tape le nom d'un contact dans la case du dessous, il m'envoie sur la feuille correspondant à la société.

C'est possible mais il faudrait avoir un tableau contenant les correspondances contact<->société.
geo-16 a écrit :

Par contre est-il possible que la macro ne prennent pas en compte les majuscules et minuscules ?

Oui avec la fonction Lcase par exemple. Remplace la macro Worksheet_Change actuelle par celle-ci :
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long, cpt&, feuil&
    If Not Application.Intersect(Target, [i2]) Is Nothing And Target.Count = 1 Then
        For i = 3 To Sheets.Count
            If LCase(Sheets(i).Name) Like "*" & LCase(Target) & "*" Then feuil = i: cpt = cpt + 1
        Next i
        If cpt = 1 Then Sheets(feuil).Select
    End If
End Sub

Pour la recherche de contact, c'est pas grave je passerai par le nom de la société.

Une dernière question, est-il possible de supprimer (remise à zéro) la frappe après la recherche et l'envoi sur la feuille de la société ou faut-il effacer à la main tout le temps.

Merci pour ton aide.

geo-16 a écrit :

Une dernière question, est-il possible de supprimer (remise à zéro) la frappe après la recherche et l'envoi sur la feuille de la société ou faut-il effacer à la main tout le temps.

Avec ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long, cpt&, feuil&
    If Not Application.Intersect(Target, [i2]) Is Nothing And Target.Count = 1 And Target <> "" Then
        For i = 3 To Sheets.Count
            If LCase(Sheets(i).Name) Like "*" & LCase(Target) & "*" Then feuil = i: cpt = cpt + 1
        Next i
        If cpt = 1 Then Sheets(feuil).Select
        Target = ""
    End If
End Sub
Rechercher des sujets similaires à "fonction recherche tableau"