Problème fonctionnement formules en lien avec formulaires
Bonjour
voici mon problème :
lorsque je renseigne ma base de données manuellement, les formules de ma page menu fonctionnent correctement (afin de calculer le nombre de formation ou visites médicales à programmer).
Par contre, dès je je modifie une ligne grâce à mon formulaire enregistrement évènement, les formules ne fonctionnent plus et là, je pèche...
Je ne sais pas comment corriger le problème mais je crois que lorsque les éléments sont basculés dans la base de données, cela doit générer une modification du format de mes cellules. Enfin, ma piste mais sans grande conviction
Help, please !
Merci
Bonjour Jocomo
Il faut penser a identifier sur quel objet conteneur on travaille en ajoutant le "." devant Range et "Me." devant les contrôles
Et le code pour trouver la ligne2 n'était pas bon
Private Sub Alimenter_base_Click() ' macro qui permet d'alimenter la base de données avec des informations complémentaires sans ajouter de ligne
With Sheets("BdD_salaries")
ligne2 = .Range("A:A").Find(Me.Liste_salariés_3, LookIn:=xlValues).Row
.Range("A" & ligne2).Value = Me.Liste_salariés_3 'il doit aller écrire dans la feuille de calcul à partir du formulaire
.Range("D" & ligne2).Value = Me.départ
.Range("G" & ligne2).Value = Me.date_VM1
.Range("H" & ligne2).Value = Me.Liste_VM
.Range("I" & ligne2).Value = Me.Date_caces_R386_1B_1
.Range("J" & ligne2).Value = Me.date_autorisation_1
.Range("K" & ligne2).Value = Me.Date_caces_R386_3A_1
.Range("L" & ligne2).Value = Me.date_R486_A_1
.Range("M" & ligne2).Value = Me.date_CACES_R486_B_1
.Range("N" & ligne2).Value = Me.date_H0B0V_1
.Range("O" & ligne2).Value = Me.date_TBT_BT_1
.Range("P" & ligne2).Value = Me.date_BOETH_1
.Range("Q" & ligne2).Value = Me.Freq_BOETH
.Range("S" & ligne2).Value = Me.date_titre_w_1
.Range("T" & ligne2).Value = Me.Freq_titre
.Range("V" & ligne2).Value = Me.date_APS1
.Range("W" & ligne2).Value = Me.Talent
.Range("X" & ligne2).Value = Me.Restrictions
End With
Unload Me 'Permet de vider le formulaire afin de pouvoir le renseigner de nouveau
End Sub@+
Bonjour Bruno M45
Désolée mais cette solution ne fonctionne pas non plus. Le code que j'avais utilisé permettait comme le vôtre d'aller enregistrer de nouvelles infos dans ma base de données mais mes formules sur l'onglet menu ; dès lors que j'enregistre les évènements, ne fonctionnent plus. Et avec votre code, le problème est toujours là.
Donc, merci mais cela ne résout pas le problème.
Peut-être ai-je mal expliqué ma problématique ?
Merci pour votre retour
Re,
Votre demande n'est donc pas claire, je pensais que cela venais du code, je ne suis pas allé voir plus loin
Bonjour
Oui, certainement pas claire....
je vais reformuler.
à l'arrivée d'un salarié, j'enregistre ce salarié avec le formulaire "enregistrement salarié" et quand je veux enregistrer des formations, je me sers du formulaire "enregistrement évènement". jusqu'ici tout fonctionne.
Sur l'onglet menu, j'ai créé des formules pour pouvoir voir si j'ai des formations ou visites médicales à programmer. Le but étant par la suite de faire une extraction des personnes concernées. Mais là, c'est un autre sujet.
Pour les tester, j'ai renseigné manuellement la base de données et elles fonctionnent. Mais quand je passe par le formulaire pour enregistrer des évènements, les formules ne fonctionnent plus. Alors soit le problème vient de l'écriture de la formule en elle-même ou je ne sais pas...
Merci pour votre aide en tout cas et belle journée à vous
Cordialement
Re,
Dans les formules, je ne comprends pas le AUJOURDHUI()-1790 = 05/06/2016
Sinon la différence que vous avez, c'est qu'en passant par l'USF, vous inscrivez des dates au format texte et pas en saisie directe
Pour ce faire, il faut ajouter pour chaque contrôle, ce petit test
.Range("G" & ligne2).Value = IIf(Me.date_VM1 <> "", DateValue(Me.date_VM1), "")Nota : il ne faut pas forcer l'alignement à gauche dans les cellules, on ne peut pas s'en rendre compte sinon
@+
Re-bonjour
Merci, je vais tester ça.
Et pour la formule, je veux savoir si j'ai des dates de formation qui arrivent à échéance. Donc en fonction de la fréquence de renouvellement, je vérifie la condition que la date du dernier renouvellement n'est pas obsolète (ex pour caces, fréquence de renouvellement tous les 5 ans donc je vérifie que la date est bien supérieure à aujourd’hui - 4 ans et 11 mois.