Formule VBA

Résolu/Fermé
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 - 18 mai 2014 à 23:14
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 - 22 juin 2014 à 09:45
Bonjour,
je suis entrain de créer un formulaire pour faciliter la saisie des données
J'ai déja effectué "la maquette" avec userform ( combobox , texbox , label , bouton commande..) mais je bute vraiment sur l'attribution des VBA.
J'ai suivi beaucoup de tutos mais dés qu'il s'agit de personnaliser les vba , j'ai des erreurs partout
Je sollicite cordialement votre aide

https://www.cjoint.com/?DEsw0EiUy9U

Merci beaucoup

21 réponses

via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
18 mai 2014 à 23:40
Bonsoir

Plus simple (et plus facilement modifiable), mettre les données à afficher dans les Combo box dans une feuille et relier les combo aux plages correspondantes

Exemple à partir de ton fichier:
https://www.cjoint.com/?0EsxMUxZcZd

Cdlmnt
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
19 mai 2014 à 00:20
Merci de ton aide via55 . ce procédé sans vba est tres fonctionnel.

j'ai completé le fichier et je l'ai réduit aussi

Peux tu voir pour les boutons commandes?

https://www.cjoint.com/?DEtapQumvdY

cordialement
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
19 mai 2014 à 15:02
Tout dépend de ce que tu veux faire après :

- Inscrire chaque entrée dans une nouvelle ligne d'une feuille; ça c'est facile
- Afficher dans l'Userform des données déjà existantes et éventuellement les modifier, ça c'est déjà plus complexe !

Pour chaque arrêt ou congé que doit comporter la 1ere colonne ? ce n'est pas indiqué
Le fichier est-il annuel ou destiné à servir sur plusieurs années (auquel l'âge et l'ancienneté ne sont pas pertinents puisqu'ils varient chaque année, il vaudrait mieux la date de naissance et la date d'entrée) ?
A quoi sert le bouton Nouvel agent ?
Je n'ai pas l'impression que le projet et le rendu final soient très clairs pour toi. Il faut préciser tout cela avant d'aller plus loin

Cdlmnt
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
19 mai 2014 à 13:19
Bonjour
J'ai effectué d'autres modifications sur le fichier ci-joint
Je bute toujours sur les boutons commmandes

Je me disais qui pourrait m'envoyer un fichier formulaire avec des boutons commandes actifs , ainsi je pourrai "étudier" les formules et peut etre m'en inspirer pour le mien.

Vous remerciant d'avance
Cordialement

https://www.cjoint.com/?DEtnkNZzX7Y
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
19 mai 2014 à 15:48
Bonjour

Merci beaucoup de vous pencher sur mon cas

Inscrire chaque entrée dans une nouvelle ligne d'une feuille; ça c'est facile
Oui c'est ça, mais étant donné qu'un agent peut avoir plusieurs types d'arrêts à des dates différentes, il faudra à chaque fois rajouter les nouvelles données (type d'arrêt- dates et nombre de jours) dans le formulaire mais au niveau de la base de données renseignée tous ces événements successifs doivent rester sur la ligne de l'agent pour une meilleure exploitation ( tableau croisé dynamique , prévalence....)
Afficher dans l'Userform des données déjà existantes et éventuellement les modifier, ça c'est déjà plus complexe
En effet, je pense que pour renseigner un nouvel événement d'un agent déjà présent dans la base de données il faudrait passer par modifier puis rajouter l'événement avant de valider
Pour chaque arrêt ou congé que doit comporter la 1ere colonne ? ce n'est pas indiqué
Le fichier est-il annuel ou destiné à servir sur plusieurs années (auquel l'âge et l'ancienneté ne sont pas pertinents puisqu'ils varient chaque année, il vaudrait mieux la date de naissance et la date d'entrée) ?
1ére Colonne retirée,
En fait Le fichier devra être renseigné quotidiennement en fonction des événements pour alimenter une base de données, elle-même reliée à un tableau de bord de suivi des arrêts grâce à des formules macro d'extraction.

A quoi sert le bouton Nouvel agent ?
Je l'ai retiré pour privilégier le bouton modifier
Merci beaucoup via 55
Je joins le fichier modifié
Très cordialement



https://www.cjoint.com/?DEtpT29kQm3
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
19 mai 2014 à 16:38
Re

Ok on y voit déjà un peu plus clair MAIS :

1 ) tu ne répond pas à ma question concernant la date de naissance et la date d'entrée que je crois préférable à l'âge et l'ancienneté (qui peuvent eux après se calculer en fonction des dates précédentes)

2) il faudra à chaque fois rajouter les nouvelles données (type d'arrêt- dates et nombre de jours) dans le formulaire mais au niveau de la base de données renseignée tous ces événements successifs doivent rester sur la ligne de l'agent pour une meilleure exploitation Comment conçois tu la BDD , toutes les infos sur l'agent ne pourront pas être sur la même ligne ! Il aura une ligne par absence; ce qui peut être fait c'est trier le tableau par matricule que toutes les lignes concernant le même agent soient les unes au dessous des autres
En fait il faudrait 2 BDD :
- l'une concernant les agents avec comme colonnes: une colonne matricule, une nom, une date de naiss, une date d'entrée, une sexe, une statut, une fonction et une affectation
Dans l'UF de saisie l'entrée du matricule lancerait une recherche dans cette BDD et afficherait les renseignements correspondants. Si nouvel agent rien ne s'afficherait et il faudra entrer les infos (ou les choisir dans les listes déroulantes)
- l'autre concernant les absences et congés avec colonnes : une pour le matricule, les autres pour les différents types d'abs ou congés chacune subdivisées en 3 pour les 2 dates et le nbre de jours, la validation del'UF inscrirait la nouvelle abs sur une nouvelle ligne.

3) Puisque l'entrée des données doit se faire quotidiennement, il n'y aura pas pour le même agent 2 absences ou congés à rentrer en même temps donc l'UF de saisie peut largement être simplifiée en remplaçant toutes les dernières lignes de saisie par une seule avec un combo box pour choisir le type d'absence ou de congé et une zone d'entrée de la date de début, une pour la date de fin et une dernière pour le nombre de jours.

Qu'en pense-tu ?

Cdlmnt
0

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

Posez votre question
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
Modifié par julia Namor le 19/05/2014 à 17:49
Re..

Ta suggestion est très intéressante, Je suis preneuse. Ce qui fait qu'il faudra que je scinde ma BDD actuelle en deux 2BDD.
La 1ére que j'appellerai état civil : matricule, nom, fonction, statut...
La 2éme ou je mettrais les types d'arrêts. Par contre je ne comprends pas comment y intégrer les dates et les nombres de jours

Je retire les données confidentielles de ma BDD puis je te l'envoie
https://www.cjoint.com/?3EtrUsGMQIR
Cdlmnt
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
Modifié par via55 le 19/05/2014 à 18:17
Tu as déjà cette BDD, justement elle n'est pas claire en ce qui concerne les arrêts on a juste des nombres de jours, dans une même cellule, donc pas de cumul simple possible
Ce sera mieux avec 2 BDD, je vais essayer de te faire un exemple
MAIS tu n'a pas répondu à ma question concernant la simplification de l'UF en ne mettant qu'une ligne d'entrée avec choix du type d'absence par combo box ?
Il faut d'abord régler cette question avant de se lancer dans les macros

Ah et puis ta BDD comporte aussi la distance domicile travail, elle n'apparait pas dans l'UF faut il l'intégrer ?

Et j'attends toujours de savoir si on met l'âge ou la date de naissance; pour moi l'âge est une aberration puisqu'il faudra le changer chaque année
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
19 mai 2014 à 18:17
AH oui effectivement , si je comprends bien , en mettant une seule ligne d'entrée avec choix des types d'arrets ( combobox) cela eviterait de se retrouver devant un formulaire avec tous les types d'arret à remplir et du coup le formulaire serait plus fluide , moins chargé. Donc on simplifie l'UF
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
19 mai 2014 à 18:37
OK mais quid de la question essentielle de l'âge ou de la date de naissance ? et de l'ancienneté ou de la date d'entrée ? (les dates permettant je le répète, une entrée des données une fois pour toute sans avoir à mettre à jour chaque année ce qui peut être fastidieux et source d'erreur
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
19 mai 2014 à 18:53
Oup's!!!! je pensais t'avoir répondu ok plus haut. Donc en entrant les dates de naissance et d'entrée dans la structure dans le formulaire , les calculs en année seront automatiques/
C'est super
merci via55
:
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
19 mai 2014 à 19:01
Bon je te prépare un petit modèle sur ces bases
Tu l'auras demain je pense
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
19 mai 2014 à 19:18
merci merci merci
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
20 mai 2014 à 10:16
Bonjour

Voilà un premier essai : https://www.cjoint.com/?0EukmxgNRmR

A faire fonctionner pour voir si tout fonctionne correctement

Il y a un léger bug dont je ne comprends pas l'origine pour l'instant mais qui n'empêche pas le fonctionnement, à savoir quand on a rentré un nouveau matricule et validé, si on veut quitter ensuite l'UF se ferme bien mais un message d'erreur de date apparaît sans raison qu'il faut fermer aussi

Cdlmnt
0
eriiic Messages postés 24596 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 septembre 2024 7 235
20 mai 2014 à 12:45
Bonjour à tous,

Il y a un léger bug

Si tu remplaces Unload Me par Me.hide c'est bon.

eric
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
20 mai 2014 à 15:04
Bonjour Eric

Merci, je vais faire la modif en conséquence, mais ça ne m'explique pas le bug, pourquoi sur ce textbox et pas sur les autres de date avec la même structure lancée par un before update et sans avoir entré de valeur dans le textbox !

Cdlmnt
0
eriiic Messages postés 24596 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 septembre 2024 7 235
Modifié par eriiic le 20/05/2014 à 17:19
J'ai l'impression qu'il le fait uniquement sur le 1er rencontré.
Mais pourquoi, je l'ignore. Même un enabledevents=false ne lui coupe pas la chique...
@julia: autre message de via plus bas.

eric
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
20 mai 2014 à 21:43
@ eric
Je ne comprends pas mieux la "démarche" d'Excel ! Bon à partir du moment où avec Hide on n'a plus de message intempestif on ne va pas se plaindre! Mais ça m'agace un tantinet de ne pas saisir le pourquoi du comment !
A+
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
20 mai 2014 à 12:17
Bonjour Via55

Tu viens de faire une heureuse : Chapeau !!!!!'

Une question suggestion : étant donné que l'affectation, la fonction et le statut (titulaire, stagiaire, contractuel) de l'agent peuvent changer, on ne pourrait pas ajouter un bouton modifier pour entrer les nouveaux changements de statut de l'agent ? De ce fait dans la BDD arrêts nous retrouverons en plus les 3 colonnes qui peuvent changer (fonction - affectation- statut) sans modifier pour autant le matricule qui reste inchangé. Est-ce jouable ?

Ps : Je n'ai pas de message erreur à la fermeture ; tant mieux
Bon travail
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
20 mai 2014 à 15:05
Bonjour Julia

Tout est possible, je regarde ça

Cdlmnt
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
20 mai 2014 à 16:42
Re

Voilà, fonction, affectation, statut et date d'entrée sont modifiables directement dans l'UF (pas utile de rajouter un bouton)
https://www.cjoint.com/?0EuqPqCY4ni

A tester pour déceler des bugs éventuels

Cdlmnt
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
20 mai 2014 à 18:58
Excellent Via 55, merci eric pour la correction du bug



1) Tu vois dans mon 1er fichier de BDD que j'avais joins plus haut, les nombres de jours d'arrêts étaient présentés comme tels ex : (5+9+65+62+5). En fait cela me permet de calculer les fréquences et prévalences inf à 3jrs ou X jrs, ... Pour cela mon ancien fichier a déjà les macros (Merci ccm81) pour extraire les données. C'est vrai que j'avais rentré les données manuellement (difficile de faire autrement !!!!!) en mettant des + entre les chiffres. Est-ce possible d'avoir une présentation comme telle au fur et à mesure que je rentre un nouvel arrêt pour le même agent ?
2) Je me disais en faisant des tests de remplissages du formulaire pourquoi ne pas supprimer la commande « nombre de jours » et faire directement une formule de soustraction des dates sur la BDD arrêts (=D-C). Cela soulagerait le formulaire d'une 5éme date à renseigner :Je dis peut être des bêtises ....

Merci infiniment
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
20 mai 2014 à 20:58
1) Quels calculs veut tu faire exactement, ils peuvent sans doute être faits à partir des 2 BDD existantes, donnes moi un exemple précis (calcul sur un agent, calcul sur un service, et ou calcul d'un type d'absence ) etc
car comme les bases sont conçues désormais :
dans BDD Arrêts tous les nombres de jours apparaissent les uns en dessous des autres, on peut faire une extraction et un total par matricule et/ou par période de temps et/ou par fonction et/ou par affectation etc...
et dans la BDD Agents sont reportés pour chaque agent les totaux par type d'arrêt avec total général pour avoir une vue d'ensemble par agent mais le détail se trouve dans l'autre BDD
A voir si c'est utilisibale en l'état pour ce que tu veux en tirer où s'il faut les modifier mais je ne suis partisan des +, on peut sans tirer mieux autrement avec possibilités de sortir n'importe quelles statistiques à partir de BDD Arrêts
2) J'avais déjà pensé à un calcul automatique du nombre de jours, mais je pensais que tu voulais garder la main sur le nombre de jours exact à rentrer.Si le nombre de jours est toujours la différence entre le début et la fin on peut le faire calculer automatiquement mais n'y a t' il pas des cas où le décompte sera différent ? par exemple une personne qui est arrêtée pour maladie un vendredi et qui reprend le mercredi suivant c'est 5 jours d'arrêts ou c'est 3 jours seulement non travaillés si elle ne travaille pas le WE comme il y a samedi dimanche au milieu ?

Dans l'attente de toutes ces précisions
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
20 mai 2014 à 21:41
Re...

1) La BDD agent conçue ressemble à quelques cellules prés à mon ancienne BDD. Sauf effectivement les nombres de jours rajoutés avec des +. Je ne voudrais pas avoir l'air d'insister mais s'il te plait si c'est possible de les mettre avec la présentation ( 5+6+69+5+5) cela m'arrangerait beaucoup car j'ai mis des semaines à établir les formules et autres macros et sur plusieurs années(STRESS+++) Sinon au pire je pourrai t'envoyer mes TDB anonymes en MP pour que tu regardes.

2) Oui je comprends ta question, mais en milieu hospitalier le travail est 7/7 ainsi de ce fait les arrêts sont comptabilisés : fin-début

Cordialement
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
22 mai 2014 à 02:09
Re

Pour le 2 c'est facile

