Recherche de valeur avec macro VBA

h0mzy Messages postés 20 Date d'inscription vendredi 18 décembre 2009 Statut Membre Dernière intervention 17 juin 2011 - 18 déc. 2009 à 17:38
h0mzy Messages postés 20 Date d'inscription vendredi 18 décembre 2009 Statut Membre Dernière intervention 17 juin 2011 - 6 janv. 2010 à 10:35
Bonjour la communauté,
j'ai un userform avec les champs matricule, nom, prenom, date d'embauche, fonction, service, responsable de service et une base de données (feuille excel) qui contient toutes les données saisies à partir du userfom.
les valeurs des champs sont rangés sur la feuille ligne par ligne.
j'aimerais pouvoir rechercher mes données saisies à partir du champ nom ou matricule.
à chaque nom ou matricule entrer, la macro va rechercher sur la feuille excel si le ou le nom ou le matricule existe et renvoi les valeurs trouvées de la ligne correspondante dans les champs du userform nom, prenom, date d'embauche, fonction, service, responsable de service.
lorsque le nom ou le matricule entré n'est pas retrouvé, il affiche une message du genre "recherche infructueuse".
En plus, j'ai un dossier contenant toutes les photos des agents contenus dans ma base de données excel, j'aimerais pouvoir afficher dans un contrôle image la photo de chaque agent trouvée.

Je compte sur votre aide SVP

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 déc. 2009 à 20:38
Salut
Une chose à la fois :
- Rechercher un item dans une liste :
Tu lances l'enregistrement d'une macro
Tu vas dans la feuille qui contient les données
Tu sélectionnes la colonne entière dans laquelle tu veux faire la recherche
Tu vas dans le menu Edition, Rechercher + un mot + Ok
Tu arrêtes l'enregistrement de la macro
Voilà, tu sais faire une recherche.
Il te suffit de repiquer le code généré par l'enregistrement + regarder où se trouvent les paramètres de la colonne et du mot recherché + les remplacer par les bonnes valeurs = celles saisie du ta UserForm, et le tour est joué.
Une fois que tu auras identifié une cellule, tu sauras à quelle ligne se trouve la donnée et tu n'auras plus qu'à compléter la mcro pour récupérer les valeurs des colonnes à côté, sur cette même ligne.

- Pour les photos :
Tu ne pourras pas inclure les photos dans le classeur.
Mais il te suffit de mettre le chemin du fichier dans une cellule.
Quand tu voudras la voir, il te suffira de retrouver ce chemin + de la faire un LoadImage dans une PictureBox, par exemple.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 déc. 2009 à 20:42
Bonjour Jack,

dans une PictureBox, par exemple. 


Heureusement que le "par exemple" est là ...
(il est sous VBA/excel)
Supprime le présent message après l'avoir lu .... et modifie le tien ...

____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
19 déc. 2009 à 02:45
Oui, bah il comprendra bien qu'il ne peut utiliser qu'une Image et pas une PictureBox.
En plus, je crois que la fonction de chargement, ça doit être LoadPicture et pas LoadImage.
0
h0mzy Messages postés 20 Date d'inscription vendredi 18 décembre 2009 Statut Membre Dernière intervention 17 juin 2011
21 déc. 2009 à 17:05
Merci les gars pour vos reponses mais concernant la recherche de valeurs ce que je veux c'est que je saisie dans une texbox le nom d'une personne et quand je clique sur le bouton rechercher, ma macro va rechercher dans la colonne "nom" de ma feuille sur laquelle sont enregistré les données, si le nom tapé existe et renvoi dans les champs de mon userform les valeurs correspondantes à la ligne trouvée
un exemple:
nom trouvé : moliere
valeur recupérée de la ligne moliere:
date d'embauche : 12/12/2001
Matricule : 1245
service : informatique
responsable service : eric pompidou

Merci pour votre aide les gars et si pouvez me filer les codes qui correspondent à ma requête ça me fera plaisir parceque je debute en vba.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
garion28 Messages postés 1543 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 3 avril 2011
6 janv. 2010 à 10:29
bonjour, je ne sais pas si c'est un peu tard pour une réponse mais voici ma contribution:

dim i as integer
dim trouve as boolean
i=1

nom = inputbox("saississez un nom pour une recherche")
'ensuite on cherche dans la colonne A si le nom recherché existe
while (nom<>sheets("tafeuille").range("A"&i).value) and (sheets("tafeuille").range("A"&i).value<>"")
   i=i+1
if(nom=sheets("tafeuille").range("A"&i).value)then trouve=true
wend

if trouve then
'ensuite ya plus qu'a utiliser l'indice i pour récupérer les info
msgbox("tes info récupéré a la ligne i")
else: msgbox(" recherche infructueuse")
end if



normalement ca devrai marcher dès que tu aura complété l'affichage de tes info (tu peu tout afficher dans un msgbox en utilisant chr(13) pour faire un saut de ligne
0
h0mzy Messages postés 20 Date d'inscription vendredi 18 décembre 2009 Statut Membre Dernière intervention 17 juin 2011
6 janv. 2010 à 10:35
Merci mon frère pour ta reponse mais javais déjà trouvé une solution.Par contre ton code pourras toujours servir.
0
Rejoignez-nous