UserForm de recherche et de modification des données

frtoussaint

XLDnaute Nouveau
Bonjour,
Je suis débutant, à la fois en VBA et sur ce forum que j'explore depuis quelques jours à la recherche du code magique :)

Jusqu'à présent, je n'ai pas encore trouvé ce que je cherche et/ou je n'arrive pas à l'adapter à ma situation. Alors la voici, merci de me promulguer vos conseils précieux.

Je dois gérer une base de données de membre.
J'ai une quinzaine de colonnes (numéro de membre, nom, prénom, tel, etc.)

J'ai 3 formulaires.
1. Gestion
2. Nouveau membre
3. Modification

1. Gestion. C'est mon panneau central en quelque sorte.
Je peux y faire une recherche d'un membre selon certains critères. Je peux aussi me rediriger vers le userform d'inscription d'un nouveau membre ou encore afficher le userform de modification d'un membre (trouvé grâce au moteur de recherche.

2. Nouveau membre

Classique. Des textbox, des listbox, etc. "Enregistrer" envoie les infos du nouvel inscrit dans la base de données. Mon seul "hic" là, c'est que je travaille à la fois sur PC et sur Mac. Sur Pc ça marche bien, mais sur Mac, faut trouver un subterfuge au rowsource.

3. Modification.
D'après le résultat de la recherche effectué dans gestion membre, ce formulaire affiche les informations du membre et, en cas de modification, les enregistre dans la base de donnée dans la ligne correspondante lorsque on "enregistre" via un bouton.

À date, (je pars de zéro), j'ai réussi à faire le formulaire nouveau membre.
Gestion avec moteur de recherche... : je cherche mais je ne trouve pas encore comment faire ça. Modification : comment faire en sorte que les modifs s'enregistrent dans la bonne ligne?

Voilà mon problème... qui me passionne, mais qui commence à urger au niveau de mon boulot.

Alors si quelqu'un arrive à m'aider, ne fut-ce qu'un peu, ce serait très apprécié. Je n'irai peut-être pas jusqu'à envoyer du roblochon à monaco en guise de remerciement, mais bon...:D

Merci d'avance à qui me donnera un peu de son temps.

François

PS : dossier excel en pièce jointe avec les explications plus complètes.
PS2 : sur PC, je suis sur Excel 2007 et sur Mac, Excel 2004
 

Pièces jointes

  • BDD_membres.zip
    36.1 KB · Affichages: 627

JNP

XLDnaute Barbatruc
Re : UserForm de recherche et de modification des données

Bonjour Frtoussaint :),
Quelques petits codes pour faire avancer ton projet.
Pour remplacer le RowSource, tu peux utiliser AddItem
Code:
For Each Cellule In Range("choix!Benevolat")
    ListImplic.AddItem Cellule
Next
Pour localiser la ligne où se trouve ton membre, Find
Code:
Cellule = Range("A2:AA1").Find("Dupont").Row
MsgBox (Cellule)
en faisant varier Range suivant la colonne de recherche. Pour pouvoir faire "Suivant", il te suffit de relancer la recherche à partir de la ligne du dessous.
Bon courage :cool:
 

frtoussaint

XLDnaute Nouveau
Re : UserForm de recherche et de modification des données

bonjour jp14 et JNP,
Merci pour vos deux réponses.
Jp14, je vais tester ça dès que possible. Merci beaucoup pour ton temps.
JNP, ça me sera certainement très utile lorsque je ferais mon passage sur Mac. Merci.
Je vous tiens au courant.
À +,
François
 

frtoussaint

XLDnaute Nouveau
Re : UserForm de recherche et de modification des données

Bonjour JP14,
J'ai depuis quelques jours attentivement regardé "l'ébauche de procédure" qui correspond déjà pas mal à ce que je recherche. Merci beaucoup.

J'ai essayé de l'adapter le mieux à mes besoins, mais, je dois l'admettre, je bloque sur plusieurs points.