Pour le 1 faut reconstruire la BDD autrement ou du moins les macros puisque pour l'instant chaque arrêt est comptabilisé à part par ligne dans la feuille arrêt et ce sont les totaux qui sont répercutés dans la feuille Agents
Je devrais avoir un peu de temps demain pour regarder ça
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
22 mai 2014 à 09:25
Bonjour Via55
Merci et merci encore de consacrer du temps à mon projet
J'ai commencé à rentrer une cinquantaine d'agents en guise de test ; tout marche très bien
pas de bug :
Quelques suggestions fonctionnelles et ergonomiques
1) Je me demandais s'il était possible de rajouter un bouton commande « supprimer » pour retirer par exemple un agent sorti des effectifs ou en cas d'erreur de données après validation
2) Après validation serait-il possible d'avoir le pop-up de confirmation :
3) La commande « nombre de jours » va être retiré du formulaire et du coup le décompte se fera automatique sur la différence : date de fin - date de début (j'ai essayé de la supprimer mais j'ai eu des erreurs partout ; je ne suis pas douée c'est sur)
Encore merci Via55
Bien cordialement
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
22 mai 2014 à 17:36
Bonjour julia

Dernières modifications :

1) Intégration des + par macro dans les cellules mais c'est loin d'être l'idéal (voir après)
et mise en place du calcul automatique du nombre de jours dans l'UF

2) Pour la suppression d'un agent modification faite, j'ai même fait mieux, j'ai mis un bouton aussi pour intégrer un nouvel agent sans avoir à rentrer une absence pour lui (ce qui n'était pas possible avant)

Par compte pour supprimer la dernière entrée ce serait possible s'il ne fallait que supprimer la dernière ligne dans BDD Arrêts mais il faudrait aussi annuler le + xx inscrit par la macro dans BDD agent et là ça coince un peu (je t'ai dis que les + c'était loin d'êtrele top, tant pour les décomptes que pour le reste, car c'est du texte mis dans la cellule et non un nombre), faudrait par macro repérer le dernier nombre entré, en évaluer le nombre de caractères, repérer dans la ligne de l'agent dans la BDD et la colonne correspondant au type d'arrêts puis retirer du texte dans la cellule adéquate ce nombres de caractères plus 3 (le + et les espace)... ouf

J'ai préféré pour l'instant mettre simplement un message de confirmation d'enregistrement pour éviter une validation intempestive

3) Message d'enregistrement effectué opérationnel

4) Je t'ai mis aussi dans la BDD Arrêts un petit module d'affichage ciblé des résultats pour te montrer comment à partir de la BDD et quelques formules on peut tirer toutes les infos voulues en fonction de critères au choix (bien plus pratique que gérer les décomptes avec tes + !)

A tester dans tous les sens pour déceler les éventuels bugs

https://www.cjoint.com/?0EwrrpB5JIg

Cdlmnt
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
22 mai 2014 à 18:14
Alléluia !!!! Ou devrais-je dire Allévia55 !!!!

tout simplement génial

Je commence les tests dès que j'arrive à la maison.

Bien vu pour le 2). J'y avais pensé mais ça m'a échappé
Je greffe le formulaire à mes tableaux de bord puis je réadapte les formules.

MERCI bcp
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
23 mai 2014 à 20:20
Bonsoir Via55
Un petit bilan après une centaine d'essais
J'ai décelé quelques bugs
1) Quand je supprime un agent par le formulaire, il est effectivement supprimé dans la BDD Agents mais toutes ses absences restent (Il faudrait peut-être que je les supprime par « effacer le contenu » ?
2) Ça ne le fait pas à chaque fois : Quand je rentre pour la 1ére fois un nouvel agent, je retrouve dans la BDD agent quelques fois un chiffre 2 ou 7 suivi de + puis du nombre de jours d'arrêt. Par contre le total est correct car il ne prend pas en compte le 2 ou le 7. Je donne un ex ;
Ex : je rentre l'agent 007 dans le formulaire .il vient d'avoir 8jours d'arrêts maladies. Toutes les cases sont renseignées. Je vais voir dans la BDD Agents et là je trouve dans la colonne arrêts maladies 2+7. Le total des jours est correct par contre =8
3) L'ancienneté et la date de naissance ne sont pas calculées dans la BDD.
4) Si le signe + pose probléme , serait il possible de le remplacer par un autre quelconque j'ai la possibilité avec mon macro de le changer :voir macro ci-dessous

