Formulaire de saisie RH

Bonjour à tous,

je suis totalement novice en VBA et les messages postés sur ce forum m'ont déjà beaucoup aidé.

Seulement aujourd'hui je suis devant un problème de compréhension...

Voici la situation :

je crée un userform pour remplir une BDD d'action de formation.

  • je voudrais créer un numéro de session sur laquelle je puisse inscrire plusieurs collaborateurs
  • je voudrai pouvoir retrouver cette session pour modifier des champs tels que l'état d'avancement ou le coût
  • enfin je voudrai pouvoir archiver automatiquement les lignes des Plans de Formations antérieurs.

Pouvez-vous m'aider????

Je vous remercie beaucoup.

Bonjour Adeline et bienvenue, bonjour le forum,

Comme tu ne proposes aucun fichier en pièce jointe cela suppose qu'il faut tout te faire... Il faudra donc que tu sois patiente pour trouver une âme charitable ou sinon, que tu fournisses un fichier où tu auras déjà fait le début de ton projet...

bonjour thau thème,

j'ai un fichier, seulement il y a des informations sensibles dessus qui concernent nos collaborateurs...

Je ne veux pas que l'on me marche le travail mais seulement que l'on me donne des pistes concernant la marche à suivre...

voilà où j'en suis:

Private Sub cbncréer_click()

'création d'une session

Sheets("BDD FORM").Select

If cbxnom = "" Then

MsgBox "Veuillez renseigner le champs 'Nom'."

Else

If MsgBox("Confirmez-vous l'ajout des données?", vbYesNo, "Confirmation") = vbYes Then

Sheets("BDD FORM").Select

'renvoyer au bouton ajouter

If MsgBox("Souhaitez-vous ajouter un autre stagiaire?", vbYesNo, "Confirmation") = vbYes Then

'Ajouter un stagiaire à la formation

Sheets("BDD FORM").Select

' effacer les données du collab précédent

cbxnom = ""

Cbxprenom = ""

txtCsp = ""

Txtsex = ""

txtAge = ""

txtdateentree = ""

txtService = ""

Else

'remplir l'identité du nouveau stagiaire

LIGNE = Sheets("BDD FORM").Range("B456541").End(xlUp).Row + 1

Cells(LIGNE, 2) = cbxnom.Value

Cells(LIGNE, 3) = Cbxprenom.Value

Cells(LIGNE, 4) = txtService.Value

Cells(LIGNE, 5) = txtAge.Value

Cells(LIGNE, 6) = txtdateentree.Value

Cells(LIGNE, 7) = txtCsp.Value

Cells(LIGNE, 8) = Txtsex.Value

'copier-coller les données de la partie formation

Dim ligVide As Long

ligVide = Sheets("BDD FORM").Range("B" & Rows.Count).End(xlUp).Row + 1

With Worksheets("BDD FORM")

derlig = .Range("B" & Rows.Count).End(xlUp).Row

.Cells(derlig, 9) = txtPdc.Value

LIGNE = Sheets("BDD FORM").Range("B456541").End(xlUp).Row + 1

Cells(LIGNE, 2) = cbxnom.Value

Cells(LIGNE, 3) = Cbxprenom.Value

Cells(LIGNE, 4) = txtService.Value

Cells(LIGNE, 5) = txtAge.Value

Cells(LIGNE, 6) = txtdateentree.Value

Cells(LIGNE, 7) = txtCsp.Value

Cells(LIGNE, 8) = Txtsex.Value

Cells(LIGNE, 9) = txtPdc.Value

Cells(LIGNE, 10) = cbxCategorie.Value

Cells(LIGNE, 11) = cbxType.Value

Cells(LIGNE, 12) = cbxTheme.Value

Cells(LIGNE, 13) = cbxIntitule.Value

Cells(LIGNE, 14) = CbxOrganisme.Value

Cells(LIGNE, 15) = txtDatedeb.Value

Cells(LIGNE, 16) = TxtDatefin.Value

Cells(LIGNE, 17) = Txtduree.Value

Cells(LIGNE, 18) = CbxEtat.Value

Cells(LIGNE, 19) = txtCoutsal.Value

Cells(LIGNE, 20) = txtCoutpeda.Value

Cells(LIGNE, 21) = cbxFrais.Value

Cells(LIGNE, 22) = txtOpco.Value

End With

End If

End If

End If

End Sub

Comme je l'ai dit je suis novice alors excusez mon manque de clareté !!

Re,

Si nous voulons tester tes code c'est à nous de recréer ton environnement alors qu'il est tellement simple et rapide remplacer les données sensibles avec Excel. Je persiste, le fichier, le fichier...

ok^^

j'ai enlevé les données perso.

encore merci à vous!!

Bonjour Adeline,

J'ai regardé ton fichier. Peux-tu m'expliquer la différence entre Créer et Ajouter un stagiaire ?

Je t'envoie le fichier modifié mais j'attends ta réponse pour le retravailler...

28adeline-ep-v01.zip (148.12 Ko)

bonjour!