Tout d'abord, dans l'usf de lancement, le bouton "nouveau membre" ne fonctionne pas : erreur 1004 et le userform ne s'ouvre pas.

Ensuite, j'aimerais savoir si, le fait de remplacer les checkbox par des combo est un choix ou une nécessité? Car, y en a certains que j'aurais aimé conserver en check box. Exemples : Actif (check box cochée si actif); mailing list et carnet d'adresse (cochés l'un et l'autre si le membre a été ajouté à la mailing list et au carnet d'adresse.)

Aussi : le code postal est devenu un combo alors que ça doit rester une textbox. Au Québec, tous les codes postaux sont différents donc la combo est inutile.

Dans le userform de recherche (qui fonctionne très bien, wow, c'est génial), comment dois-je faire pour que tous les critères de recherche influent sur le résultat dans la list? Exemple, là, je tape dupont et il m'affiche Dupont Jean. j'aimerais que si je tape Jean dans prénom, ca fasse la même chose. Et le best encore ce serait que si il existe plusieurs Dupont, que je puisse affiner avec le prénom... En gros j'aimerais pouvoir chercher un membre grâce à un ou plusieurs critères (nom, prénom, téléphone, courriel, et si il es actif ou pas (case à cocher ou option box)).

Dernier point (je crois), dans modification, j'aimerais que le nom du membre qu'on modifie apparaisse dans un label, tout en haut de la page. Et lorsque c'est une nouvelle inscription, qu'il y soit inscrit : "Nouvelle inscription".

Je ne voudrais surtout pas donner l'impression de demander tout ça sur un plateau... au contraire. J'aime comprendre et si je peux le faire moi même, c'est super. Mais là... ça fait 3 jours que j'essaie, et déjà rien que regler l'erreur 1004, j'arrive à rien. Bref, un coup de main ou quelques explications seraient vraiment super appréciées.

Merci beaucoup... je suis ouvert à n'importe quel aide.
François

http://cjoint.com/?dggZf5YTDD
 

jp14

XLDnaute Barbatruc
Re : UserForm de recherche et de modification des données

Bonjour

Ci joint le fichier modifié
http://cjoint.com/?dglZzfUZV8

Modification de la recherche
Sélection d'une info, affichage des noms qui correspondent à la demande
Correction de l'erreur avec la fonction max
Affichage de la barre de l'usf
Exemples de contrôles de données
Modification à apporter au niveau de l'enregistrement pour les dates dans la procédure
Private Sub remplirbdd(£ligne1 As Long, £nomfeuille1 As String)

A tester

JP
 

frtoussaint

XLDnaute Nouveau
Re : UserForm de recherche et de modification des données

Bonjour,

Merci à jp14 pour la modification de son code.
Le truc, c'est que au niveau de la recherche, j'aimerais que les critères affinent la recherche et non pas que ce soit "un critère à la fois".
Ex : je cherche par le nom "Dupont" et s'il y en a plusieurs, que je puisse affiner la rechercher par le prénom... ou encore par "actif ou non".

Au niveau des contrôles, certains doivent être impérativement des checkbox (actif, mailing list et carnet d'adresse). J'ai essayé de comprendre le code et l'adapter mais je n'y arrive pas. Au mieux, ça marche une fois, mais dès la seconde fois, ça ne se modifie pas...

J'ai aussi plusieurs autres petites questions, je les ai inscrit dans le fichier.

Voici le fichier : http://cjoint.com/?dmfC6LZEAV

Désolé si mon délai de réaction est parfois un peu long... je cherche souvent beaucoup avant de revenir ici... Mais quoi qu'il en soit, merci beaucoup pour ton aide. Ça me fait bien avancer. Merci.

François
 
Dernière édition:

Discussions similaires

Réponses
46
Affichages
853

Statistiques des forums

Discussions
312 196
Messages
2 086 102
Membres
103 117
dernier inscrit
augustin.morille