Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Comment pourrait-on écrire cette formule de calcul en Vba, s'il vous plaît ? Pour le moment elle est écrite en dur dans des cellules Excel de mon tableau.
Cependant, il m'est demandé de l'écrire dans du code afin que personne ne puisse y accéder. Cette formule se trouve dans la colonne J du tableau de la feuille "Recap", il y en d'autres du même genre dans les colonnes K et L et un peu plus simples dans les colonnes M, N, O.
Bien sûr je pourrais protéger ces colonnes mais ce n'est pas ce qui m'est demandé, j'ai proposé cette solution, mais elle ne garantie pas une sécurité suffisante en cas d'effacement malencontreux par la personne qui va gérer ce fichier.
MAX_MAT et autres sont des Noms donnés à des cellules de la feuille "Données", soit les cellules L3 à O5.
Mot de passe de la feuille "falaise"
Merci par avance pour vos idées.
Bonjour le Fil
juste pour signaler qu'a ce Niveau il y a un problème !
VB:
Private Sub TextCode_Change()
Dim Ctrl As Control
Dim Ctrl2 As Control
Dim Trouvé As Boolean
Dim Trouve As Range
Me.TextCode.Text = UCase(Me.TextCode) 'On met en Majuscule tout le Contenu du TextBox
If Not EnableEvents Then Exit Sub
Sheets("Liste_agents").Unprotect "falaise"
'on cherche le nom associé au code dans la TS "t_Noms"
With Sheets("Liste_agents").ListObjects("t_Noms")
'ci-dessous on recherche dans une colonne ou se trouvent des Minuscules
Set Trouve = .ListColumns(1).Range.Find(Me.TextCode, lookat:=xlWhol
Tu peux si la case n'a pas d'importance mettre Option Compare Text en tête de Module.
et supprimer ...
Je crois que je l'ai déjà dit au départ, mais je te promet que c'est très efficace : Dis-lui qu'apparemment ce n'est pas faisable, et s'il insiste dis-lui que s'il sait faire alors qu'il te montre car tu serais très content de savoir comment faire ça...
un conseil... sauvegarde ton classeur AVANT d'executer le code
ou alors, mets le bouton de sortie complète AVANT...
sinon... bah.. je te laisse deviner.. ou expérimenter..
Je crois que je l'ai déjà dit au départ, mais je te promet que c'est très efficace : Dis-lui qu'apparemment ce n'est pas faisable, et s'il insiste dis-lui que s'il sait faire alors qu'il te montre car tu serais très content de savoir comment faire ça...
Bonjour TootFatBoy,
Il s'est calmé depuis hier, je lui ai fait comprendre que mon cerveau n'avait que deux lobs (enfin je crois), et que je n'avais que 2 mains, alors s'il veut mettre la main à la tâche je lui laisse volontiers ma place.
un conseil... sauvegarde ton classeur AVANT d'executer le code
ou alors, mets le bouton de sortie complète AVANT...
sinon... bah.. je te laisse deviner.. ou expérimenter..
Bonjour à toutes et à tous,
Voici la dernière version de mon fichier.
Avec l'aide de nombreux contributeurs, que je remercie chaleureusement, il y a eu quelques compléments.
J'ai complété le code pour l'impression des pointages (Editer les pointages) dans le formulaire UfGestMenus.
Il y a donc un copié (t_Recap) /collé (t_Import) des données, un tri des colonnes "Date" et "Code agent" dans le tableau destinataire (t_Import) ainsi qu'un aperçu avant impression.
Je l'ai nommé 15b car je conserve l'original (son jumeau en fait)
Bonjour le Fil
juste pour signaler qu'a ce Niveau il y a un problème !
VB:
Private Sub TextCode_Change()
Dim Ctrl As Control
Dim Ctrl2 As Control
Dim Trouvé As Boolean
Dim Trouve As Range
Me.TextCode.Text = UCase(Me.TextCode) 'On met en Majuscule tout le Contenu du TextBox
If Not EnableEvents Then Exit Sub
Sheets("Liste_agents").Unprotect "falaise"
'on cherche le nom associé au code dans la TS "t_Noms"
With Sheets("Liste_agents").ListObjects("t_Noms")
'ci-dessous on recherche dans une colonne ou se trouvent des Minuscules
Set Trouve = .ListColumns(1).Range.Find(Me.TextCode, lookat:=xlWhol
Tu peux si la case n'a pas d'importance mettre Option Compare Text en tête de Module.
et supprimer : Me.TextCode.Text = UCase(Me.TextCode)
Option Compare Text signifie que les comparaisons de chaînes sont effectuées sans tenir compte de la casse (majuscules/minuscules) et basées sur l'ordre alphabétique du système actuel.
alors les Codes DEN756i et den756i et Den756I etc etc seront considérés comme Bons !
ou supprimer : Me.TextCode.Text = UCase(Me.TextCode)
et alors entrer le Code Agent en entrant les majuscules et Minuscules !
à voir
Bonjour le Fil
juste pour signaler qu'a ce Niveau il y a un problème !
VB:
Private Sub TextCode_Change()
Dim Ctrl As Control
Dim Ctrl2 As Control
Dim Trouvé As Boolean
Dim Trouve As Range
Me.TextCode.Text = UCase(Me.TextCode) 'On met en Majuscule tout le Contenu du TextBox
If Not EnableEvents Then Exit Sub
Sheets("Liste_agents").Unprotect "falaise"
'on cherche le nom associé au code dans la TS "t_Noms"
With Sheets("Liste_agents").ListObjects("t_Noms")
'ci-dessous on recherche dans une colonne ou se trouvent des Minuscules
Set Trouve = .ListColumns(1).Range.Find(Me.TextCode, lookat:=xlWhol
Tu peux si la case n'a pas d'importance mettre Option Compare Text en tête de Module.
et supprimer : Me.TextCode.Text = UCase(Me.TextCode)
alors les Codes DEN756i et den756i et Den756I etc etc seront considérés comme Bons !
ou supprimer : Me.TextCode.Text = UCase(Me.TextCode)
et alors entrer le Code Agent en entrant les majuscules et Minuscules !
à voir
Bonjour ChTi160,
Merci pour votre contribution. J'ai enlevé la ligne Ucase mais ça ne change rien, ma 2ème TextBox (T_bx_Nom) reste désespérément vide.
Mais j'ai trouvé mon erreur, Trouve n'avait pas été déclaré (Dim Trouve as Range).
Merci de m'avoir mis sur la bonne route.
En faisant mes tests, je me suis aperçu d'un petit inconvénient au niveau du formulaire UfPointage.
En effet, si l'employé(e) prend son service l'après-midi par exemple, les CheckBoxs du matin sont visibles et rien ne l'empêche de cliquer dessus et de perturber le calcul des heures.
Est-il possible de les cacher selon l'heure ? ça me paraît très compliqué...
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD