Gestion base de données avec un userform
Bonjour tout le monde,
Je suis débutant en VBA, et je souhaiterai gérer une base de données sous excel, j'ai découvert la fonctionnalité Userform mais je ne sais pas comment faire , je m'explique: en fait j'ai une base de données. Dans un premier temps je veux insérer via un formulaire une (des) nouvelle ligne (nouvel enregistrement), avec dans le formulaire:
- Nom ( automatiquement en majuscule)
- Prénom (première lettre en majuscule)
- IDRH
- Code régate,
- Adresse mail
- Civilité(M,Mme, Mlle sur le formulaire et je veux que ça me renvoi 1 pour M, 2 pou Mme et 3 pour Mlle dans la table)
- N° Tel (sous cette forme 01 45 45 45 45)
- N° FAX (sous cette forme 01 45 45 45 45)
- Entité de rattachement (proposer une liste à l'utilisateur, la liste jointe dans le fichier)
- Fonction (liste proposée à l'utilisateur, je la joins dans le fichier)
Après dans le même formulaire ou un autre ,je veux pouvoir rechercher dans la base de données avec le Nom, Prénom et IDRH, si je tape le Nom, il va me proposer que les prénoms qui vont avec ce Nom et IDRH corresondant, sinon je veux aussi pouvoir rechercher avec l'IDRH. puis je clique sur un bouton rechercher j'aurai une fiche avec toutes les informations de la ligne correspondante.
Après, je veux pouvoir modifier un enregistrement donné, ainsi que de supprimer.
Merci d'avance pour votre aide, si une âme charitable m'aide je serai reconnaissant toute ma vie, ça va m'aider énormément dans mon travail au quotidien.
Bonjour le forum,enzodekouba
Avec les nombreux exemples que Banzai64 m'a fournis,voici un debut de piste en fichier ci-joint.
- Pour la civilité,je n'ai pas trouvé de solution (style masque de saisie),alors il faudra pour l'instant remplir ce champ par 1,2 ou 3
A+
Re
Voici un nouveau fichier avec le masque de saisie pour la civilité
A+
Bonjour tout le monde.
Tout d'abord, un grand merci à vous "doudou1960", c'est très gentil de votre part, et merci d'avoir répondu aussi rapidement.
c'est un excellent travail, J'ai quelques remarques :
- Je viens de m'apercevoir que je me suis trompé un tout petit peu dans l'ordre des colonnes puisque c'est important ( derrière je dois créer une macro afin de générer un fichier) autrement dit rajouter une première colonne par défaut avec la valeur "code profil", mettre la colonne "IDRH" en deuxième position après "code profil" , après l'ordre est bon
( la valeur "code profil" par défaut, IDRH,Nom ,prénom, la valeur"1" par défaut,la valeur"1" par défaut,code régate, adresse mail, N° tel, la valeur "p" par défaut , Civilité, N° Fax, Entité de rattachement, Fonction, la valeur "COM" par défaut )
- Pour le contrôle d'enregistrement, le nouvel enregistrement ne peux être enregistrer que si l'utilisateur renseigne bien le NOM, Prénom,IDRH,code régate,Civilité,Entité de rattachement et Fonction autrement dit l'adresse mail et le N°tel et N°fax ne sont pas obligatoires.
- j'ai oublié de le mentionner dans mon dernier envoi, excusez moi mais je souhaiterai rattacher "l'entité de rattachement" au "code régate", autrement dit quand je sélectionne une entité de rattachement lors de la création d'un nouvel enregistrement ou la modification ça m'affiche automatiquement le code régate et pas le contraire (puisque je peux avoir un code régate pour deux "entités de rattachement" ( veuillez trouver ci joint dans le fichier la table entité de rattachement/code régate)
- Des messages de confirmation sur les boutons :
valider "Voulez vous continuer?"
Quitter " Voulez vous quitter?"
- C'est possible de mettre le bouton formulaire dans une onglet à part comme ça , ça me permettra après de faire un menu?
Merci d'avance c'est très très gentil de votre part.
Autre remarque !!!!
Le masque de saisie de civilité fonctionne parfaitement, ça veut dire que ça me met sur la table les valeurs 1,2, 3 qui correspondent à M,Mme et mlle sélectionnés sur le formulaire, par contre quand je recherche par Nom, par Prénom ou par IDRH, je ne vois pas sur le formulaire les civilités: M,Mme et Mlle, je vois que le 1,2 et 3 à coté
Merci beaucoup pour votre aide
Salut,
Suite à te demande en privé, je suis venu voir ton fil. C'est assez compliqué, tu expliques 1000 truces à la fois, tes explications partent dans tous les sens.
Pourrais-tu alors isoler un seul problème, expliquer le plus simplement possible le déroulement pour y arriver et quel est le résultat attendu à la place. Comme ça j'aurais le courrage de m'y lancer et on pourra probablement résoudre tous les problèmes les uns après les autres, étape par étape.
Cordialement.
D'accord merci beaucoup pour votre réponse.
Le premier souci c'est que je ne m y connais en VBA (grand souci, c'est mes tous débuts)
Dans le fichier ci joint il y a "Didou1960"qui a fait le plus gros du travail que je remercie encore une fois
Comme le titre l'indique: " Gestion base de données avec un userform" (insertion de nouvelle ligne, recherche, modification et suppression) chose que "didou1960" a très bien fait
Premier vrai problème:
1) Je viens de m'apercevoir que je me suis trompé un tout petit peu dans l'ordre des colonnes.
Je m'explique, quand j'ai mis mon fichier la toute première fois lors de la demande d'aide sur le forum, j'ai demandé un ordre bien précis des colonnes de ma base de données, autrement dit quand je rajoute un nouvel enregistrement j'ai cet ordre la:
colonne A (NOM) ,
colonne B (PRENOM),
colonne C (IDRH),
colonne D (la valeur"1" par défaut),
colonne E (la valeur"1" par défaut),
colonne F (Code régate),
colonne G (Adresse mail ),
colonne H(N° Tel),
colonne I (la valeur"p" par défaut),
colonne J (Civilité),
colonne K (N° Fax),
colonne L (Entité de rattachement),
colonne M (Fonction),
colonne N (la valeur "COM" par défaut)
Ce que Didou1960 a très bien fait
Mais c'est pas le bon ordre que je veux ( je viens de me rendre compte) l'ordre que je veux est:
colonne A (la valeur "code profil par défaut) ,
colonne B (IDRH),
colonne C (NOM),
colonne D (PRENOM,),
colonne E (la valeur"1" par défaut),
colonne F (la valeur"1" par défaut),
colonne G (Code régate),
colonne H (Adresse mail ),
colonne I (N° Tel),
colonne J (la valeur"p" par défaut),
colonne K (Civilité),
colonne L (N° Fax),
colonne M (Entité de rattachement),
colonne N (Fonction),
colonne O (la valeur "COM" par défaut)
J'ai pas su faire les modifs nécessaires sans toucher les autres fonctionnalités (recherche modification et suppression)
Merci d'avance.
Salut,
J’ai avancé un peu avec ta demande, mais ce n’est pas évident car il y a beaucoup d’implications en cascade : lorsque tu modifies la partie A, la partie B ne fonctionne plus, puis lorsque tu corriges la partie B, c’est la partie C qui foire, etc.
Alors pour l’instant j’ai modifié la feuille BD selon ce que j’ai compris de tes désirs. Merci de me dire déjà si cela est correct ?
Je n’ai pas compris ce que tu désires dans la nouvelle colonne A (en titre j’ai mis ton indication sur ton précédent message : 'colonne A (la valeur "code profil par défaut)'). Peux-tu m’expliquer ce que tu désires dans cette colonne ?
Si tu lances maintenant le formulaire, les nouvelles données que tu y introduis devraient venir se placer correctement sur la prochaine ligne vide.
J’ai ensuite commencé à corriger la suite. Ainsi si tu cliques sur le bouton ‘Recherche’ de ton UserForm et que tu choisis une recherche ‘Par Nom’, ‘Par prénom’ ou ‘Par IDRH’, les listes qui apparaissent dans la liste déroulante sont correctes.
Je n’ai pas été plus loin pour l’instant, donc si tu choisis une donnée quelconque dans cette liste déroulante, la suite ne fonctionne plus, tu as des données fantaisistes qui arrivent à l’écran.
J’attends que tu me dises ce qu’il en est de cette première partie (réponds bien à toutes mes questions) et on verra comment on continue. Il se peut que parfois je ne te donne plus de nouvelles pendant 1 ou 2 jours.
Amicalement.
Bonjour et merci beaucoup pour ta réponse Yvouille,
Pour l'ordre des colonnes, oui c'est ce que je veux, colonne A mettre par défaut "code profil" pour les nouvel ajout au lieu du vide.
La création fonctionne très bien (sauf valeur "code profil" manquante)
La recherche fonctionne par Nom, prénom et IDRH mais résultats pas bon informations mélangées
la suppression ne marche plus
la modification fonctionne mais bizarrement, je pense que c'est à cause des infos mélangées.
Merci beaucoup encore une fois Yvouille
ci joint le fichier
Voilà encore un bout d’avancement.
Normalement le fichier devrait à nouveau fonctionner normalement. Je me suis permis de modifier une ou deux petites choses, comme l’ordre de tabulation dans la forme. Si jamais il y a certaines parties qui ne fonctionnent plus comme tu le désires, informe m’en.
Sur ton ancien fichier, si tu avais beaucoup de ligne sur ta feuille BD, à chaque fois que tu sélectionnais une nouvelle cellule il fallait un temps de réaction à Excel (par exemple tu ne pouvais pas écrire immédiatement dans la cellule sélectionnée). J’ai modifié le code afin que ça n’arrive plus.
Je n’arrive pas à saisir le but de placer systématiquement la même information dans toutes les cellules d’une colonne (colonnes A, E, F, J et O). Mais bon, tu es libre de faire ce que tu veux
Amicalement.
Merci bcp Yvouille, à première vue ça marche très bien, je ne sais pas comment te remercier.
Yvouille je sais pas si je pourrai enchainer avec le deuxième problème?
je souhaiterai rattacher "l'entité de rattachement" au "code régate", autrement dit quand je sélectionne une entité de rattachement lors de la création d'un nouvel enregistrement ou la modification ça m'affiche automatiquement le code régate et pas le contraire (puisque je peux avoir un code régate pour deux "entités de rattachement" ( veuillez trouver ci joint dans le fichier la table entité de rattachement/code régate)
Re,
Il faut souvent plus deviner tes vœux que de les comprendre clairement. Tu ne fais pas référence aux objets (UserForm, cellules, feuilles, etc.) et l’on ne sait pas trop où se situe ton problème.
Si je t’ai bien compris, le fichier ci-joint devrait cependant répondre à ton attente.
Mais alors ce n’était pas du tout logique de placer dans le UserForm la ligne ‘Code régate’ avant la ligne ‘Rattachement’. Je n’ai cependant pas le courage de modifier à nouveau tous tes codes et toute ta forme en fonction de cette nouveauté.
Cordialement.
Merci bcp c'est ce que je veux. Peux tu continuer avec le fichier ci joint, j'ai fait qqes modifs sur l'affichage de l'userform, t'as raison je devais mettre le champ "code regate" aprés "rattachement".
Un petit problème comme même, quand je supprime la saisie du champ "rattachement" j'ai un message d'erreur " erreur d’exécution 1004"
En fait il y a rien à modifier j'ai arrangé l'Userform
Suite aux modifications de ta forme, j’ai à nouveau modifié l’ordre de tabulation. Essaie de ne plus changer, s’il-te-plait.
Le problème de l’effacement du TextBox correspondant au champ ‘Rattachement’ est résolu.
Faudrait-il vider en plus le TextBox correspondant au champ ‘Code Régate’ à ce moment-là ?
A te relire.
Oui stp il faut le TextBox correspondant au champ ‘Code Régate’
merci bcp
Oui stp il faut vider le TextBox correspondant au champ ‘Code Régate’
merci bcp
Evite le présent, ça sonne un peu comme un ordre : ‘Il faut’ !! Le conditionnel est bien plus adapté à la situation : il faudrait.
Cordialement.
je suis sincèrement désolé Yvouille, je n'oserai jamais te donner un ordre après tout l'aide que tu m'as apporté
Merci bcp Yvouille, c'est trés gentil de ta part.
Une autre demande
Je voudrais faire un contrôle, l'utilisateur ne peux pas enregistrer un nouvel enregistrement si l'IDRH qu'il a rentré figure déjà dans la base de données (idrh est unique)
Merci d'avance
Et voilà
Merci bcp Yvouille.
Une autre demande stp
Je ne sais pas si tu l'as constaté ou pas mais sur le champs civilité de l'userform il y a une liste déroulante et un textbox. la liste déroulante c'est pour choisir M, Mme et Mlle et le textbox( masque de saisie) 1 pour M, 2 pour Mme et 3 pour Mlle, puisque dans ma base je veux avoir 1,2 et 3 mais si on propose 1,2,3 à l'utilisateur il ne comprend rien:
Est ce qu'on peut dégager le masque de saisie '1,2 et 3) de l'userform?
Quand tu recherche une ligne par Nom ou prénom ou IDRH, t'as rien de renseigner pour la civilité ( je veux dire tu n'as pas M,Mme et Mlle de renseigner, t'as que les 1,2 et 3), ce qui est normal puisque sur la base il y a 1,2 et 3
Y a t il un moyen pour pouvoir afficher M, Mme et Mlle lors de la recherche
Merci d'avance