Public Function nbtja(plage As Range, nmin As Long, nmax As Long)
Dim cel As Range, total As Long, t, k As Long
Application.Volatile
total = 0
For Each cel In plage
t = Split(cel.Value, "+")
For k = 0 To UBound(t)
If t(k) >= nmin And t(k) <= nmax Then total = total + t(k)
Next k
Next cel
nbtja = total
End Function

Public Function nbja(plage As Range, nmin As Long, nmax As Long)
Dim cel As Range, total As Long, t, k As Long
Application.Volatile
total = 0
For Each cel In plage
t = Split(cel.Value, "+")
For k = 0 To UBound(t)
If t(k) >= nmin And t(k) <= nmax Then total = total + 1
Next k
Next cel
nbja = total
End Function

Merci beaucoup via55
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
23 mai 2014 à 20:55
Un autre bug qui survient quand j'enregistre les agents dans le formulaire
En fait l'enregistrement du premier agent apres l'ouverture du formulaire ne pose pas de probléme. Par contre au moment d'enregistrer le 2éme , je rentre le matricule , puis le nom mais arrivée à l'étape date de naissance tout se fige ... je ne peux plus rien entrer. Dans ce cas là je ferme le formulaire, je le réouvre, je reprend l'enregistrement et tout marche . l'agent 1 est bien présent dans la bande déroulante matricule ..
En fait c'est comme si la mise à jour de l'entrée précedente était activée par la case date de naissance .
Qu'en penses tu,?
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
24 mai 2014 à 01:12
Bonsoir Julia

1) La plupart des bugs (les 2 +, les calculs d'age ..) venaient je pense du fait que pour les suppressions j'avais fait effacer la ligne au lieu de la supprimer , c'est rectifié
(donc je ne pense pas que le + posait problème pour ça)
2) J'ai intégré dans la macro de suppression la suppression des lignes correspondant à l'agent dans Arrêts
3) Le fait de supprimer des lignes foutait en l'air la fonction DECALER dans la plage dynamique du matricule; j'ai donc été obligé de faire partir la plage du titre, c'est pourquoi le mot matricule apparait désormais en tête de liste de choix dans l'UF
Par contre la modification (nouveau matricule par ex) n'est pas prise en compte immediatement, le nouvel agent est bien enregistré mais son matricule n'apparait pas de suite dans la liste déroulante, je ne sais pas pourquoi, je bloque sur ce point, mais je continue à chercher
4) J'ai vu un autre problème que j'ai réglé aussitôt, on pouvait rentrer plusieurs fois le même matricule !! ce n'est plus possible et il y a désormais un message d'erreur
5) Je bloque aussi sur l'histoire du blocage qui se produit de temps en temps après l'entrée du nom, je n'arrive pas à comprendre pourquoi ni d'où ça vient, comme ce n'est pas tout le temps; pour l'instant pas besoin de fermer et ouvrir l'UF pour débloquer la situation il suffit d'appuyer plusieurs fois sur la touche Echap

https://www.cjoint.com/?0EybkHiaOvi

Bon courage pour les nouveaux essais !
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
24 mai 2014 à 08:54
bonjour via55
Quelques test depuis ce matin ...Pas de poblémes sauf pour

../.. Par contre la modification (nouveau matricule par ex) n'est pas prise en compte immediatement, le nouvel agent est bien enregistré mais son matricule n'apparait pas de suite dans la liste déroulante, je ne sais pas pourquoi, je bloque sur ce point, mais je continue à chercher.

Je te souhaite de bonnes recheches fructueuses. Tu arrives à la fin ....

Car pour renseigner plusieurs types d' arrets pour un meme agent, je ferme le fichier (en enregistrant bien sur) . A la réouverture l'agent est présent dans la bande déroulante matricule et là je peux enregistrer : Fastidieux

Merci énormément
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
25 mai 2014 à 03:04
Bonjour julia

Plusieurs modifications apportées qui semblent régler les problèmes
Je te laisse faire les tests et me dire

https://www.cjoint.com/?0Ezdd3EyDJR