avant toutes chose, merci pour ton travail et le temps consacré!!!

Alors pour faire simple....

le bouton créer il sert à initier une nouvelle session( donc on renseigne tous les cha

le bouton ajouter, à compléter une session avec d'autres stagiaires. Ceci implique une recherche de session dans un premier temps avec au moins 3 critères (année du Plan de formation, thème de formation, organisme de formation)

je voyais ça un peu comme une liste box avec une macro de recherche, mais je sais pas si c'est possible de sélectionner une ligne dans la listebox et de remplir automatiquement les textbox du formulaire....

Merci à toi^^

Bonsoir Adeline, bonsoir le forum,

Désolé pour cette réponse tardive mais je suis moins disponible en ce moment.

Je t'avoue que je n'ai pas bien compris l'ordre de fonctionnement. tu me corriges si je me trompes.

1. Je crée une formation avec un premier collaborateur (obligatoire).

2. j'ajoute des collaborateurs à cette formation si il y en a.

Ça signifie qu'on ne peut pas rajouter un collaborateur dans la base de donnée Source avec cet UserForm. Il ne sert à alimenter que la base de donnée BDD Form.

Est-ce que tu as regardé le fichier que je t'ai proposé et est-ce que son code est clair pour toi ?

J'attends tes réponses pour finaliser...

Bonjour thau thème

Merci pour ton retour.

Tu as bien compris l'ordre dans lequel le userform doit fonctionner.

Je t'avoue que vue mes connaissances limitée en VBA je ne suis pas en mesure de dire si le code que tu.m'as transmis correspond à ce que je souhaite. Je l'ai tester mais il a buggé. J'imagine que cela est dû au fait qu'il n'est qu'une commencement.

Encore merci pour le temps que tu consacre à mon problème. C'est vraiment top!

Bonjour Adeline,

J'ai pratiquement fini ton fichier mais malheureusement je ne l'ai pas ici (au boulot) mais chez moi. Je te l'enverrai ce soir avec quelques détails sur le fonctionnement...

Bonsoir,

Voici la version 2 avec un fonctionnement un peu différent du tien. Quand tu lances l'UserForm Formulaire de saisie d'une action de formation pour la première fois, le bouton Ajouter un stagiaire est masqué. Il ne sera visible qu'après avoir créé une formation avec un premier stagiaire. Dans la partie Stagiare du haut, le bouton Rechercher permet de rechercher un stagiaire dans la base de donnée Source. Si le stagiaire n'a pas d'homonyme, son prénom s'affiche automatiquement, sinon il faudra le sélectionner dans la combobox Cbxprenom. C'est dans cette combobox Cbxprenom qu'est stocké dans la colonne 0 (masqué) le numéro de ligne du stagiaire toujours dans la base Source qui permet d'afficher le reste des données d'un stagiaire.

Quand on clique une première fois sur le bouton Modifier, cela ouvre une nouvelle userForm Recherche pour Modification qui permet de sélectionner la ligne du stagiaire à modifier mais cette fois dans la base de donnée BDD FORM.

Au fur et à mesure que du texte et tapé dans la TextBox1 de cette UserForm, la liste dans la ListBox1 s'actualise. Un clic dans un élément de la ListBox1 permet de renvoyer les données du stagiaire sélectionné dans l'UserForm Formulaire de saisie d'une action de formation. Le bouton qui était Modifier est devenu Valider Modifs. il servira à enregistrer les modifications effectuées.

Je ne sais pas si tu as remarqué l'importance de la propriété Tag dans le code. En attribuant à la propriété Tag des contrôles qui renvoient/récupèrent des données du tableau, le numéro de la colonne, on n'a plus besoin de spécifier, contrôle après contrôle, la valeur. Une boucle fait le travail.

Voilà, si il y a des choses que tu ne comprends pas n'hésite pas, je reste attentif à ce fil.

22adeline-ep-v02.zip (160.62 Ko)

Tu es au top!!👍👍👍👏👏

Re,

Arf ! Oui au top !... J'habite au dernier étage .

Quand on crée une formation, quels sont les champs (contrôles) qui doivent être remplis impérativement ? Ou, le contraire, quels sont les champs facultatifs ?

j'apprécie le jeu de mot^^

les champs qui doivent obligatoirement être remplis sont:

  • le PDC
  • le thème
  • l'intitulé

encore merci

je faisais un essai mais les lignes ne s'ajoutent pas à BDD FORM...c'est peut-être normal?

Re,

Je vais vérifier tout ça et je reviens vers toi... Bonne soirée.

Bonjour Adeline, bonjour le forum,

En pièces jointe la version 3 corrigée à tester. Je reste attentif à ce fil. Si tu as un problème n'hésite pas...

24adeline-ep-v03.zip (167.67 Ko)

Bonjour Thau tHeme,

Comment je peux faire pour ajouter un collaborateur sur une même session car quand je coche le bouton Ajouter, la ligne ne s'intègre pas. seule apparait la ligne initiale.

Merci pour ton aide.

Rechercher des sujets similaires à "formulaire saisie"