Microsoft 365 Ecrire une formule de calcul en Vba Excel

NONO14

XLDnaute Occasionnel
Bonjour à toutes et à tous,

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.
VB:
=SI(A2="";"";SI(A2<>"";SI(ET(D2<>"";E2<>"");E2-D2;SI(ET(D2<>"";E2="";F2<>"");MAX_MAT-D2;SI(ET(D2<>"";E2="";ET(F2<>"";G2=""));"";SI(ET(D2<>"";E2="";F2="";G2="";H2="";I2<>"");MAX_MAT-D2;SI(ET(D2<>"";E2="";F2="";G2<>"");MAX_MAT-D2;SI(ET(D2<>"";E2="";ET(F2="";G2="");ET(H2="";I2<>""));I2-D2;SI(ET(D2<>"";E2="";F2="";G2="");MAX_MAT-D2;SI(D2="";""))))))))))
 

Pièces jointes

  • Tablo_Heures.xlsm
    282.8 KB · Affichages: 14
Dernière édition:
Solution
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 ...

TooFatBoy

XLDnaute Barbatruc
Est-il possible de les cacher selon l'heure ? ça me paraît très compliqué...
Normalement il suffit de regarder l'heure au moment de l'ouverture du UserForm.

Le camarade vgendron qui a magnifiquement œuvré jusque là (puisque c'est lui qui a tout développé à 99,9 %) va bien t'écrire ça. 👍


Au final il n'y aurait plus que deux CheckBox, et leurs TextBox associées, qui seraient visibles en fonction de l'heure de pointage et des trois tranches horaires.
Donc on en viendrait à ce que j'avais avancé il y a quelques temps : seulement deux informations "heure de pointage" et "entrée ou sortie" ?
 
Dernière édition:

NONO14

XLDnaute Occasionnel
Normalement il suffit de regarder l'heure au moment de l'ouverture du UserForm.

Le camarade vgendron qui a magnifiquement œuvré jusque là (puisque c'est lui qui a tout développé à 99,9 %) va bien t'écrire ça. 👍


Au final il n'y aurait plus que deux CheckBox, et leurs TextBox associées, qui seraient visibles en fonction de l'heure de pointage et des trois tranches horaires.
Donc on en viendrait à ce que j'avais avancé il y a quelques temps : seulement deux informations "heure de pointage" et "entrée ou sortie" ?
Non pas tout à fait. Si l'employé arrive pointe à 12h, il ne pourra plus utiliser les boutons du matin, s'il arrive après 19h, il ne pourra plus utiliser les boutons du matin et de l'après-midi.
Pour ce faire, je pensais faire une comparaison entre l'heure système et les heures butoirs qui sont enregistrées dans la feuille "Calcul" et sous les noms "MAX_DEB" pour 12h00 l'heure maximale d'arrivée , "MAX_DEB" pour 19h00 l'heure maximale de départ de l'après-midi.
Donc, dans mon petit cerveau, je fais cette déduction :
- Pour le matin si l'heure système est supérieure à 12h00 alors les boutons du matin sont cachés
- Pour l'après-midi si l'heure système est supérieure à 19h00 alors les boutons du matin et de l'après-midi sont cachés.
Tout ça paraît simple quand on l'écrit, mais à traduire en Vba c'est une autre paire de manche.

Sinon, j'ai quand même fais un peu plus que 0,01% du travail 😳
 

TooFatBoy

XLDnaute Barbatruc
Si l'employé arrive pointe à 12h, il ne pourra plus utiliser les boutons du matin, s'il arrive après 19h, il ne pourra plus utiliser les boutons du matin et de l'après-midi.
Donc s'il pointe à 12 h, il peut utiliser les boutons de l'après-midi et du soir ? 🤔


Pour ce faire, je pensais faire une comparaison entre l'heure système et les heures butoirs qui sont enregistrées dans la feuille "Calcul"
Oui, bien sûr. 👍


Sinon, j'ai quand même fais un peu plus que 0,01% du travail 😳
Oui, 10 fois plus. Donc en fait on est d'accord. 😅
Mon pourcentage n'est peut-être pas 100 % exact, mais ce n'était pas une attaque envers toi mais un "hommage" à tout le travail effectué par le camarade vgendron.
 

NONO14

XLDnaute Occasionnel
Donc s'il pointe à 12 h, il peut utiliser les boutons de l'après-midi et du soir ? 🤔



Oui, bien sûr. 👍



Oui, 10 fois plus. Donc en fait on est d'accord. 😅
Mon pourcentage n'est peut-être pas 100 % exact, mais ce n'était pas une attaque envers toi mais un "hommage" à tout le travail effectué par le camarade vgendron.
Oui s'il pointe à 12h00 les boutons de l'après-midi et du soir sont visibles. je sais cela peut paraître idiot et que rien n'empêchera un utilisateur de cliquer le soir alors qu'il n'ait que 14h00. Tu as certainement raison, je ne pourrais pas faire barrage à toutes les bêtises imaginables et inimaginables.
Eh bien, on va laisser le formulaire comme il est.

Pour ce qui est du travail de vgendron, je lui rends également hommage et je ne saurais comment le remercier davantage. J'ai conscience que sans son aide et celle de tout ceux qui ont apportés leur pierre à l'édifice je n'aurai pas réussi à sortir quelque chose d'équivalent.
Mes sincères remerciements à toutes et à tous
 

Discussions similaires

Réponses
9
Affichages
358
Réponses
5
Affichages
378
Réponses
3
Affichages
188

Membres actuellement en ligne

Statistiques des forums

Discussions
314 033
Messages
2 104 851
Membres
109 192
dernier inscrit
Matvei