Cdlmnt
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
Modifié par julia Namor le 26/05/2014 à 11:50
Bonjour Via55 ,
Plusieurs essais qui sont révélés sans problèmes :
Tout fonctionne normalement :
J'ai « greffé » mes tableaux de bord et appliqué les formules ; tout est harmonisé.
Je renseigne le formulaire et tous les calculs se font automatiquement ; même les graphiques, c'est magique !!!!!
1-)J'ai rencontré une petite difficulté mais je pense l'avoir résolu. En fait quand je supprimais un agent du formulaire toute sa ligne dans la BDD était supprimée (A :V) et du coup il y avait comme un décalage et la formule (=nbja($L2:$M2;1;3) était aussi supprimée . J'ai étendu la suppression de la ligne jusqu'à la colonne DL et ça fonctionne.
Ex : dans le code de l'UF
' suppression de la ligne
Sheets("BDD Agents").Select
Sheets("BDD Agents").Range("A" & ligneaeffacer & ":" & "DL" & ligneaeffacer).Select
Selection.Delete Shift:=xlUp
'et on effectue le tri des lignes 2 à 1500 par ordre croissant du matricule
Sheets("BDD Agents").Select
Columns("A:DL").Select

2-) C'est peut-être dû à la taille du fichier (4,7mo) mais j'ai remarqué que les calculs étaient lents. J'actionne F9 pour actualiser à chaque fois. T'en pense quoi ?
3-) Au niveau du formulaire, est-ce possible de faire une recherche par nom à l'aide d'une bande déroulante car dans les feuilles d'arrêts de travail ; il n'y a pas les matricules ;
4-) Dernière suggestion (désolée d'abuser de votre bon coeur). En fait j'ai essayé de coller directement ma liste des effectifs notamment Matricule -Nom Prénom- Age - ancienneté ..... dans les colonnes correspondants de la BDD agents. J'espérais pourvoir les récupérer dans le formulaire ce qui me ferait en quelques sorte un formulaire pré rempli. Il ne manquerait que les évènements d'absences à rajouter et le tour est joué. Est-ce que ce mode de liaison BDD vers formulaire est réalisable ?


Mes sincères remerciements et félicitations pour ce « good job »

Trés cordialement
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
26 mai 2014 à 13:27
PS:
pour la 4-)
J'ai refait un test copié collé ..ça marche .Je retrouve toute la BDD dans le formulaire .
Juste que la recherche des agents par nom serait plus simple

merci bcp
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
26 mai 2014 à 17:57
Bonjour Julia

https://www.cjoint.com/?0EArYz5qqJo

Modification pour recherche (et entrée ) par noms
Attention aux modifications dans les feuilles (j'ai indiqué ce qui change)

Pour la macro tu as semble-t-il fait la modif qu'il fallait, oui il faut faire attention à ne pas écraser les formules

La taille du fichier aggrave la lenteur c'est certain, comme toutes les formules sont recalculées à chaque modification. Ce que tu peux faire c'est enlever le calcul automatique le temps que tu rentres des données (Bouton Excel en haut à gauche Options Excel Formules Décocher calcul automatique et cocher manuel) et ne pas oublier de le remettre après

Cdlmnt
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
27 mai 2014 à 10:25
Bonjour Via55

j'ai un problème sur la commande "intégrer un nouvel agent" au niveau de l'attribution du matricule de la date de naissance et sexe..

Je me demandais : Est ce qu'il ne serait pas plus astucieux que les numéros de matricule s'attribuent automatiquement à chaque fois qu'un nouvel agent est entré dans nom et prénom.
(Ex: m1-m2-m3-m4...ou 01-02-03-04.....ou a10-a11-a12-...)

Dans l'établissement ou je suis les matricules des agents sont composés de 6 chiffres et ne figurent que sur le bulletin de salaire.

J'espère ne plus vous "embêter" après
Merci bcp
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
27 mai 2014 à 12:37
Bonjour Julia

OK je vais regarder ça
Pas de problème pour une attribution automatique, il faut simplement que tu me dises exactement sous quelle forme , 01, 02 ? ou autre puisque cela sera dans la macro

Cdlmnt
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
27 mai 2014 à 12:45
La forme A1-A2... serait bien
cordialement
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
27 mai 2014 à 13:36
Je m'aperçois que je me suis trompé de fichier et que ne t'avais pas envoyé la dernière version modifiée!!
La voici pour que tu testes une peu: https://www.cjoint.com/?0EBnKerSTe1
de mon côté je fais les modifications pour le matricule automatique
Cdlmnt
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
27 mai 2014 à 14:00
Voilà la version avec le matricule automatique
https://www.cjoint.com/?0EBn71InfXl
Bons tests
Tiens moi au courant

Cdlmnt
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
28 mai 2014 à 17:20
Bonjour Via55

Apres moult et moult essais..et dans tous les sens (validation, intégration, suppression d'un agent ...) le verdict est sans appel, tu es coupable de haut délit de ...bonté et de générosité.

Tout fonctionne à merveille.

Merci et merci encore.

PS. Je laisse le post ouvert encore 48h avant de mettre résolu.
Bien cordialement
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
28 mai 2014 à 18:19
Bonjour Julia
Bien content que tout fonctionne
Bonne suite
A+
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
Modifié par julia Namor le 18/06/2014 à 23:09
Bonsoir
Je reviens vers vous pour solliciter à nouveau votre aide.
J'ai voulu mettre une protection dans mes bases de données constituées grâce à ce formulaire que via55 a eu la grande bienfaisance de m'offrir, mais voilà quand la base de donnée est protégée le formulaire n'arrive plus à y rentrer des données, ni à les retirer d'ailleurs.
Je vous joins le formulaire Bonsoir
Je reviens vers vous pour solliciter à nouveau votre aide.
J'ai voulu mettre une protection dans mes bases de données constituées grâce à ce formulaire que via55 a eu la grande bienfaisance de m'offrir, mais voilà quand la base de donnée est protégée le formulaire n'arrive plus à y rentrer des données, ni à les retirer d'ailleurs.

Je vous joins le formulaire
https://www.cjoint.com/?3FswUwfAaOZ

J'aurais éventuellement deux « petites » demandes
1*) Est-ce que ce serait possible de rajouter une macro dans la feuille pour passer outre la protection et permettre par le formulaire de rajouter ou de supprimer des éléments dans la BDD ?
2) J'aimerai que dans la feuille BDD les colonnes NOM, Prénom, Matricule, Sexe, Date Naissance, Date d'entrée, Fonction, Affectation, Statut ne soient pas protégées.
Merci beaucoup de vous pencher sur mes demandes
Cordialement
0
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 729
21 juin 2014 à 15:18
Bonjour Julia

Désolé de te répondre qu'aujourd'hui mais je n'avais plus de connexion Internet ces derniers jours !

Voilà le fichier avec feuilles protégées et deprotection et reprotection dans les macros
https://www.cjoint.com/?0FvpiicSZ4C

Les deux feuilles BDD sont protégées à l'ouverture du classeur avec le mot de passe julia pour l'instant (aller dans l'Editeur et This workbook) , pour changer de mot de passe il faut le changer uniquement dans la 1ere ligne de Private Sub Workbook_Open() mp = "julia"

Comme tu l'as demandé les 1eres colonnes de BDD Agents ne sont pas protégées

J'ai masqué la feuille contenant les données

Pour être complet il faudrait aussi empêcher l'accès aux macros en mettant un mot de passe pour l'ouverture de l'éditeur VBA : Dans l'éditeur aller sur l'onglet Outils Protection de VBA
puis onglet Protection Cocher Verrouiller pour l'affichage et entrer 2 fois le MP (à ne pas égarer ensuite comme celui des feuilles d'ailleurs; je te conseille de garder de toutes façons une version de base sans aucun mot de passe en sécurité)

Cdlmnt
0